2023, année des LLM ouverts

2023, l'année des LLM ouverts à tous

2023 a vu une explosion de l’intérêt du public pour les Large Language Models (LLM), et maintenant que la plupart des gens ont une idée de ce qu’ils sont et de ce qu’ils peuvent faire, les débats publics autour des sources ouvertes et fermées ont également atteint un large public. Chez Hugging Face, nous suivons avec grand intérêt les modèles ouverts, car ils permettent la reproductibilité de la recherche, donnent à la communauté la possibilité de participer au développement des modèles d’IA, permettent une plus grande vérification des biais et des limites des modèles, et réduisent l’impact carbone global de notre domaine en favorisant la réutilisation des points de contrôle (parmi de nombreux autres avantages).

Alors faisons un retour sur l’année des LLM ouverts !

Pour rendre ce document gérable en termes de longueur, nous n’examinerons pas les modèles de code.

Recette pour un Large Language Model pré-entrainé

Tout d’abord, comment obtenir un Large Language Model ? (N’hésitez pas à sauter cette section si vous savez déjà !)

L’architecture du modèle (son code) décrit sa mise en œuvre spécifique et sa forme mathématique : il s’agit d’une liste de tous ses paramètres, ainsi que de la façon dont ils interagissent avec les entrées. À l’heure actuelle, la plupart des LLM performants sont des variations de l’architecture Transformer “décodage uniquement” (plus de détails dans l’article original sur les transformers). Le jeu de données d’entraînement contient tous les exemples et les documents sur lesquels le modèle est entraîné (c’est-à-dire les paramètres appris), donc les motifs spécifiques appris. La plupart du temps, ces documents contiennent du texte, soit dans un langage naturel (par exemple, le français, l’anglais, le chinois), un langage de programmation (par exemple, Python, C), ou tout autre type de données structurées pouvant être exprimées sous forme de texte (par exemple, des tableaux en markdown ou en latex, des équations, …). Un tokeniseur définit comment le texte du jeu de données d’entraînement est converti en nombres (car un modèle est une fonction mathématique et a donc besoin de nombres en entrée). La tokenisation consiste à transformer le texte en sous-unités appelées tokens (qui peuvent être des mots, des sous-mots ou des caractères, selon les méthodes de tokenisation). La taille du vocabulaire du tokeniseur indique combien de tokens différents il connaît, généralement entre 32 000 et 200 000. La taille d’un jeu de données est souvent mesurée en tant que nombre de tokens qu’il contient une fois divisé en une séquence de ces unités individuelles “atomistiques”, et de nos jours cela va de plusieurs centaines de milliards de tokens à plusieurs billions de tokens ! Les hyperparamètres d’entraînement définissent ensuite la manière dont le modèle est entraîné. À quel point les paramètres doivent-ils changer pour s’adapter à chaque nouvel exemple ? À quelle vitesse le modèle doit-il être mis à jour ?

Une fois ces paramètres sélectionnés, il vous suffit de 1) avoir beaucoup de puissance de calcul pour entraîner le modèle et 2) des personnes compétentes (et gentilles) pour exécuter et surveiller l’entraînement. L’entraînement lui-même consistera à instancier l’architecture (création des matrices sur le matériel utilisé pour l’entraînement) et à exécuter l’algorithme d’entraînement sur l’ensemble de données d’entraînement avec les hyperparamètres mentionnés ci-dessus. Le résultat est un ensemble de poids du modèle. Ce sont les paramètres du modèle après l’apprentissage et ce que la plupart des gens entendent lorsque l’on parle d’accès à un modèle pré-entrainé ouvert. Ces poids peuvent ensuite être utilisés pour l’inférence, c’est-à-dire pour la prédiction sur de nouvelles entrées, par exemple, pour générer du texte.

Les LLM pré-entrainés peuvent également être spécialisés ou adaptés à une tâche spécifique après la pré-entrainement, en particulier lorsque les poids sont rendus publiquement disponibles. Ils sont ensuite utilisés comme point de départ pour des cas d’utilisation et des applications grâce à un processus appelé “fine-tuning”. Le fine-tuning consiste à appliquer des étapes d’entraînement supplémentaires sur le modèle sur un ensemble de données différent – souvent plus spécialisé et plus petit – afin de l’optimiser pour une application spécifique. Bien que cette étape ait un coût en termes de puissance de calcul nécessaire, elle est généralement beaucoup moins coûteuse que l’entraînement d’un modèle à partir de zéro, tant financièrement qu’environnementalement. C’est l’une des raisons pour lesquelles les modèles pré-entrainés open-source de haute qualité sont très intéressants, car ils peuvent être utilisés librement et améliorés par la communauté même lorsque les praticiens disposent d’un budget informatique limité.

2022 – D’une course à la taille à une course aux données

