Dans ce blog, je suis ravi de partager des informations sur l'approche méticuleuse que nous avons entrepris pour former la base d'Amabri (cognitivo-lab / ambari-7b-instruc-v0.1) et Amabri Instruct (Cognitive-Lab / Ambari-7B-Instruct-V0.1). Offrant un aperçu de haut niveau dans notre processus, ce récit sert de précurseur à la révélation à venir de tous les détails techniques - l'aboutissement de tests et d'évaluations approfondis. Restez à l'écoute pendant que nous démêlons les subtilités qui ont conduit à la création d'Amabri, un modèle de grande langue bilingue à source ouverte innovante.
But derrière Amabri
Dans le paysage dynamique des modèles de grandes langues (LLM), la création d'Amabri provient d'un objectif multiforme:
Alors que les LLM imprègnent de plus en plus l'utilisation traditionnelle, les modèles open source, tout en étant enrichis en connaissances mondiales, émergent principalement de la formation centrée sur l'anglais. Amabri sert d'initiative pionnière pour élargir cette portée et adapter les LLM à diverses langues.
Dans le paysage évolutif des LLM, la demande de grandes quantités de données de formation, allant de 1 billion à 10 billions de jetons, est devenue une norme. Cependant, cela pose un défi pour les langues avec des ressources documentées limitées. Dans notre poursuite, nous nous sommes concentrés sur l'adaptation d'un LLM pré-formé, comme Llama / Mistral, pour comprendre les nuances d'une nouvelle langue - Kannada dans le cas d'Amabri. Bien que Kannada n'ait pas été classé comme un langage à très basse ressource, il a été un candidat idéal pour tester nos hypothèses et nos méthodologies. Définissant rigoureusement les étapes de la formation et des finetuning, nous avons fixé un plafond de 1 milliard de jetons de formation pour l'ensemble du processus.
Par la suite, nous avons méticuleusement conçu des ensembles de données, les avons distribués en conséquence et délimité les étapes de notre processus:
Cette approche délibérée a jeté les bases du développement d'Amabri, repoussant les limites de l'adaptabilité du langage dans le domaine des LLM.
La tokenisation, une composante critique de l'efficacité des modèles de langage, a posé un défi unique pour le texte de Kannada dans le contexte des LLM open source. De nombreux modèles existants recourent de manière inefficace à la tokenisation au niveau des caractéristiques, en particulier pendant l'inférence, ce qui a un impact sur les performances globales. Pour y remédier, nous avons développé un modèle de tokenisation spécialisé pour le texte de Kannada à l'aide de la phrase. Ce modèle a été intégré de manière transparente au tokenizer Base Llama, résultant en un vocabulaire complet de 49 600, élargi par 17 600.
Notre approche a consisté à former le modèle de jetons sur trois tailles de jeu de données différentes, révélant des résultats optimaux avec un ensemble de données comprenant 100 000 jetons. Alors que nous évoluons Amabri, la prochaine itération présentera une stratégie de tokenisation raffinée, utilisant une taille de vocabulaire réduite de 48 000. Cet ajustement, validé par les idées partagés par Andrej Karpathy dans son article Twitter (Andrej Karpathy sur Twitter), vise à améliorer l'efficacité globale.
Curieux d'explorer les gains d'efficacité de première main? Vous pouvez tester le tokenzer en action ici.
Pré-formation
Avec un tokenizer efficace en place, notre prochaine étape cruciale a été la phase de pré-formation, visant à familiariser le modèle avec le vocabulaire nouvellement enrichi. Pour optimiser ce processus, nous avons organisé un ensemble de données complet à partir de diverses sources. Nous avons notamment exploré deux approches distinctes au cours de cette phase: la formation de l'entreprise avec LORA et la formation pleinement du modèle. Cette décision stratégique découle de notre désir de discerner la voie optimale pour le développement d'Amabri.
Une comparaison détaillée entre ces méthodologies sera dévoilée sous peu, mais nous avons glané certaines observations initiales:
Alors que nous reconnaissons que nos tests en cours peuvent affiner ces observations, cet instantané fournit des informations précieuses sur nos progrès. La phase de pré-formation a utilisé un groupe de GPU 2xa100, prenant environ 25 heures pour la pré-formation pleine de poids sur un corpus important comprenant 500 millions de jetons.
Il convient de mentionner que les poids du modèle entièrement affinés sont maintenant disponibles sur un visage étreint? - https://huggingface.co/cognititive-lab/ambari-7b-base-v0.1, contribuant au partage des connaissances open source au sein de la communauté.
Prédiction de jetons bilingues Next
Cette phase, inspirée de la série Open Hathi de Sarvam.ai, était un ajout imprévu mais charnière à notre stratégie de formation. Créant un ensemble de données de 200 000 jetons, nous avons utilisé LORA pour le réglage fin, visant à équiper le modèle d'une compréhension du langage améliorée. Au fur et à mesure que nous progressons, notre attention s'est déplacée vers l'instillant de «connaissances mondiales» à Kannada. Étant donné la rareté du contenu de Kannada, en particulier par rapport à l'anglais, nous nous sommes tournés vers la traduction. Tirant en tirant Indictrans2, nous avons traduit le contenu anglais, principalement provenant de Wikipedia, à Kannada. Cependant, au lieu de la prédiction conventionnelle de jetons monolingues conventionnels, nous avons introduit une approche révolutionnaire - la prédiction du jetons bilingues suivantes. Des phrases alternatives entre Kannada et l'anglais, cette méthode a obligé le modèle à s'occuper de l'information transversale lors de la prédiction suivante. Cette approche nuancée a non seulement favorisé l'alignement accru entre le kannada et l'anglais, mais aussi l'exposition naturellement équilibrée aux jetons hindi et anglais pendant la formation. Cette étape a ajouté une couche supplémentaire de sophistication au parcours d'entraînement d'Amabri.
Traduction finetuning
L'intention derrière cette phase était d'établir une relation cohérente entre l'anglais et les jetons kannada correspondants. Utilisant une adaptation de faible rang pour un réglage fin, nous avons rencontré certains défis, notamment avec la décision d'utiliser une valeur très faible, ce qui s'est avéré moins efficace. Avec une taille d'ensemble de données de 100 000 jetons, cette étape a présenté des limitations et nous reconnaissons la nécessité d'améliorations. Alors que nous affinons cet aspect du processus de formation, notre engagement à améliorer les capacités bilingues de l'Amabri reste inébranlable.
Instruct bilingue fin au réglage
Dans ce stade pivot, nous avons utilisé un réglage fin supervisé avec une adaptation de faible rang pour façonner la réactivité du modèle. Embrassant une structure de modèle de chat composée d'invites / instructions d'utilisateurs et de réponses correspondantes, nous nous sommes aventurés dans le domaine de l'instruction bilingue. Cette approche a consisté à former le modèle à répondre habilement en anglais ou en kannada en fonction de la langue spécifiée dans l'invite utilisateur ou des instructions.
Modèle de chat
< | user | >
{user prompt / instruction}
< | endoftext | >
< | assistant | >
{response}
< | endoftext | >Par exemple, étant donné une invite utilisateur comme
"Donnez-moi 10 conseils d'étude à Kannada,"
Réponse
Le modèle génère de manière transparente une réponse à Kannada, en maintenant la cohérence linguistique. Pour enrichir le processus de formation, nous avons fusionné divers ensembles de données d'instructions, notamment ALPACA Instruct, Dolly Instruct, etc. Tirant parti des API de traduction telles que Google, Azure et un déploiement personnalisé du modèle INDICTRANS2 à partir d'Ai4Bharat, nous avons conçu un ensemble de données d'instruments bilingues complets.
L'ensemble de données, désormais accessible au public sur un visage étreint ici, comprend divers scénarios linguistiques. Pendant la formation, nous avons mis en œuvre un réglage fin supervisé avec quatre représentations distinctes:
Cette approche méticuleuse a non seulement familiarisé le modèle avec la réponse dans différentes langues, mais a également jeté les bases de la maîtrise de diverses tâches inter-lingues.
Les poids de ce modèle finement réglé sont accessibles sur la face des étreintes, et pour une expérience pratique, vous pouvez explorer la version quantifiée 4 bits sur Chat.cognitivelab.in.
Dans la phase culminante de notre raffinement de modèle, nous avons plongé dans le monde de l'optimisation directe des préférences (DPO). Ce choix stratégique, inspiré par le succès observé dans divers modèles open source, visait non seulement à aligner notre modèle mais aussi à stimuler l'amélioration des repères. Se lançant dans ce voyage expérimental, nous avons exploité l'ensemble de données anthropique / HH-RLHF. Le traduisant en kannada, nous avons soumis le modèle à un réglage fin, subissant actuellement une évaluation complète pour évaluer son impact sur les performances.
Portée de l'amélioration
Il est crucial de savoir que les modèles fournis dans ce cadre n'ont pas subi de détoxification. Bien qu'ils présentent des capacités linguistiques impressionnantes, il existe un potentiel de génération de contenu qui peut être considéré comme nocif ou offensant. Il est fortement conseillé aux utilisateurs d'exercer une discrétion et de surveiller étroitement les résultats du modèle, en particulier dans les applications publiques ou sensibles.
Nous accueillons des contributions pour améliorer et développer ce projet. Si vous avez des suggestions ou des améliorations, veuillez ouvrir un problème ou soumettre une demande de traction.
Ce projet est concédé sous licence GNU GPL V3.0. Pour plus de détails, reportez-vous au fichier licence.md.
IMPORTANT: La licence GPL 3.0 s'applique uniquement au code source et aux ensembles de données fournis dans ce référentiel. Comme Indic-llm est un dérivé du modèle LLAMA 2 de Meta, il est soumis à la licence originale de Llama 2, qui ne peut être modifiée. Par conséquent, pour des détails complets concernant la licence du modèle, veuillez consulter le fichier LLAMA2-licence.
Ce référentiel s'inspire des référentiels suivants: