Gemma et ses variantes : l’essentiel sur les LLM ouverts de Google
Si Google a concentré sa communication sur Gemini, à la fois une gamme de modèles de langage et une suite de produits. Il mise également sur les LLM « open weight », Gemma et ses variantes CodeGemma, PaliGemma ou encore RecurrentGemma. Leur existence vise deux objectifs : soutenir les projets de déploiements plus efficients et, surtout, la recherche en IA générative.
Alors qu’ils ont eu longtemps du mal à entraîner des modèles de petite taille, les chercheurs de Google ont souhaité démontrer qu’ils pouvaient égaler leurs pairs dans ce domaine. Malgré la présence des Large Language Models décrit dans cet article au sein du jardin de modèles de la plateforme d’IA Vertex, hormis la collection Gemma, ils demeurent des produits de travaux de recherche, des expérimentations en vue de faire progresser le domaine de l’IA générative efficiente.
Gemma : les LLM « open weight » les plus éprouvés chez Google
En février 2024, deux modèles ont d’abord été présentés, à savoir Gemma-7B et Gemma 2B. Les deux modèles s’appuient sur une architecture Transformer modifiée. Les deux modèles partagent le système d’encodage rotatif de la position absolue des embeddings RoPE. Elle permet de réduire la quantité de ressources de calcul nécessaire à l’entraînement et surtout de réduire l’interdépendance entre des représentations de mots au fur et à mesure que leur distance croît.
Les fonctions d’activations GeGLU (Gated Linear Unit with Gaussian Error Linear Unit activations), elles, permettent d’améliorer l’efficacité et la stabilité de l’entraînement ainsi que de réguler la manière de capturer des relations complexes entre les données.
Cette technique est combinée à la technique de normalisation RMSNorm (Root Mean Square Normalization) permettant de contrôlant les valeurs des activations et donc de renforcer la stabilité de l’entraînement.
En revanche, alors que Gemma 7B exploite la technique d’attention multitête (Multi Head Attention ou MHA) – qui fait la spécificité de l’architecture Transformer –, Gemma 2B dispose d’un mécanisme d’attention multirequête (Multi Query Attention ou MQA) permettant d’abaisser la quantité de ressources de calcul nécessaire à l’entraînement, tout en conservant un haut de niveau de qualité.
Ces deux modèles qui ne sont pas multimodaux, contrairement à Gemini 1.5 Pro, ont été entraînés respectivement avec 6 000 milliards et 3 000 milliards de tokens issus de documents Web, de formules mathématiques et de code, principalement en langue anglaise. Ils ont été entraînés avec une fenêtre de contexte de 8 000 tokens et disposent d’un tokeniser de 256 000 tokens.
Pour filtrer les données, les chercheurs de Google ont utilisé à la fois des méthodes heuristiques (des règles) et des modèles de classification. À cette étape, il s’agit d’améliorer la qualité des données et de supprimer les données sensibles, dangereuses, toxiques, et personnelles.
Pour le fine-tuning supervisé des modèles « instruits », les chercheurs ont exploité une combinaison de données synthétiques générées à l’aide d’autres LLM ainsi que les résultats des efforts d’apprentissage par renforcement à partir de rétroaction humaine (RLHF ou Reinforcement Learning from Human Feedback), en anglais seulement.
La sélection du mix de données a été effectuée à l’aide de la technique « LLM as a judge », une approche qui consiste à sélectionner les meilleures sorties d’un grand modèle de langage à l’aide… d’un autre grand modèle de langage, à qui l’on soumet des prompts travaillés suivant diverses techniques (Chain of Tought, définition du comportement à la manière Anthropic, etc.).
Les chercheurs ont par la suite collecté des paires de questions-réponses concoctées par des humains puis entraîné un modèle de récompense priorisant la fidélité des sorties des modèles Gemma aux préférences humaines.
Résultat, en février 2024, Gemma 7B égalait ou surpassait Mistral 7B dans la plupart des benchmarks génériques, tandis que Gemma 2B se montrait convaincant. Depuis la disponibilité de Llama 3-8B et de Phi-3, Gemma 7B et 2B sont moins pertinents.
CodeGemma : un fine-tuning de Gemma sur du code
Les modèles préentraînés 2B et 7B ont également servi à entraîner CodeGemma (une famille de LLMs préentraînés et instruits, consacrée à la génération de code). Pour Codegemma 7B, les chercheurs ont utilisé 500 milliards de tokens issus de jeux de données de code, de mathématiques et de documents Web. Les modèles CodeGemma 2B, eux, ont été entraînés à l’aide de 1 000 milliards de tokens exclusivement extraits de dépôts de code.
Les modèles de préentraînement ont été formés pour accomplir ce que l’on peut résumer simplement à une tâche de remplissage de texte à trou (Fill in the Middle).
Les modèles instruits ont été entraînés avec des données mathématiques, plus particulièrement les jeux de données des benchmarks MATH, GSM8K et MatQA, ainsi que divers éléments de code et des paires de questions-réponses générés par des LLM. Les modèles CodeGemma 1.1 s’avèrent plus performants que leurs aînés. Ce 27 mai, la version instruite de CodeGemma 7B 1.1 est à la 47e place du benchmark HumanEval Plus, quand codgemma 2b est à la 91e place. Selon ce benchmark, les plus petits modèles les plus performants sont les variantes des modèles chinois Qwen d’Alibaba (CodeQwen 1.5 7B Chat) et ceux de la startup DeepSeek (DeepSeek-Coder 6,7 B). Trois variantes de GPT-4 constituent le trio de tête.
ReccurentGemma : le retour des réseaux de neurones récurrents dans le NLP
Les chercheurs de Google n’ont pas jeté l’éponge. En avril 2024, ils ont présenté ReccurrentGemma 2B, une autre paire de modèles ouverts. Cette fois-ci, ils s’appuient sur l’architecture Griffin. Quand les modèles Transformer « entrelacent » des perceptrons multicouches et un mécanisme d’attention multitête ou multirequête, Griffin couple des perceptrons multicouches avec une combinaison de réseaux de neurones récurrents à portes – une variante des modèles LSTM – et une fenêtre glissante d’attention locale MQA.
« Nous avons trouvé cette combinaison extrêmement efficace, car l’attention locale modélise avec précision le passé récent, tandis que les couches récurrentes peuvent transmettre des informations sur de longues séquences », expliquent les chercheurs derrière Griffin.
En clair, dans le cas de ReccurentGemma, Griffin permet d’obtenir une bonne compréhension des dépendances entre les tokens à niveau local et global à l’échelle d’une séquence, par exemple un texte, tout en bénéficiant du fait que les RNN sont bien moins gourmands en ressources de calcul ; ce qui permet de réduire le temps d’entraînement et d’accélérer l’inférence. Ici, la fenêtre d’attention locale a été poussée à 2 048 tokens, contre 1000 dans l’architecture « de référence » de Griffin.
Les chercheurs derrière ReccurentGemma ont appliqué la même méthode de fine-tuning supervisée utilisée lors de l’entraînement de Gemma, mais n’ont utilisé que 2 000 milliards de tokens au lieu de 3 000 milliards. « RGemma » bénéficie de la même fenêtre de contexte.
Ce petit modèle de langage est légèrement moins performant que Gemma 2B 1.1, mais affiche une vitesse d’inférence bien supérieure et constante, même si la séquence à traiter est longue. Cela se vérifie surtout quand le prompt en entrée ne dépasse pas les 2 048 tokens, ce qui correspond à la fenêtre d’attention locale, et quand le modèle est exécuté sur des TPUv5e de Google. De fait, les chercheurs exploitent le framework Flax, et un kernel Pallas modifié plus complexe à exécuter sur un GPU.
Clairement, RecurrentGemma est une invitation en direction de la communauté scientifique afin de faire perdurer les efforts en matière d’hybridation d’architecture de LLM. Toutefois, l’architecture semble encore peu éprouvée.
PaliGemma : des modèles pour commenter des images
Les chercheurs de Google souhaitent par ailleurs rendre les modèles de vision-langage (Vision Language Model ou VLM) plus efficients. Les VLM sont à distinguer des modèles de diffusion : les premiers commentent des images, les seconds en génèrent. C’est en ce sens qu’ils ont lancé des modèles PaliGemma, chacun doté de 3 milliards de paramètres.
Ici, ils se sont inspirés du projet PaLI-3, un autre projet en provenance de Google, lui-même inspiré par SigLIP (Sigmoid Loss for Language Image Pretraining).
SigLIP est un projet qui remplace la fonction de perte de CLIP (Contrastive Language Image Pretaining), un modèle multimodal consacré à la description « en un coup » (zero shot) d’images en langage naturel, imaginé par les chercheurs d’OpenAI. L’idée derrière CLIP est d’entraîner simultanément un encodeur d’image, un modèle Vision Transformer et un encodeur textuel afin de « pairer » les images et les textes sans besoin d’utiliser des jeux de données parfaitement labélisés. Avec SigLIP, les chercheurs implémentent une fonction de perte sigmoïde au lieu de la traditionnelle fonction de transfert softmax, afin de réduire la taille des jeux de données nécessaires à l’entraînement des VLM.
Comme Pali-3, PaliGemma combine l’encodeur SigLIP-400m et un décodeur textuel, ici Gemma 2B.
PaliGemma a été préentraîné à partir de jeux de données ouverts (WebLi, CC3M-35L, VQ² A-CC3M-35L/VQG-CC3M-35L, OpenImages, et WIT), avec un filtrage spécifique afin d’éviter l’entraînement sur des contenus sensibles. Ici, les images font 224x224 pixels et sont associées à un « suffixe », une description textuelle de 128 tokens.
Dans une deuxième phase, les tailles des images passent à 448x448 pixels et la séquence textuelle à 512 tokens. Cette étape a été renouvelée avec des images de 896x896 pixels. Les trois « checkpoints » sont disponibles sur HuggingFace. Enfin, une phase de fine-tuning a été consacrée aux jeux de données de benchmark à partir des deux premiers checkpoints.
Selon Google, « PaliGemma prend à la fois des images et du texte en tant qu’entrées, et peut répondre aux questions sur les images avec des détails et du contexte. Il peut ainsi analyser les images plus en profondeur et fournir des informations utiles, telles que le sous-titrage d’images et de vidéos courtes, la détection d’objets et la lecture de texte intégré dans des images ».
Ici, il s’agit de proposer à la communauté et aux entreprises d’affiner leurs variantes de PaliGemma afin de spécialiser les modèles pour certaines tâches décrites plus haut.
Contrairement à ReccurentGemma, PaliGemma s’appuie sur une architecture éprouvée. Reste à savoir si cette série de modèles trouvera son utilité auprès des entreprises.