Quels étaient les modèles ouverts disponibles à la communauté avant 2023 ?

Jusqu’au début de 2022, la tendance en apprentissage automatique était que plus un modèle était grand (c’est-à-dire plus il avait de paramètres), meilleures étaient ses performances. En particulier, il semblait que les modèles dépassant certaines tailles spécifiques gagnaient en capacité, deux concepts qui ont été appelés aptitudes émergentes et lois d'échelle. Les familles de modèles open-source pré-entrainés publiées en 2022 ont principalement suivi ce paradigme.

  1. BLOOM (BigScience Large Open-science Open-access Multilingual Language Model) BLOOM est une famille de modèles publiés par BigScience, un effort collaboratif regroupant 1000 chercheurs de 60 pays et 250 institutions, coordonné par Hugging Face, en collaboration avec les organisations françaises GENCI et IDRIS. Ces modèles utilisent des transformateurs de décodeur uniquement, avec des modifications mineures (normalisation après intégration,[^1] et utilisation des annexes positionnelles ALiBi [^2]). Le plus grand modèle de cette famille est un modèle de 176 milliards de paramètres, entraîné sur 350 milliards de tokens de données multilingues en 46 langues humaines et 13 langues de programmation. La plupart des données d’entraînement ont été publiées, et les détails de leurs sources, de leur sélection et de leur traitement ont été publiés. C’est le plus grand modèle open source massivement multilingue à ce jour.

  2. OPT (Open Pre-trained Transformer) La famille de modèles OPT a été publiée par Meta. Ces modèles utilisent une architecture de transformateurs à décodeur uniquement, en suivant les astuces du document GPT-3 (une initialisation spécifique des poids, une pré-normalisation), avec quelques modifications du mécanisme d’attention (alternance de couches d’attention dense et localement bandaées). Le plus grand modèle de cette famille est un modèle de 175 milliards de paramètres entraîné sur 180 milliards de tokens de données provenant principalement de sources publiques (livres, données sociales via Reddit, actualités, Wikipedia et autres sources Internet variées). Cette famille de modèles présentait des performances comparables à celles des modèles GPT-3, en utilisant une optimisation du codage pour le rendre moins intensif en calculs.

  3. GLM-130B (General Language Model) GLM-130B a été publié par l’Université Tsinghua et Zhipu.AI. Il utilise une architecture de transformateur complète avec quelques modifications (post-normalisation de couche avec DeepNorm, embeddings rotatifs). Le modèle de 130 milliards de paramètres a été entraîné sur 400 milliards de tokens de données provenant d’Internet en anglais et en chinois (The Pile, Wudao Corpora, et d’autres corpus chinois). Il présentait également des performances comparables à celles des modèles GPT-3.

  4. Des LLMS ouverts plus petits ou plus spécialisés Des modèles open source plus petits ont également été publiés, principalement à des fins de recherche : Meta a publié la série Galactica, des LLM jusqu’à 120 milliards de paramètres, pré-entraînés sur 106 milliards de tokens de littérature scientifique, et EleutherAI a publié le modèle GPT-NeoX-20B, un modèle de transformateur de décodeur entièrement open source (architecture, poids, données incluses) entraîné sur 500 milliards de tokens (utilisant RoPE et quelques modifications de l’attention et de l’initialisation), afin de fournir un artefact complet pour des investigations scientifiques.

Ces énormes modèles étaient excitants mais aussi très coûteux à exécuter ! Lors de l’inférence (calcul des prédictions à partir d’un modèle), le modèle doit être chargé en mémoire, mais un modèle de 100 milliards de paramètres nécessitera généralement 220 Go de mémoire pour être chargé (nous expliquons ce processus ci-dessous), ce qui est très volumineux et inaccessible pour la plupart des organisations et des praticiens !

Cependant, en mars 2022, un nouvel article de DeepMind a été publié, où il a été étudié quel est le rapport optimal entre les tokens et les paramètres du modèle pour un budget de calcul donné. En d’autres termes, si vous disposez uniquement d’un montant X d’argent à dépenser pour la formation du modèle, quelles devraient être respectivement les tailles du modèle et des données ? Les auteurs ont découvert que, dans l’ensemble, pour le budget de calcul moyen dépensé pour les LLM, les modèles devraient être plus petits mais entraînés sur considérablement plus de données. Leur propre modèle, Chinchilla (non open source), était un modèle de 70 milliards de paramètres (un tiers de la taille des modèles ci-dessus), mais entraîné sur 1,4 trillion de tokens (entre 3 et 4 fois plus de données). Il présentait des performances similaires voire meilleures que ses homologues plus grands, qu’ils soient open source ou propriétaires.

Ce changement de paradigme, bien qu’il soit probablement déjà connu dans les laboratoires fermés, a surpris la communauté de la science ouverte.

