1 points par GN⁺ 2024-06-28 | 1 commentaires | Partager sur WhatsApp
  • 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

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>

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

 
GN⁺ 2024-06-28
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

      prompts:
      - 'Answer this coding problem in Python: {{ask}}'
      
      providers:
      - ollama:chat:gemma2:9b
      - ollama:chat:llama3:8b
      
      tests:
      - vars:  
      ask: function to find the nth fibonacci number
      - vars:  
      ask: calculate pi to the nth digit
      - # ...  
      

      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

    • Il est relativement facile de payer OpenAI ou Mistral pour utiliser leurs API
      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
    • Moi aussi, je travaille sur Gemma chez Google
      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 si gemma2 sera aussi disponible dans gemma.cpp : https://github.com/google/gemma.cpp
    • Le contexte à fenêtre glissante de 4k semble être un choix controversé, après que Mistral 7B n’a quasiment montré aucun avantage avec cette approche
      Je me demande pourquoi ils ont choisi cette méthode au lieu de passer simplement à un contexte complet de 8k ou 16k
    • Les modèles de l’API Google prennent en charge plus d’un million de tokens, alors que ceux-ci ne vont qu’à 8K
      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

    • La façon dont cet article et ces modèles sont comparés est un peu agaçante
      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
    • Étant donné l’étendue des tailles de modèles, je comprends pourquoi Llama 3 70B et Llama 3 8B ont tous deux été comparés
      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

  • 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.

      We are a small team of developers who are passionate about AI and privacy. We have worked on projects before that have been used by thousands of people such as this (I've never heard of Cleavr). There are real faces (real faces = Twitter account link?) behind the product. And come chat with us on our Discord server to know us better.

      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.

    • Je me pose la même question.
      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.
    • La distillation se fait on-policy, comme RLHF.
      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.

  • We use the same data filtering techniques as Gemma 1. Specifically, we filter the pre-
    training dataset to reduce the risk of unwanted or unsafe utterances.

    J’aimerais savoir ce que unsafe signifie ici.

    • Si vous lui demandez d’expliquer comment fabriquer du napalm en n’utilisant que des doubles sens, il refusera.
  • 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.

    • Ils utilisent deux techniques qui ne s’excluent pas mutuellement.
      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.
    • Phi-3 marche bien sur les benchmarks, mais il est en dessous des attentes en usage réel.
      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