besjunior - stock.adobe.com
LLM : avec Gemma 2, Google mise sur la distillation de connaissances
Outre un point rapide sur sa feuille de route, Google rend disponible Gemma 2, qui confirme que la technique de distillation de connaissances demeure l’une des meilleures méthodes à l’état de l’art, pour l’entraînement de petits modèles de langage.
Ce 27 juin, Google Cloud a annoncé la disponibilité générale de son LLM Gemini 1.5 Pro. Ce modèle doté d’une très longue fenêtre de contexte peut maintenant ingérer jusqu’à deux millions de tokens. Jusqu’alors, cette fonctionnalité était accessible en bêta privée. Gemini 1.5 Flash, une variante offrant un meilleur rapport coût-latence au prix de performances un peu plus faibles, « entre en production ».
En clair, Google ouvre l’accès de son LLM à quelques équipes de red teaming avant une disponibilité générale depuis l’API Gemini et Google AI Studio, prévue à la mi-juillet. Qui dit une longue fenêtre de contexte, dit des coûts importants. Pour pallier ce problème, Google avait déjà évoqué le déploiement d’un service de mise en cache du contexte. C’est désormais chose faite. Par ailleurs, le géant du cloud met à disposition une fonction nommée code construction. Celle-ci permet de générer du code dans un environnement sandbox afin de vérifier sa qualité ou de multiplier les variantes générées.
Gemma 2 est (enfin) disponible
La seule véritable annonce notable, c’est la fin de l’entraînement de la collection de grands modèles de langage « ouverte » Gemma 2. Elle sera déclinée en trois variantes de 2,6 ; 9 et 27 milliards de paramètres. Pour l’instant, Gemma 2-9B et 27B peuvent être testées depuis Google AI Studio.
Le véritable intérêt de Gemma 2 tient dans les objectifs d’entraînement formulés par la Team Gemma et Google DeepMind. Dernièrement, les fournisseurs de LLM ont tenté d’améliorer les performances des modèles de petite taille en agrandissant le corpus de préentraînement, et, en conséquence, en allongeant la durée du temps d’entraînement. « Les derniers petits modèles nécessitent jusqu’à 15T [15 000 milliards de tokens] pour améliorer l’état de l’art de moins de 1-2 % », notent les chercheurs de Google en prenant l’exemple de Llama 3.
Ces « petits » LLM sont toutefois sous-entraînés, ajoute-t-il. « Nous explorons des alternatives pour améliorer les performances des petits modèles sans augmenter uniquement la longueur de l’apprentissage ».
Pour ce faire, les chercheurs de Google ont modifié l’objectif d’entraînement de Gemma 2-9B et 2,6B. La tâche d’entraînement habituelle d’un LLM est de prédire le « token », c’est-à-dire le bout de mot suivant. Ici, ils ont itéré sur la technique de distillation de connaissances, très souvent utilisée pour entraîner ces plus petits LLM.
« Concrètement, nous utilisons un grand modèle de langage comme un professeur, pour entraîner de petits modèles, à savoir des modèles de 9 milliards et 2,6 milliards de paramètres, sur une quantité de tokens qui dépasse de plus de 50 fois la quantité optimale de calcul prédite par la théorie (Hoffmann et al., 2022) », expliquent les chercheurs.
Ils ont réuni 13 000 milliards de tokens, des données « principalement en anglais », pour entraîner Gemma 2-27B. La variante 9B a été entraînée avec 8 000 milliards de tokens, et 2 000 milliards de tokens pour Gemma 2-2,6B. La méthode de distillation mise en place vise à réduire au maximum la distance entre les prédictions du modèle « enseignant » (Gemma 2-27B) et ceux des modèles « élèves ».
Les données « non désirées » et potentiellement sensibles ont été filtrées. Le post-entraînement peut se résumer à l’exploitation de techniques de fine-tuning supervisées, d’apprentissage par renforcement avec feed-back humain, de filtrage et de fusion d’hyperparamètres (model merging) à partir de données réelles et synthétiques en anglais.
Gemma 2 dispose par ailleurs d’une architecture légèrement différente de son aîné. Outre la fenêtre de contexte de 8 192 tokens, l’utilisation du mécanisme de rotation des embeddings ROPE et de la fonction d’activation GeGlu, Gemma 2 reprend des concepts déployés au sein des modèles Gemini.
Il se distingue par le fait qu’il combine un mécanisme d’attention global d’une longueur de 8 192 tokens et une fenêtre d’attention glissante locale de 4 096 tokens. Par ailleurs, comme pour Gemini 1.5 Pro, les chercheurs ont limité les logits, c’est-à-dire les scores bruts de classification avant l’opération de transfert softmax dans chaque couche d’attention. Cela permet de stabiliser l’entraînement et le fine-tuning. Malheureusement, cela rend les LLM incompatibles avec la librairie FlashAttention qui permet – généralement – d’accélérer l’inférence sur les machines les moins puissantes.
Gemma 2-27B et 9B sont dotés d’un mécanisme d’attention groupé (Grouped Query Attention ou GQA) et tous les modèles utilisent RMSnorm, une méthode de normalisation des inputs entre les couches.
Un bilan carbone peu transparent
Malgré l’usage de ses TPU, moins énergivores que les puces Nvidia, le bilan carbone de Gemma 2 semble supérieur à son prédécesseur, mais le fournisseur ne donne pas un chiffre précis pour cette collection. Google évoque uniquement le bilan carbone « des modèles Gemma » qui s’élève à 1 247,61 tonnes équivalent CO2, ce qui semble inclure l’empreinte carbone du préentraînement de Gemma 1 ayant émis 131 tonnes eqC02. Le géant du cloud assure que ses data centers sont optimisés, alimentés en énergies renouvelables et qu’il compense ce qui n’est pas couvert par ces deux précautions en achetant des crédits carbone.
Malgré ses 27 milliards de paramètres, Gemma 2-27B titille Llama 3-70B
Résultat, Gemma 2-27B est légèrement moins performant que Llama 3-70B sur les benchmarks génériques MMLU, HellaSwag, Winogrande et GSM8K, mais dépasse ce dernier sur les tests ARC-C.
« Notez que notre modèle surpasse Qwen 1.5 32B et n’est que de quelques pour cent inférieurs à LlaMA-3 70B malgré le fait qu’il soit 2,5 fois plus petit et qu’il ait été entraîné sur deux tiers de données en moins », avancent les chercheurs de Google. Meta, assure de son côté avoir utilisé plus de 15 000 milliards de tokens pour entraîner Llama 3, ce qui ne semble pas « coller » avec les calculs du géant du cloud.
Gemma 2-9B bat Llama 3-8B sur les benchmarks MMLU, Arc-C, GSM8K, AGIeVAL, DROP, BBH et Winogrande. Il obtient des résultats similaires contre Mistral 7B, qu’il surpasse également sur les bancs d’essai MATH, ARC-e, SIQA, Boolq, TriviaQA, NNQ, HumanEval et MBPP. En moyenne de tous ces tests, Gemma 2-9B obtient un score de 64,9 %, contre 55,6 % pour Mistral 7B. Si l’on prend les huit premiers benchmarks, Llama-3-8B obtient un score de 61 %, contre 70,2 % pour Gemma 2-9B. Sans surprise, Gemma 2-2,6B l’emporte sur son prédécesseur, mais les chercheurs ne daignent pas l’opposer à des adversaires de sa taille, par exemple Phi-2-mini. D’autant que Phi-3-mini semble faire mieux que Gemma 2-9B sur les tests de mathématiques (par exemple).
Si les résultats sont prometteurs, une question reste en suspens. Pourquoi ne pas utiliser un LLM déjà entraîné pour servir d’entraîneur au moment de la phase de distillation ? Cela aurait sans doute permis de diminuer l’empreinte carbone de la collection. Enfin, Gemma 2, comme Gemma 1, dépend d’une licence propriétaire permissive dérivée d’Apache 2.0 qui empêche l’utilisation des marques de Google et interdit certains usages illégaux ou considérés dangereux.