2023, une année de sorties ouvertes

L’essor des petits grands modèles de langue

🌊 En 2023, une vague de transformateurs de style décodeur a vu le jour, avec de nouveaux modèles pré-entraînés publiés chaque mois, bientôt chaque semaine, voire chaque jour : LLaMA (par Meta) en février, Pythia (par Eleuther AI) en avril, MPT (par MosaicML) en mai, X-GEN (par Salesforce) et Falcon (par TIIUAE) en juin, Llama 2 (par Meta) en juillet. Qwen (par Alibaba) et Mistral (par Mistral.AI) en septembre, Yi (par 01-ai) en novembre, DeciLM (par Deci), Phi-2 et SOLAR (par Upstage) en décembre. Toutes ces sorties a) incluaient les poids des modèles (sous différentes licences ouvertes) et b) avaient de bonnes performances pour des modèles de petite taille (entre 3 milliards et 70 milliards de paramètres), et donc, ils ont été instantanément adoptés par la communauté. Presque tous ces modèles utilisent l’architecture des transformateurs de décodeur, avec différentes modifications (ALiBi ou RoPE, pré-normalisation RMS, SwiGLU), ainsi que certaines modifications des fonctions d’attention (Flash-Attention, GQA, fenêtres coulissantes) et différentes implémentations du code de base pour optimiser la vitesse d’entraînement ou d’inférence. Ces ajustements sont susceptibles d’affecter les performances et la vitesse d’entraînement dans une certaine mesure ; cependant, étant donné que toutes les architectures ont été publiées publiquement avec les poids, les différences fondamentales qui persistent sont les données d’entraînement et la licence des modèles.

🦙,🔮 La première famille de modèles de cette série était la famille LLaMA, publiée par Meta AI. L’objectif explicite des chercheurs était de former un ensemble de modèles de différentes tailles avec les meilleures performances possibles pour un budget informatique donné. Pour l’une des premières fois, l’équipe de recherche a décidé explicitement de prendre en compte non seulement le budget de formation, mais aussi le coût d’inférence (pour un objectif de performance donné, combien coûte l’exécution de l’inférence avec le modèle). Dans cette perspective, ils ont décidé de former des modèles plus petits sur encore plus de données et pendant plus d’étapes que d’habitude, atteignant ainsi de meilleures performances avec une taille de modèle plus petite (le compromis étant l’efficacité du calcul d’entraînement). Le plus grand modèle de la famille Llama 1 est un modèle de 65 milliards de paramètres formé sur 1,4 billion de jetons, tandis que les modèles plus petits (resp. 6 et 13 milliards de paramètres) ont été formés sur 1 billion de jetons. Le petit modèle LLaMA de 13 milliards a surpassé GPT-3 sur la plupart des benchmarks, et le plus grand modèle LLaMA était à la pointe de la technologie à sa sortie. Les poids ont été publiés avec une licence non commerciale limitant ainsi leur adoption par la communauté. Les modèles Pythia ont été publiés par le laboratoire à but non lucratif open-source Eleuther AI, et étaient une suite de LLM de différentes tailles, formés sur des données entièrement publiques, fournies pour aider les chercheurs à comprendre les différentes étapes de l’entraînement des LLM.

📂,🦅 Les modèles MPT, sortis quelques mois plus tard, publiés par MosaicML, étaient proches en performances, mais avec une licence permettant une utilisation commerciale, et les détails de leur mélange d’entraînement. Le premier modèle MPT était un modèle de 7 milliards, suivi de versions de 30 milliards en juin, tous deux formés sur 1 billion de jetons d’anglais et de code (en utilisant des données de C4, CommonCrawl, The Stack, S2ORC). Les modèles MPT ont rapidement été suivis par les modèles 7 et 30 milliards de la série Falcon, publiés par TIIUAE, et formés sur 1 à 1,5 billion de jetons d’anglais et de code (RefinedWeb, Project Gutemberg, Reddit, StackOverflow, Github, arXiv, Wikipedia, entre autres sources) – plus tard dans l’année, un modèle gigantesque de 180 milliards a également été publié. Les modèles, les données et le processus d’entraînement de Falcon ont été détaillés dans un rapport technique et un article de recherche ultérieur.

Où les modèles précédents étaient publics quant à leurs données, à partir de là, les versions ultérieures ne donnaient pratiquement aucune information sur ce qui a été utilisé pour entraîner les modèles et leurs efforts ne peuvent pas être reproduits – cependant, ils fournissent des points de départ pour la communauté à travers les poids publiés.

