Gemma 2 : amélioration de modèles de langage ouverts de taille pratique [PDF]
(storage.googleapis.com)- Gemma 2 de Google DeepMind est une famille de modèles ouverts légers de tailles 2B, 9B et 27B, publiée avec l’objectif d’offrir, même avec de petits modèles, des performances capables de rivaliser avec des modèles plus grands
- Les modèles 2B et 9B utilisent la distillation de connaissances au lieu de la prédiction du prochain token, tandis que le 27B a été entraîné depuis zéro, avec des stratégies d’entraînement différentes selon l’échelle
- Sur le plan architectural, Gemma 2 combine l’alternance entre attention locale et globale, Grouped-Query Attention, logit soft-capping et RMSNorm en pre-norm et post-norm, afin de viser à la fois efficacité et performance
- Les données d’entraînement sont principalement des documents web en anglais, du code et de la littérature scientifique ; le modèle ne vise ni le multimodal ni des performances multilingues de pointe
- Dans les évaluations, il surpasse les modèles ouverts de taille comparable, mais avant tout déploiement réel, des tests de sécurité propres à chaque cas d’usage sont nécessaires
Vue d’ensemble du modèle Gemma 2
- Gemma 2 est un nouveau modèle ouvert léger de la famille Gemma, disponible en tailles 2B, 9B et 27B paramètres
- Les modèles 2B et 9B sont entraînés par distillation de connaissances plutôt que par prédiction du prochain token
- Un grand modèle de langage sert de modèle enseignant, et le modèle étudiant apprend la distribution des prochains tokens possibles pour chaque token
- Les modèles 2B et 9B sont distillés sur plus de 50 fois plus de tokens que le nombre théoriquement compute-optimal
- Le modèle 27B est entraîné depuis zéro pour ce travail
- Les performances sont nettement améliorées par rapport aux modèles ouverts de taille comparable, et sur certains benchmarks ainsi que dans des évaluations humaines, les résultats sont compétitifs avec des modèles 2 à 3 fois plus grands
- Avant toute application réelle, tous les utilisateurs doivent effectuer des tests de sécurité adaptés au contexte de déploiement ou d’utilisation
Architecture du modèle et choix de conception
- Gemma 2 utilise une architecture Transformer decoder-only similaire à celle du précédent Gemma
- Les éléments de conception communs sont les suivants
- Longueur de contexte : 8192 tokens
- Embeddings positionnels RoPE
- Non-linéarité GeGLU
- Tokenizer SentencePiece à 256 128 entrées de vocabulaire
- Utilisation de tied embeddings
- Les principales modifications architecturales se concentrent sur l’attention et la normalisation
- local sliding window attention et attention globale sont alternées couche par couche
- La sliding window de l’attention locale couvre 4096 tokens
- La portée de l’attention globale est de 8192 tokens
- Le logit soft-capping est appliqué aux couches d’attention et à la couche finale
- Le soft_cap des couches de self-attention est de 50.0
- Le soft_cap de la couche finale est de 30.0
- RMSNorm est appliqué à l’entrée et à la sortie de chaque sous-couche Transformer, utilisant à la fois pre-norm et post-norm
- Dans les ablations, Grouped-Query Attention apparaît comme un choix qui maintient les performances tout en accélérant l’inférence
- local sliding window attention et attention globale sont alternées couche par couche
Données d’entraînement et infrastructure
- Le nombre de tokens de pré-entraînement varie selon la taille du modèle
- Gemma 2 27B : 13 billions de tokens
- Gemma 2 9B : 8 billions de tokens
- Gemma 2 2B : 2 billions de tokens
- Les données d’entraînement sont principalement en anglais et proviennent de diverses sources, notamment des documents web, du code et de la littérature scientifique
- Le modèle n’est pas multimodal et n’a pas été entraîné spécifiquement pour viser des performances multilingues de pointe
- Le filtrage des données suit la même méthode que Gemma 1
- Réduction des énoncés indésirables ou dangereux
- Suppression de certaines informations personnelles et données sensibles
- Suppression de la contamination des jeux d’évaluation
- Atténuation du risque de répétition de sorties sensibles
- L’infrastructure d’entraînement repose sur des TPU
- 2B : 512 puces TPUv5e
- 9B : 4096 puces TPUv4
- 27B : 6144 puces TPUv5p
- Les émissions carbone du pré-entraînement sont estimées à 1247,61 tCO2eq
- Calculées à partir de la consommation énergétique horaire des datacenters TPU
- La neutralité carbone des datacenters Google est atteinte via l’efficacité énergétique, l’achat d’énergies renouvelables et la compensation carbone
Post-entraînement et format de dialogue
- Le post-entraînement est le processus qui affine le modèle pré-entraîné en modèle instruction-tuned
- Les étapes d’entraînement sont les suivantes
- SFT sur des paires prompt-réponse synthétiques et générées par des humains, uniquement en texte anglais
- Application de RLHF à l’aide d’un reward model entraîné sur des données de préférences en anglais
- Moyenne des modèles obtenus à chaque étape pour améliorer les performances globales
- Le mélange de données et la recette de post-entraînement sont choisis selon l’amélioration de l’utilité, la garantie de sécurité et la minimisation des risques liés aux hallucinations
- Depuis Gemma 1.1, les données de post-entraînement ont été élargies en combinant des données internes et des données publiques externes
- Dans LMSYS-chat-1M, seuls les prompts sont utilisés, pas les réponses
- Plusieurs étapes de filtrage sont appliquées aux données synthétiques
- Informations personnelles
- Sorties de modèle dangereuses ou toxiques
- Données d’auto-identification incorrectes
- Exemples dupliqués
- Gemma 2 utilise les mêmes control tokens que Gemma 1, mais le formatting schema est différent
- Le modèle émet explicitement les tokens
<end_of_turn><eos>à la fin de la génération - Auparavant, il ne générait que
<eos>
- Le modèle émet explicitement les tokens
Distillation de connaissances et expériences sur les choix architecturaux
- Dans une comparaison où le modèle 2B est entraîné sur 500B tokens, l’entraînement par distillation obtient de meilleures performances que l’entraînement depuis zéro
- Moyenne de 3 benchmarks : from scratch 60.3, distilled 67.7
- 500B représente 10 fois plus que le nombre compute-optimal de tokens pour le modèle 2B
- Dans les comparaisons de perplexité de validation des modèles 200M, 400M et 1B, les modèles distillés affichent aussi une perplexité plus basse
- 200M : from scratch 23, distilled 21
- 400M : from scratch 19, distilled 17
- 1B : from scratch 17, distilled 15
- Sur le modèle 9B, l’écart de performance entre GQA et MHA est faible ; GQA est choisi car il utilise moins de paramètres et est plus rapide à l’inférence
- Moyenne de 4 benchmarks : MHA 50.3, GQA 50.8
- À nombre identique de paramètres 9B, une architecture plus profonde montre des performances légèrement meilleures qu’une architecture plus large
- Moyenne de 4 benchmarks : Wide 50.8, Deep 52.0
- Changer la taille de la sliding window à 4096, 2048 ou 1024 lors de l’inférence a un impact limité sur la perplexité
- 4096 : 1.63
- 2048 : 1.63
- 1024 : 1.64
Résultats des benchmarks automatiques
- Le modèle pré-entraîné 27B est comparé à Qwen1.5 32B et LLaMA-3 70B dans l’évaluation HuggingFace
- MMLU : Gemma-2 27B 75.2, Qwen1.5 32B 74.3, LLaMA-3 70B 79.2
- GSM8K : Gemma-2 27B 74.0, Qwen1.5 32B 61.1, LLaMA-3 70B 76.9
- ARC-c : Gemma-2 27B 71.4, Qwen1.5 32B 63.6, LLaMA-3 70B 68.8
- HellaSwag : Gemma-2 27B 86.4, Qwen1.5 32B 85.0, LLaMA-3 70B 88.0
- Winogrande : Gemma-2 27B 83.7, Qwen1.5 32B 81.5, LLaMA-3 70B 85.3
- Les modèles 2B et 9B progressent aussi fortement par rapport aux modèles Gemma précédents
- Le modèle 9B s’améliore jusqu’à 10 % sur certains benchmarks par rapport à la version précédente
- Gemma 2 2B a été entraîné avec un nombre de tokens similaire à Gemma 1 2B, mais ses performances progressent
- Les moyennes globales sur plusieurs benchmarks sont les suivantes
- Gemma 1 2B : 44.2
- Gemma 2 2B : 48.7
- Gemma 1 7B : 57.9
- Gemma 2 9B : 64.9
- Gemma 2 27B : 69.4
Évaluation humaine et Chatbot Arena
- Les modèles Gemma 2 instruction-tuned sont évalués dans LMSYS Chatbot Arena selon une méthode blind side-by-side
- Les scores Elo sont les suivants
- gemma-2-27b-it : 1218
- gemma-2-9b-it : 1187
- gemma-2-2b-it : 1126
- Les résultats de comparaison montrent leur compétitivité au regard de la taille des modèles
- gemma-2-27b-it obtient un score supérieur à llama-3-70b-instruct, Elo 1206
- gemma-2-9b-it est proche de gpt-4-0314, Elo 1186
- gemma-2-2b-it dépasse gpt-3.5-turbo-0613, Elo 1116
- Une évaluation humaine distincte des préférences mesure la sécurité et le suivi des instructions avec des prompts single-turn held-out
- Suivi des instructions : Gemma 1.1 IT 7B 24.3 %, Gemma 2 IT 2B 26.5 %, 9B 34.1 %, 27B 37.7 %
- Sécurité : Gemma 1.1 IT 7B 42.8 %, Gemma 2 IT 2B 57.5 %, 9B 57.8 %, 27B 55 %
- L’évaluation multi-turn est menée sur 500 scénarios held-out avec en moyenne 8,4 tours utilisateur
- Satisfaction utilisateur : Gemma 1.1 IT 7B 3.32, Gemma 2 IT 2B 3.64, 9B 4.04, 27B 4.20
- Atteinte de l’objectif conversationnel : Gemma 1.1 IT 7B 3.36, Gemma 2 IT 2B 3.88, 9B 4.08, 27B 4.24
Mémorisation et informations personnelles
- Les grands modèles de langage pouvant, sous certaines conditions, reproduire à l’identique des données d’entraînement, Gemma 2 est évalué sur la mémorisation verbatim et approximate
- L’évaluation consiste à fournir un prompt de 50 tokens et à mesurer la mémorisation de 50 tokens issus des données d’entraînement
- Critère exact match
- Critère approximate match utilisant une edit distance de 10 %
- Le taux global de mémorisation exacte de Gemma 2 est inférieur à 0,1 %
- Par source de données, davantage de mémorisation apparaît dans le code, les wikis et les sources scientifiques, mais le niveau reste globalement inférieur à celui de Gemma 1
- L’évaluation des informations personnelles utilise Google Cloud Sensitive Data Protection Tool
- Aucun cas de sortie d’informations personnelles à sévérité élevée n’a été détecté
- La part de données mémorisées contenant des informations personnelles à faible sévérité est mesurée à 0,00026 %
- Les outils automatisés ne tiennent pas compte du contexte, peuvent produire des faux positifs, et les résultats peuvent avoir été surestimés
Déploiement responsable et sécurité
- Le développement de Gemma 2 s’appuie sur trois axes : l’atténuation des risques de sécurité pendant l’entraînement, une évaluation transparente du modèle et le développement du Responsible Generative AI Toolkit
- Les modèles publics peuvent diffuser les bénéfices des technologies d’IA, mais il faut aussi évaluer les risques d’abus comme les images deepfake, la désinformation générée par IA ou la génération de contenus illégaux ou disturbing
- Aucun signalement d’usage malveillant de Gemma n’a encore été reçu, mais en cas de signalement, il sera examiné et surveillé avec la communauté
- Compte tenu de l’existence de modèles publics plus grands et plus puissants, l’impact de Gemma 2 sur le paysage global des risques est jugé faible
- La politique de sécurité est conçue dans la même direction que celle des modèles Gemini, afin d’empêcher la génération de harmful content
- Abus sexuels et exploitation d’enfants
- Divulgation d’informations personnelles pouvant entraîner un préjudice
- Discours haineux et harcèlement
- Contenus dangereux ou malveillants
- Contenus sexuellement explicites
- Conseils médicaux contraires au consensus scientifique ou médical
- Les modèles instruction-tuned sont ajustés via SFT et RLHF pour s’éloigner des comportements indésirables
1 commentaires
Avis sur Hacker News
La version 27B est très puissante
Elle a obtenu un score supérieur à Llama-3-70B dans LMSys Chatbot Arena, et se situe au niveau d’OpenAI GPT-4 et de Claude-3 Sonnet
Si vous voulez évaluer Gemma en local, c’est assez facile à faire avec ollama et promptfoo
Un petit détail que j’ai toujours apprécié avec Gemma, c’est qu’il passe directement au code, sans introduction du type « Sure, I can help you », puis ajoute une explication ensuite
L’entraînement semble avoir mis l’accent sur la structure des réponses et la facilité de compréhension
Il vaut aussi mieux lancer des évaluations qui ne reposent pas sur une simple mémorisation de code public, donc il est préférable de les remplacer par des tests personnels
[0] https://ollama.com/library/gemma2
[1] https://github.com/promptfoo/promptfoo
Avant de se laisser emporter par des attentes excessives, je recommande de le tester soi-même et d’attendre que les scores de Chatbot Arena se stabilisent
Dans mes évaluations personnelles, gemma-2-27b-it dans AI Studio était nettement moins bon que Llama 3 70B, surtout sur le raisonnement et les questions de compréhension générale du monde
Je l’ai vu tardivement, mais pour mémoire, les modèles Gemma 2 semblent avoir été entraînés par apprentissage par renforcement pour optimiser leurs performances sur Chat Arena : https://x.com/natolambert/status/1806384821826109597
La partie pertinente de l’article y est mise en évidence
Je me demande quel est son point fort le plus marquant
Les petits modèles réussissent souvent bien les benchmarks, mais échouent en généralisation, et cela me rappelle Phi-2
Cela ressemble à l’effet de meilleures données d’entraînement pour les langues autres que l’anglais
Sur les prompts difficiles en anglais, il est 15 ELO en dessous de Llama-3-70B, et 41 ELO en dessous sur l’anglais général
Ce dernier écart est effectivement statistiquement significatif
Bonjour à nouveau de la part de l’équipe Gemma
Nous sommes très heureux de publier cette version, et je répondrai aux questions s’il y en a
Ces avis sont personnels et ne représentent pas la position de Google DeepMind
En revanche, comprendre comment Google Cloud Vertex fonctionne et comment il est facturé est plus complexe, et Azure comme AWS sont tout aussi complexes pour cet usage
Ce serait bien que Google Cloud propose une API et un service compatibles avec OpenAI
Je sais que ce sont des départements différents, mais cela rendrait l’utilisation des modèles beaucoup plus simple
Google Cloud donne souvent l’impression de n’avoir fait l’objet d’aucun test UX ni utilisateur final
aistudio.google.com s’est clairement amélioré par rapport à avant
Le 27b peut être essayé sur www.aistudio,google.com, donc j’espère que vous y mettrez vos prompts habituels et que les réponses vous plairont
Je me demande pourquoi ils ont choisi cette méthode au lieu de passer simplement à un contexte complet de 8k ou 16k
Je me demande si c’est dû à une différence d’architecture fondamentale, à une différence de jeux d’entraînement, ou à une autre raison
Pour les 2.6B/9B, je me demande s’il ne faudrait pas plutôt les comparer au Phi-3 mini 3.8B de Microsoft qu’à Mistral ou Llama-3
En comparant le tableau 13 page 7 de l’article avec la page 6 de https://arxiv.org/pdf/2404.14219, Phi-3 semble globalement assez nettement meilleur
Cela dit, le compte rendu sur l’entraînement par distillation de connaissances est intéressant
Le 2.6B serait largement distancé par Phi-3, donc il n’y a pas de comparaison
Si l’on compare 2,6B et 3,8B, l’écart paraît moins parlant, mais en le voyant comme 2,6 milliards contre 3,8 milliards, c’est une différence de taille assez importante, ce qui peut l’expliquer
Mais on commence alors à voir apparaître une forme de gonflement du nombre de paramètres, comme Mistral 7B contre Llama 8B contre Gemma 9B
Depuis que Llama 3 est passé à 8B, je craignais qu’une tendance à jouer avec le nombre de paramètres apparaisse, mais je pensais m’inquiéter pour rien
Je suis d’accord pour dire que la famille Phi-3 est un concurrent plus solide pour l’extraction/synthèse de connaissances, et donc un bon point de comparaison
Pour ce type de tâches sur une station de travail à VRAM limitée, mon préféré actuellement est Phi-3 medium, c’est-à-dire phi3:14b-instruct
Les versions 9B et 27B sont disponibles sur Ollama : https://ollama.com/library/gemma2
Le modèle 27B est aussi utilisable dans AI Studio
https://aistudio.google.com/app/prompts/new_chat?model=gemma...
Jusqu’à présent, il semble assez puissant pour sa taille
Excellente sortie.
Si vous voulez l’essayer en local avec une bonne interface, je viens d’ajouter la prise en charge de Gemma2 dans l’app que je développe [1]
1: https://msty.app
msty a vraiment l’air très bien.
Je l’ai mis en favori pour regarder plus tard si ça peut remplacer ma façon d’utiliser une instance LibreChat hébergée en local.
Pour beaucoup de questions, utiliser des modèles locaux plutôt que des modèles distants serait, je pense, une grosse amélioration.
Cela dit, je me demande s’il y a une raison de garder msty closed source plutôt qu’open source.
J’ai lu le « why should I trust msty » de la FAQ, mais ça m’a semblé insuffisant.
C’est bien mieux qu’une absence totale d’identité, mais on est loin de pouvoir vérifier la confiance en lisant le code.
J’aimerais savoir pourquoi il n’est pas publié.
Je compte quand même l’essayer.
Ça a l’air chouette, mais comme c’est closed source, je reste prudent.
Sur Arch Linux, quand j’essaie d’enregistrer une clé API Anthropic, rien ne se passe, et un message indique : « If you're experiencing problems saving API keys especially on Linux, contact Discord ».
Si le problème est aussi courant, il me semble qu’il devrait y avoir un lien vers des solutions possibles.
Devoir ajouter encore un serveur Discord juste pour tester, puis chercher la réponse à une question qui a sûrement déjà été posée souvent, c’est une barrière assez importante.
Je l’ai téléchargé, ça a l’air bien.
J’aime bien la vue fractionnée synchronisée.
Mais contrairement à ce qui est annoncé sur la landing page, je ne vois ni Gemma 2 ni Claude 3.5 Sonnet.
Je me demande s’il est prévu de l’ajouter à Chocolatey pour le téléchargement sous Windows.
Ça a l’air cool.
Je ne sais pas comment j’ai pu passer à côté jusqu’ici, et je vais l’essayer.
La distillation de connaissances est très intéressante, mais générer des billions de sorties à partir d’un gros modèle enseignant doit coûter absurdement cher.
Je me demande si c’est vraiment plus rentable que d’utiliser ces ressources de calcul directement pour entraîner le modèle avec plus de données ou plus d’époques.
Il y a encore six mois, j’ai l’impression que tout le monde avait peur de l’effondrement des modèles, et maintenant la génération de données d’entraînement synthétiques et les modèles enseignants sont à la mode.
Je me demande s’ils ont résolu le problème de l’effondrement des modèles.
Le modèle étudiant génère des séquences, et le modèle enseignant fournit un retour sous forme de logits.
Je suis curieux de cette approche avec des tokens spéciaux explicites.
Que se passe-t-il si l’utilisateur met ce genre de tokens dans son message ? Est-ce que cela permet facilement de faire un truc du genre « ignore les instructions précédentes » ?
Faut-il nettoyer soi-même l’entrée avant de la passer au modèle ?
Si vous contrôlez le tokenizer, vous pouvez empêcher ces tokens d’apparaître dans l’entrée utilisateur.
Par exemple, au lieu d’un token spécial, vous pouvez produire l’encodage naturel de la chaîne correspondante, comme « < », « eos », « > ».
Le tokenizer de llama3 a une option pour contrôler la tokenisation des tokens spéciaux : https://github.com/meta-llama/llama3/blob/bf8d18cd087a4a0b3f...
On peut voir ici la façon dont les tokens spéciaux sont combinés avec l’entrée utilisateur : https://github.com/meta-llama/llama3/blob/bf8d18cd087a4a0b3f...
Si vous ne contrôlez pas le tokenizer, il faudra sans doute nettoyer l’entrée comme vous le dites.
Je me demande à quel point l’entraînement par distillation accélère les choses en termes de nombre d’itérations nécessaires pour atteindre une performance donnée.
J’aimerais savoir ce que unsafe signifie ici.
Il fait deux fois la taille de Phi 3 et il est nettement moins bon, c’est ça ?
Je ne sais pas ce qui m’échappe.
Phi-3 est surtout une percée en apprentissage par curriculum.
Ils ont filtré le jeu d’entraînement pour ne garder que des tokens de haute qualité et l’ont entraîné avec des données synthétiques, ce qui a donné de bons résultats.
Gemma-2 est une percée en distillation.
Ils ont obtenu de bons résultats en entraînant un LLM avec l’accompagnement d’un plus grand LLM enseignant.
Rien n’empêche de faire les deux.
Par exemple, Phi-3-Medium fait mieux sur les benchmarks, mais se fait largement distancer par Llama-3-8b dans LMSYS Chatbot Arena.
Les performances de Gemma semblent plutôt sous-évaluées dans les benchmarks
Le 27b est actuellement devant Llama3-70b dans le classement Chatbot Arena
Sur LMSYS, phi-3 small est 52e avec 1100 ELO, et l’intervalle de confiance de Gemma 2 9B est de 1170 à 1200 ELO, ce qui le place entre la 15e et la 25e place
On peut l’essayer directement ici et comparer de cette façon : https://aistudio.google.com/app/prompts/new_chat?model=gemma...
Je me demande si vous avez essayé Phi 3
Il est intelligent et obtient donc de bons résultats aux benchmarks, mais il n’est pas particulièrement bon pour la conversation ou comme chatbot
Gemma 2 sera probablement un meilleur assistant généraliste pour la plupart des gens, tandis que Phi 3 ressemble davantage à un petit LLM solide, adapté à des usages plus spécifiques comme le résumé, le RAG ou l’apprentissage des maths