Llama 3 : Meta, ou la folie des ordres de grandeur
Un jour après la disponibilité officielle de Mixtral 8x22B, Meta a annoncé LLama 3, sa troisième collection de modèles « open weight », sous licence propriétaire permissive. Le géant des réseaux sociaux rattrape ses concurrents, au prix d’investissements techniques et humains conséquents… et d’une plus grosse empreinte carbone.
Pour l’instant, Meta AI a présenté les variantes préentraînées et instruites dotées de 8 et 70 milliards de paramètres. Ces quatre modèles disposent d’une fenêtre de contexte de 8 192 tokens, soit le double de Llama 2 (4096 tokens). Les connaissances de Llama 3-8B sont arrêtées au mois de mars 2023, tandis que celles de Llama 3 70B sont figées en décembre 2023.
Un troisième membre de cette famille de LLM est en cours d’entraînement : LLama 3-400B. Ce LLM de 400 milliards de paramètres sera équipé d’une fenêtre de contexte plus longue. D’autres modèles sont d’ores et déjà prévus, dont certains seront doués de capacités multimodales.
Comme Llama 2-70B, l’architecture de Llama 3 s’appuie sur l’optimisation du mécanisme d’attention groupé (Grouped Query Attention ou GQA). Cette fois-ci, à l’instar de Mistral AI pour Mixtral 8x22B, Meta a revu son tokenizer afin qu’il prenne en compte un vocabulaire de 128 000 tokens, contre 32 000 tokens auparavant.
En revanche, comme anticipé par les interlocuteurs du MagIT, Meta n’a pas opté pour l’architecture Sparse Mixture of Experts (SMoE) pour LLama 3-8B et Llama 3-70B. Celle-ci est très appréciée de Mistral, Databricks et Microsoft, mais les quatre LLM disponibles sont des modèles « denses ».
Llama 2 participe à l’entraînement de son successeur
Meta avait mis un point d’honneur quant à la qualité des données de préentraînement et d’affinage (supervised fine-tuning) de Llama 2. Il dit maintenir cette approche avec Llama 3. Il y a tout de même un changement de taille. Au lieu d’un jeu de données de 2 000 milliards de tokens (2 billions en français et 2 trillions en anglais), il en a réuni plus de 15 000 milliards (15 T). Une hausse de 650 % par rapport à Llama 2 et de 971 % par rapport à Llama 1 (1 400 milliards de tokens). « Notre jeu de données d’entraînement est sept fois plus grand que celui utilisé pour Llama 2 », précise de son côté méta AI.
Concernant le contenu des données en elle-même, le géant des réseaux sociaux précise qu’il a ajouté quatre fois plus de lignes de code et « environ 5 % » des données de préentraînement sont constitués de données de « très haute qualité et non anglophones ». Ces cinq petits pour cent, près de 75 milliards de tokens donc, réunissent des informations dans 30 langues différentes.
Pour améliorer la qualité des données, les chercheurs ont poursuivi l’amélioration des pipelines de filtrage de données en exploitant à la fois des heuristiques (des règles) et des approches sémantiques de déduplications. Les chercheurs ont aussi Llama 2 pour effectuer certaines de ces tâches.
Lors de l’affinage des modèles « Instruct », Meta a exploité des méthodes de fine-tuning supervisé, de rejet d’échantillons, des méthodes d’optimisation de politique proximale (PPO), et d’optimisation directe des politiques (DPO). Les deux techniques d’apprentissage par renforcement PPO et DPO consistent à entraîner des modèles de récompense afin d’aligner les résultats et empêcher les dérives. Ces deux approches auraient permis d’améliorer les résultats de Llama 3-8B et LLama 3-70B « Instruct » au moment d’accomplir des tâches de programmation et de raisonnement.
Le fournisseur de LLM a également mis à jour ses outils (qui sont aussi des LLM), Llama Guard et Cybersec, disponibles dans une V2. Ceux-là doivent respectivement empêcher les modèles de générer des contenus dangereux et du code « non sécurisé » ou malveillant.
Toutefois, Meta signale que l’ajout de 10 millions d’exemples annotés par des humains a grandement aidé dans l’obtention de ces résultats.
« Chinchiquoi ? » : Meta redéfinit ses lois de mise à l’échelle
Pour rappel, les fournisseurs de LLM se sont appuyés pendant environ 1 an et demi sur les « scaling laws », des lois empiriques de mise à l’échelle définies par des chercheurs de Google dans le cadre du développement du projet Chinchilla. Ces lois affirmaient que « pour chaque doublement de la taille du modèle, le nombre de tokens utilisés lors de l’entraînement doit également être doublé ».
Ces règles ne sont plus d’actualité, car ces fournisseurs n’ont plus les mêmes objectifs d’entraînement, comme l’expliquait au MagIT Gautier Viaud, directeur R&D d’ILLUIN Technology.
Les fournisseurs se sont de plus aperçus qu’il faut trouver un équilibre entre grand volume de données, qualité de données, temps d’entraînement et quantité de ressources de calcul requise à l’inférence.
Meta a en fait réécrit ses propres lois de mise à l’échelle. « Ces lois d’échelle nous permettent de sélectionner un mélange de données optimal et de prendre des décisions éclairées sur la manière d’utiliser au mieux notre puissance de calcul dédiée à l’entraînement », affirment les chercheurs.
Cela permettrait de prédire les résultats des LLM « sur des tâches clés » – à savoir les benchmarks génériques – avant même de débuter l’entraînement.
Alors que les chercheurs derrière Chinchilla avaient déterminé que la quantité optimale de données d’entraînement pour un modèle de 8 milliards de paramètres était de 200 milliards de tokens, ceux de Meta ont « constaté que la performance du modèle continue à s’améliorer même après que le modèle a été entraîné sur deux ordres de grandeur de données supplémentaires ».
Les chercheurs d’ILLUIN et de CentraleSupélec ayant travaillé sur CroissantLLM ont émis peu ou prou les mêmes observations : ce modèle de 1,3 milliard de paramètres a été entraîné avec 3 000 milliards de tokens. Databricks a fait le même choix pour DBRX en exploitant 12 000 milliards de tokens pour ce LLM de 132 milliards de paramètres au total (16x8B).
« Nos modèles 8B et 70B ont continué à s’améliorer de manière log-linéaire après avoir été entraînés sur 15T tokens », affirment de leur côté les scientifiques de Meta.
Ce choix a également été pris en pleine conscience du fait que les « petits » LLM sont moins gourmands en ressources à l’inférence et donc des candidats pertinents pour leur mise en production par les entreprises ; même si de plus gros modèles n’ont pas besoin d’autant de temps d’entraînement pour obtenir des performances équivalentes, signale Meta.
Un temps d’entraînement plus de deux fois plus long… pour quatre fois plus d’émissions CO2
Si Meta est très généreux en information dans son billet de blog technique, il faut consulter la fiche de la collection sur GitHub pour découvrir qu’il a dédié 7,7 millions d’heures GPU pour entraîner Llama 3-8B (1,3 million) et LLama 3-70B (6,4 millions), contre 3,3 millions d’heures GPU pour l’ensemble de la collection principale Llama 2 (7, 13 et 70B), soit une hausse de 133 % du temps de calcul, ou environ 2,34 fois.
Il faudra ajouter à cela le temps d’entraînement de LLama 3-400B, encore en cours. Là où l’entraînement de Llama 2 a émis 539 tonnes équivalent carbone (tCO2eq), celui de Llama 3 en a déjà émis 2 290 tonnes équivalent CO2, soit une hausse de 324,86 % des émissions, qui sont, jusqu’à présent, presque multipliées par 4,25 entre Llama 2 et Llama 3.
À titre de comparaison, en 2022, l’empreinte carbone de la France était estimée à 9,2 tonnes équivalent CO2 par habitant, selon le ministère de la transition écologique. Actuellement, l’empreinte carbone de Llama 3 pèserait autant que les émissions de 249 Français pendant un an. Selon Meta, dans les deux cas, « 100 % des émissions sont directement compensées par le programme de développement durable de Meta, et comme nous publions ouvertement ces modèles, les coûts d’entraînement préalable n’ont pas besoin d’être supportés par d’autres ».
Outre le temps d’entraînement, cette flambée des émissions est en partie due au changement d’infrastructure de Meta. Exit l’AI Research Supercluster de 16 000 GPU Nvidia A100 dotés chacun d’une enveloppe thermique de 400 watts. Place à deux clusters « customs » de 24 576 GPU Nvidia H100 (80 Go de VRAM) chacun, reliés en infiniband et avec des switches RDMA. Une carte H100 présente une enveloppe thermique de 700 watts.
En complément, Meta a modifié sa stack matérielle et logicielle pour paralléliser les traitements liés aux pipelines, aux modèles et aux données.
« Notre implémentation la plus efficace atteint une utilisation de calcul de plus de 400 TFLOPS par GPU lors de l’entraînement sur 16 000 GPU simultanément », assurent les chercheurs.
Qui dit plus de GPU dit plus de pannes potentielles. Les ingénieurs de Meta disent avoir automatisé la détection d’erreur et une partie de la maintenance liées au GPU, ainsi que la détection de la corruption silencieuse des données, tout en réduisant les rollbacks. « L’ensemble de ces améliorations a permis de multiplier par trois l’efficacité de l’entraînement de Llama 3 par rapport au Llama 2 », avancent-ils.
Des LLM « kif-kif bourricot » : Meta rattrape ses concurrents
Est-ce que tous ces moyens matériels, logiciels et humains (331 personnes ont participé au projet) en valent la chandelle ?
Selon les parangonnages de Meta, Llama 3-8B surpasse largement Gemma 7B et Mitral 7B instruct dans les benchmarks MMLU, GPQA, HumanEval, GSM-8K, et MATH. Il se rapproche des performances de Llama 2-70B. La version instruct de ce « petit » LLM serait même meilleure – et pas qu’un peu – que LLama 2-70B.
Les gains obtenus avec Llama 3-70B sont moins probants, même s’il semble surpasser Gemini 1.5 Pro, Claude 3 Sonnet et Mixtral 8x22B de quelques points.
Concernant LLama 3-70B-Instruct, Meta a créé son propre benchmark constitué de 1 800 prompts couvrant douze cas d’usage « clés » (conseils, brainstorming, classification, réponses à des questions fermées, programmation, écriture créative, extraction, jeu de rôle, réponse à des questions ouvertes, raisonnement, réécriture et production de résumé). À ce jeu-là, le modèle de Meta bat Claude 3 Sonnet, GPT-3.5, Mistral Medium, et Llama 3.
Le benchmark de Lmsys Chatbot Arena basé sur 500 000 paires de questions-réponses place Llama 3-70B Instruct à la septième position derrière Claude 3 Sonnet, Gemini Pro 1.0, GPT-4-0125-preview, Claude 3 Opus, GPT-4-1106-Preview et GPT-4-Turbo-2024-04-09.
En clair, tout ce beau monde se tient dans un mouchoir de poche et il est désormais essentiel de les différencier par cas d’usage.
Llama 3-8B et Llama-70B sont disponibles depuis Hugging Face après avoir obtenu l’accord de Meta. Ils sont ou seront également accessibles depuis Amazon Bedrock, Google Vertex AI, IBM WatsonX, Azure, Nvidia NIM, Snowflake, Kaggle et Databricks. Ils devraient être compatibles avec tous les équipements du marché.
Les ingénieurs d’Hugging Face ont déjà fait des tests avec Llama 3-8B-Instruct et précisent qu’il nécessite 16 Go de VRAM pour s’exécuter. Un GPU grand public comme la 3090 ou 4090 suffit. La version compressée en 4 bits ne réclame « que » 7 Go de VRAM, ce qui rend le LLM encore plus abordable.