✖️,🦙🦙 Au début de l’été, les modèles X-Gen sont apparus de Salesforce, des modèles de 7 milliards de paramètres entraînés sur 1,5 billion de tokens de “langage naturel et de code”, en plusieurs étapes, suivant un système de planification des données (toutes les données ne sont pas introduites en même temps dans le modèle). X-Gen a été un peu éclipsé par les nouvelles familles très visibles de LLaMA-2 de Meta, une gamme de modèles de 7 à 70 milliards de paramètres entraînés sur 2 billions de tokens “issus de sources publiques”, avec une licence communautaire permissive et un processus approfondi de réglage fin à partir de préférences humaines (RLHF), la fameuse procédure d’alignement.

🍃,🔟,☀️ Quelques mois plus tard, le premier modèle de la start-up nouvellement créée Mistral, le soi-disant Mistral-7B, a été publié, entraîné sur un nombre non divulgué de tokens “extraits du Web ouvert”. La fin de 2023 a été occupée par des sorties de modèles avec un deuxième modèle plus grand de Mistral (Mixtral 8x7B), un premier modèle impressionnant de Deci.AI appelé DeciLM ainsi qu’une fusion plus importante de modèles de upstage, SOLAR également entraînés sur une quantité non divulguée et des sources de données. Tous ces modèles ont connu des augmentations constantes dans les classements et les benchmarks ouverts.

🇨🇳 Parallèlement, un événement notable de la fin de l’année 2023 a été la montée en puissance des performances et le nombre de modèles formés en Chine et publiés ouvertement. Deux séries de modèles bilingues anglais-chinois ont été publiées : Qwen, d’Alibaba, des modèles de 7 à 70 milliards de paramètres entraînés sur 2,4 billions de tokens, et Yi, de 01-AI, des modèles de 6 à 34 milliards de paramètres, entraînés sur 3 billions de tokens. Les performances de ces modèles étaient en avance sur les modèles précédents aussi bien sur les classements ouverts comme le Open LLM leaderboard que sur certains des benchmarks les plus difficiles comme Skill-Mix. Un autre concurrent solide de la fin de 2023 était le modèle de codage DeepSeek de DeepSeek AI entraîné à partir de zéro sur 2 billions de tokens, avec une composition de 87% de code et 13% de langage naturel en anglais et en chinois (principalement un modèle de code).

Modèles de dialogue partout

Par rapport à 2022, presque tous les modèles pré-entraînés publiés en 2023 sont venus avec une version pré-entraînée et une version de dialogue affiné, en utilisant l’une des approches existantes. Alors que les approches pour adapter les modèles à un contexte de discussion ont été développées en 2022 et avant, l’adoption généralisée de ces techniques a vraiment décollé en 2023, ce qui souligne l’utilisation croissante de ces modèles de discussion par le grand public ainsi que l’évaluation manuelle croissante des modèles en discutant avec eux (“évaluation de l’ambiance”). Nous détaillons ici les approches les plus connues pour adapter les modèles pré-entraînés pour la discussion, mais de nombreuses variations existent!

💬 L’affinage basé sur le chat est une variante de l’affinage supervisé, où les données annotées sont des données de chat (des données de dialogue à plusieurs tours, similaires à ce que l’on trouve sur les réseaux sociaux) sur lesquelles vous affinez votre modèle. Vous utilisez la même technique que lors de l’entraînement de votre modèle : pour les transformateurs de décodage, vous apprenez à votre modèle à prédire les mots suivants un par un (appelée approche auto-régressive). 🗣️ L’affinage par instruction (IFT) suit la même approche, mais avec des ensembles de données d’instructions, qui contiennent une collection de requêtes sous forme de prompts plus des réponses (avec une entrée supplémentaire facultative si nécessaire). Ces ensembles de données apprennent aux modèles comment suivre une instruction et peuvent être humains ou générés par LLM. L’utilisation de grands ensembles de données synthétiques générés par le modèle (des ensembles de données composés de générations de modèles, par exemple, des générations de GPT-4 à partir d’instructions ou d’interactions entre les utilisateurs et ledit modèle) est l’un des moyens de réaliser l’affinage par instruction et par chat. Cela s’appelle souvent distillation car il s’agit de prendre les connaissances d’un modèle performant pour former ou affiner un modèle plus petit.

Ces deux méthodes sont relativement faciles à mettre en œuvre : vous devez simplement trouver ou générer des ensembles de données connexes, puis affiner votre modèle en utilisant la même technique que lors de l’entraînement. Un grand nombre d’ensembles de données d’instructions ont été publiés l’année dernière, ce qui a amélioré les performances des modèles dans des situations de dialogue. Pour plus d’informations sur ce sujet, vous pouvez lire un blog d’introduction ici. Cependant, les modèles, bien qu’ils soient améliorés, ne correspondent toujours pas aux attentes des humains.

🏅 L’apprentissage par renforcement à partir des commentaires des humains (RLHF) est une approche spécifique qui vise à aligner ce que le modèle prédit avec ce que les humains préfèrent le plus (en fonction de critères spécifiques). C’était (au début de l’année) une nouvelle technique d’affinage. À partir d’une demande donnée, le modèle génère plusieurs réponses possibles ; les humains classent ces réponses ; les classements sont utilisés pour former ce qu’on appelle un modèle de préférence (qui apprend à attribuer un score reflétant la préférence humaine pour les réponses) ; le modèle de préférence est ensuite utilisé pour affiner le modèle de langage en utilisant l’apprentissage par renforcement. Pour des informations plus détaillées, consultez ce article de blog, l’article original sur RLHF, ou l’article Anthropic sur RLHF. C’est une méthode coûteuse (annotation/classement + formation d’un nouveau modèle + affinage est assez cher) qui a été principalement utilisée pour aligner les modèles sur des objectifs de sécurité. Une variation moins coûteuse de cette méthode a été développée, qui utilise un LLM de haute qualité pour classer les sorties des modèles au lieu des humains : l’apprentissage par renforcement à partir des commentaires de l’IA (RLAIF).

👍 L’optimisation directe des préférences (DPO) est une autre variation de RLHF, mais ne nécessite pas la formation et l’utilisation d’un modèle de préférence séparé – la méthode nécessite le même ensemble de données de classement humain ou de classement IA, mais utilise ces données pour mettre à jour directement le modèle en examinant la différence entre sa politique originale (sa manière de prédire) et la politique optimale (qui prédit les réponses les mieux classées). En d’autres termes, le modèle aligné est également le modèle de préférence, ce qui rend la procédure d’optimisation beaucoup plus simple tout en donnant des performances finales équivalentes semble-t-il.

Donc, pour revenir à notre vague de petits modèles à poids ouverts provenant d’entreprises (principalement) privées, beaucoup d’entre eux ont été publiés avec des contreparties affinées : MPT-7B est également venu avec une version de type instruct et de type chat, des versions affinées de Falcon et des modèles XGen ont été publiées à la fin de l’année, Llama-2, Qwen et Yi ont été publiés avec des versions de chat et DeciLM avec une version instruct. La sortie de Llama-2 était particulièrement remarquable en raison de l’accent particulier mis sur la sécurité, à la fois dans les modèles de pré-enentraînement et dans les modèles affinés.

Qu’en est-il de la communauté?

Alors que les modèles de chat et les modèles d’instruction précis étaient généralement fournis directement avec les nouvelles versions des modèles, la communauté et les chercheurs ne les prenaient pas pour acquis. Une communauté dynamique et active de perfectionneurs de modèles a fleuri sur les bases solides fournies par ces modèles de base. Ils créaient généralement de nouveaux ensembles de données et peaufinaient les modèles pour montrer de bonnes performances et la qualité des nouvelles données publiées.

Début 2023, quelques ensembles de données pour le perfectionnement des modèles de chat/instruction avaient déjà été publiés. Par exemple, pour les préférences humaines, l’ensemble de données WebGPT par OpenAI, l’ensemble de données HH-RLHF par Anthropic, et Summarize par OpenAI ont été des pionniers dans cette direction. Des exemples d’ensembles de données d’instruction sont le Public Pool of Prompts par BigScience, FLAN 1 et 2 par Google, Natural Instructions par AllenAI, Self Instruct, un cadre pour générer des instructions automatiques par des chercheurs affiliés à différentes institutions, SuperNatural instructions, un ensemble d’instructions créé par des experts parfois utilisé comme données de perfectionnement, Unnatural instructions, un ensemble d’instructions générées automatiquement par l’Université de Tel Aviv et Meta, entre autres.

❄️ Hiver 2022/2023 : En janvier de cette année, le corpus d’instructions de chat GPT humain (HC3) a été publié par des chercheurs chinois de diverses institutions. Il contenait des réponses humaines par rapport aux réponses des modèles à différentes questions. En mars, plusieurs publications ont eu lieu : Stanford a ouvert le modèle Alpaca, qui était le premier modèle d’LLaMA (7B) suivant des instructions, ainsi que l’ensemble de données associé comprenant 52 000 instructions générées avec un LLM. LAION (un laboratoire à but non lucratif en open source) a publié l’ensemble de données Open Instruction Generalist (OIG), contenant 43 millions d’instructions créées avec une augmentation de données et compilées à partir d’autres sources de données préexistantes. Le même mois, LMSYS org (à l’UC Berkeley) a publié Vicuna, également un affinage LLaMA (13B), cette fois sur des données de chat : conversations entre des utilisateurs et ChatGPT, partagées publiquement par les utilisateurs eux-mêmes sur ShareGPT. L’ensemble de données Guanaco, une extension de l’ensemble de données Alpaca (contenant 500 000 entrées supplémentaires dans plusieurs langues), a également été publié, ainsi que l’affinement LLaMA-7B associé.

🌱 Printemps : En avril, BAIR (Berkeley AI Research lab) a publié Koala, un modèle LLaMA basé sur le chat, utilisant plusieurs des ensembles de données précédents (Alpaca, HH-RLHF, WebGPT, ShareGPT), et DataBricks a publié l’ensemble de données Dolly, un grand effort humain de 15 000 instructions générées manuellement, ainsi que le modèle associé, un affinement Pythia. En mai, l’Université de Tsinghua a publié UltraChat, un ensemble de données de 1,5 million de conversations contenant des instructions, et UltraLLaMA, un affinement sur cet ensemble de données. Microsoft a ensuite publié l’ensemble de données/cadre GPT4-LLM pour générer des instructions avec GPT4, et en juin, la recherche de Microsoft a partagé une nouvelle méthode, Orca, pour construire des ensembles de données d’instructions en utilisant la trace logique de modèles plus grands (qui expliquent leur raisonnement étape par étape) – cela a rapidement été reproduit par la communauté (notamment Alignementlab.ai), qui a créé l’ensemble de données Open Orca, composé de plusieurs millions d’entrées, puis utilisé pour affiner un certain nombre de modèles (Llama, Mistral, …). En mai et juin, Camel-AI a publié plusieurs ensembles de données d’instruction ou de chat sur différents sujets (plus de 20 000 exemples dans chaque domaine, physique, biologie, chimie, …) obtenus avec GPT4. En juin également, le cadre Airoboros, permettant d’affiner les modèles à l’aide de données générées par le modèle lui-même (suivant l’approche de l’auto-instruction), a été publié, ainsi que plusieurs ensembles de données d’instruction.

🌻 Été : En août, UltraLM (un chat fine-tune performant de LLaMA) a été publié par OpenBMB, une organisation à but non lucratif chinoise, et en septembre, ils ont publié le jeu de données de préférence associé UltraFeedback, un jeu de données de rétroaction d’entrées comparées par GPT4 (avec des annotations). Tout au long de l’été, NousResearch, un collectif, a publié plusieurs fine-tunes (notamment les collections Hermes et Capybara) basés sur plusieurs jeux de données d’instructions privées et publiques. En septembre, une équipe d’étudiants de l’Université de Tsinghua a publié OpenChat, un LLaMA fine-tune utilisant une nouvelle stratégie de fine-tuning RL.

🍂 Automne : En octobre, Hugging Face a publié [Zephyr](https://huggingface.co/Hugging FaceH4/zephyr-7b-beta), un fine-tune Mistral utilisant DPO et AIF sur UltraChat et UltraFeedback, et des membres de la communauté ont publié OpenHermes 2, un fine-tune Mistral-7B affiné sur 900K entrées soit du web soit générées avec Axolotl. Lmsys a publié LMSYS-Chat-1M, des conversations d’utilisateurs réelles avec 25 LLMs. En novembre, OpenBuddy a publié OpenBuddy-Zephyr, un dialogue multi-tours fine-tuné Zephyr. En novembre, NVIDIA a publié HelpSteer, un jeu de données d’alignement fine-tuning fournissant des prompts, des réponses de modèle associées et des notes de ces réponses sur plusieurs critères, tandis que Microsoft Research a publié le modèle Orca-2, un Llama 2 fine-tuné sur un nouveau jeu de données de raisonnement synthétique. En décembre, Berkeley a publié Starling, un fine-tune RLAIF affiné d’Open-Chat, et le jeu de données associé, Nectar, 200K entrées de données de comparaison.

Comme nous pouvons le voir, le développement de cette année entière repose à la fois sur la création de nouveaux jeux de données grâce à l’utilisation de LLMs pré-entraînés de haute qualité, ainsi que sur tous les modèles ouverts publiés par la communauté, faisant progresser le domaine à grands pas ! Et si vous voyez maintenant l’un de ces noms dans le nom d’un modèle, vous pourrez vous faire une idée d’où il vient 🤗

Certains jeux de données plus spécialisés (comme MetaMath ou MathInstruct des jeux de données d’affinage des problèmes mathématiques, Evol-Instruct, des instructions mathématiques et de code, CodeAlpaca et CodeCapybara des instructions de code) ont également été publiés, mais nous ne les détaillerons pas ici, bien qu’ils aient également été utilisés pour améliorer les performances des modèles sur des tâches spécifiques. Vous pouvez également consulter le jeu de données d’instructions impressionnant pour une compilation d’autres jeux de données pertinents.

Démocratisation de l’accès

Fusion : Personnalisation extrême

Dans un esprit typique de l’open source, l’une des caractéristiques marquantes de la communauté est la fusion modèle/données. À chaque fusion/validation, il peut être plus difficile de retracer à la fois les données utilisées (car un certain nombre de jeux de données publiés sont des compilations d’autres jeux de données) et l’historique des modèles, car les modèles performants sont des versions affinées de versions affinées de modèles similaires (voir l’arbre des “modèles enfants” de Mistral ici). Dans ce résumé, nous n’avons pas encore eu le temps de parler de cette technique incroyable, alors accordons quelques mots finaux à ce sujet.

Mais que signifie fusionner un modèle ?

La fusion de modèles consiste à fusionner les poids de différents modèles en un seul modèle afin de (idéalement) combiner les forces respectives de chaque modèle en un modèle unique unifié. Quelques techniques existent pour le faire, qui ont été étendues et souvent publiées principalement dans des forums communautaires, un cas frappant de recherche totalement décentralisée se produisant dans le monde entier entre une communauté de praticiens, de chercheurs et d’amateurs. L’une des méthodes les plus simples consiste à moyenniser les paramètres d’un ensemble de modèles partageant une architecture commune (exemple 1, exemple 2), mais il existe d’autres combinaisons de paramètres plus complexes, telles que déterminer quels paramètres sont les plus influents dans chaque modèle pour une tâche donnée (moyennage pondéré), ou considérer l’interférence des paramètres entre les modèles avant de sélectionner lesquels garder lors de la fusion (fusion des liens).

Ces techniques permettent à n’importe qui de générer facilement des combinaisons de modèles et sont rendues particulièrement faciles par le fait que la plupart des modèles sont aujourd’hui des variations de la même architecture. C’est la raison pour laquelle certains modèles soumis au classement LLM ouvert portent des noms tels que llama2-zephyr-orca-ultra. Cet exemple particulier est probablement une fusion des modèles llama2 et zephyr, affinés sur les ensembles de données orca et ultra. Habituellement, plus de détails se trouvent dans la carte de modèle respective sur le hub Hugging Face.

PEFT : Personnalisation au bout de vos doigts

Parfois, vous pouvez souhaiter une personnalisation plus contrôlée, sans avoir assez de mémoire pour charger un modèle complet en mémoire pour l’affiner. Saviez-vous que vous n’avez pas besoin d’utiliser un modèle entier lors de l’affinage ?

Vous pouvez utiliser ce qu’on appelle l’affinage efficace des paramètres (PEFT). Cette technique consiste à figer les paramètres de votre modèle pré-entraîné, puis à ajouter un certain nombre de nouveaux paramètres par-dessus, appelés adaptateurs. Ce que vous affinez ensuite pour votre tâche, ce sont uniquement les poids de l’adaptateur (léger), considérablement plus petits que ceux du modèle d’origine. Il vous suffit ensuite de partager vos petits poids d’adaptateur (et le modèle de base) ! Vous trouverez une liste d’approches intéressantes pour le PEFT ici.

Quantification : Des modèles qui fonctionnent partout

Nous avons vu que les modèles performants existent désormais sous toutes les formes et tailles… mais cela ne signifie pas pour autant qu’ils sont accessibles à tous ! Un modèle de 30 milliards de paramètres peut nécessiter plus de 66 Go de RAM simplement pour être chargé en mémoire (sans même être utilisé), et tout le monde n’a pas les équipements nécessaires dans la communauté pour le faire.

C’est là que la quantification intervient ! La quantification est une technique spéciale qui réduit la taille d’un modèle en modifiant la précision de ses paramètres.

Que signifie cela ?

Dans un ordinateur, les nombres sont stockés avec une précision donnée (comme float32, float16, int8, et ainsi de suite). Une précision indique à la fois le type de nombre (s’agit-il d’un nombre à virgule flottante ou d’un entier) et la quantité de mémoire occupée par le nombre : float32 stocke des nombres à virgule flottante sur 32 bits. Pour une explication plus approfondie, voir ce lien. Ainsi, plus la précision est élevée, plus un nombre occupe de mémoire physique, car il sera stocké sur un plus grand nombre de bits.

Donc, si vous réduisez la précision, vous réduisez la mémoire occupée par chaque paramètre du modèle, ce qui réduit la taille du modèle ! Cela signifie également que vous réduisez… la précision réelle des calculs, ce qui peut réduire les performances du modèle. Cependant, nous avons constaté que sur les modèles plus grands, cette dégradation des performances est en réalité très limitée.

Pour revenir à notre exemple ci-dessus, notre modèle de 30 milliards de paramètres en float16 nécessite un peu moins de 66 Go de RAM, en 8 bits cela ne nécessite que la moitié de cela, soit 33 Go de RAM, et en 4 bits nous atteignons même la moitié de cette valeur, soit environ 16 Go de RAM, ce qui le rend considérablement plus accessible.

Il existe de nombreuses façons de passer d’une précision à une autre, avec de nombreux schémas de “traduction” existants, chacun ayant ses avantages et inconvénients. Les approches populaires incluent bitsandbytes, GPTQ et AWQ. Certains utilisateurs, tels que TheBloke, convertissent même des modèles populaires pour les rendre accessibles à la communauté. Tous sont très récents et en développement, et nous espérons voir encore plus de progrès à l’avenir.

Qu’est-ce qui se passe ensuite ?

L’année n’est pas encore terminée ! Et ces derniers mois jours heures ont déjà apporté leur lot de surprises : une nouvelle architecture surpasse-t-elle enfin le Transformer simple et efficace ?

Les nouvelles sorties incluent

  • Un mélange d’experts :
    • Mixtral, le modèle est constitué de 8 sous-modèles (décodeurs transformateurs), et pour chaque entrée, un routeur choisit les 2 meilleurs sous-modèles et additionne leurs sorties.
  • Plusieurs modèles d’espace d’état (des modèles qui font correspondre l’entrée à la sortie via un espace latent et qui peuvent être exprimés soit comme un RNN soit comme un CNN selon les tâches) :
    • Mamba, un modèle d’espace d’état avec un mécanisme de sélection ajouté
    • Striped Hyena, un modèle d’espace d’état avec un noyau de convolutions rapide

Il est encore un peu trop tôt pour dire si ces nouvelles approches prendront le dessus sur le Transformer, mais les modèles d’espace d’état sont très prometteurs !

Points à retenir

  • Cette année a vu une augmentation des sorties ouvertes de toutes sortes d’acteurs (grandes entreprises, start-ups, laboratoires de recherche), ce qui a permis à la communauté de commencer à expérimenter et à explorer à un rythme jamais vu auparavant.
  • L’ouverture des annonces de modèles a connu des hauts et des bas, avec des sorties précoces cette année étant très ouvertes (mélanges de jeux de données, poids, architectures) à des sorties tardives ne révélant rien sur leurs données d’entraînement, donc non reproductibles.
  • Des modèles ouverts sont apparus de nombreux nouveaux endroits, y compris la Chine, où plusieurs nouveaux acteurs se positionnent comme de puissants concurrents dans le domaine des LLM.
  • Les possibilités de personnalisation ont atteint des niveaux sans précédent, avec de nouvelles stratégies de réglage fin (RLHF, adaptateurs, fusion) qui ne font que commencer.
  • Des tailles de modèles plus petites et des améliorations de la quantification ont rendu les LLM accessibles à beaucoup plus de personnes !
  • De nouvelles architectures sont également apparues – vont-elles enfin remplacer le Transformer ?

C’est tout ! J’espère que vous avez apprécié cette rétrospective de l’année, que vous avez appris une chose ou deux et que vous partagez mon enthousiasme quant à la place croissante de l’IA dans les efforts open source et communautaires ! 🤗

[^1]: La normalisation de l’incorporation post-encodage est une astuce pour rendre l’apprentissage plus stable. [^2]: Les incorporations de position ALiBi introduisent une pénalité lorsque des jetons trop éloignés dans une séquence sont reliés par le modèle (alors que les incorporations de position normales ne stockeraient que des informations sur l’ordre et la position respective des jetons dans une séquence).

We will continue to update IPGirl; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AI

Franchir le gouffre de l'intelligence artificielle Comment OpenAI a fait des LLMs un succès grand public

J'ai été un sceptique vocal quant à la viabilité des outils de développement d'IA (généralement regroupés sous le ter...

AI

Découvrez l'Advanced Reasoning Benchmark (ARB) un nouveau benchmark pour évaluer les grands modèles de langage.

Le traitement du langage naturel a connu une évolution significative ces dernières années, notamment avec la création...

AI

Dévoiler les secrets du succès des données de CLIP Présentation de MetaCLIP pour une préparation optimisée du langage et de l'image

Ces dernières années, il y a eu des avancées exceptionnelles dans le domaine de l’Intelligence Artificielle, av...

AI

NVIDIA BioNeMo permet la génération d'IA pour la découverte de médicaments sur AWS

Les chercheurs et les développeurs des principales entreprises pharmaceutiques et technologiques peuvent désormais fa...

AI

Obtenez des réponses générées par un grand modèle de langage sur Amazon SageMaker JumpStart

Nous sommes ravis d'annoncer que Amazon SageMaker JumpStart peut désormais diffuser en continu les réponses d'inféren...

AI

Google DeepMind propose un cadre d'intelligence artificielle pour l'évaluation des risques sociaux et éthiques de l'IA

Les systèmes d’IA générative, qui créent du contenu dans différents formats, se répandent de plus en plus. Ces ...