Comprendre les tailles des LLM

Maud Nalpas
Maud Nalpas

Bien que la lettre "L" dans les grands modèles de langage (LLM) suggère une échelle massive, la réalité est plus nuancée. Certains LLM contiennent des milliards de paramètres, tandis que d'autres fonctionnent efficacement avec beaucoup moins.

Découvrez quelques exemples concrets et les implications pratiques des différentes tailles de modèles.

En tant que développeurs Web, nous avons tendance à considérer la taille d'une ressource comme sa taille de téléchargement. La taille documentée d'un modèle fait plutôt référence à son nombre de paramètres. Par exemple, Gemma 2B signifie Gemma avec deux milliards de paramètres.

Les LLM peuvent avoir des centaines de milliers, des millions, des milliards ou même des trillions de paramètres.

Les LLM plus volumineux comportent plus de paramètres que leurs homologues plus petits, ce qui leur permet de capturer des relations linguistiques plus complexes et de gérer des requêtes nuancées. Ils sont également souvent entraînés sur des ensembles de données plus volumineux.

Vous avez peut-être remarqué que certaines tailles de modèle, comme 2 milliards ou 7 milliards, sont courantes. Par exemple, Gemma 2B, Gemma 7B ou Mistral 7B. Les classes de taille de modèle sont des regroupements approximatifs. Par exemple, Gemma 2B compte environ deux milliards de paramètres, mais pas exactement.

Les classes de taille de modèle offrent un moyen pratique d'évaluer les performances des LLM. Pensez-y comme aux catégories de poids en boxe: les modèles de la même catégorie de taille sont plus comparables. Deux modèles 2B devraient offrir des performances similaires.

Toutefois, un modèle plus petit peut offrir les mêmes performances qu'un modèle plus volumineux pour des tâches spécifiques.

Capture d'écran des cases à cocher de taille de modèle HuggingFace.
Classes de taille de modèle sur HuggingFace. Ces classes ne sont pas des normes du secteur, elles ont émergé naturellement.

Bien que les tailles de modèle des LLM les plus récents et les plus avancés, tels que GPT-4 et Gemini Pro ou Ultra, ne soient pas toujours divulguées, on estime qu'elles se situent dans la centaine de milliards ou dans les trillions de paramètres.

Les tailles de modèles peuvent varier considérablement. Dans cette illustration, DistilBERT est un minuscule point par rapport au géant Gemini Pro.

Tous les modèles n'indiquent pas le nombre de paramètres dans leur nom. Certains modèles sont suivis d'un numéro de version. Par exemple, Gemini 1.5 Pro fait référence à la version 1.5 du modèle (après la version 1).

LLM ou non ?

Quand un modèle est-il trop petit pour être un LLM ? La définition du LLM peut être quelque peu fluide au sein de la communauté de l'IA et du ML.

Certains ne considèrent que les plus grands modèles avec des milliards de paramètres comme de véritables LLM, tandis que les modèles plus petits, tels que DistilBERT, sont considérés comme de simples modèles de NLP. D'autres incluent des modèles plus petits, mais tout de même puissants, dans la définition de LLM, comme DistilBERT.

LLM plus petits pour les cas d'utilisation sur l'appareil

Les LLM plus volumineux nécessitent beaucoup d'espace de stockage et de puissance de calcul pour l'inférence. Ils doivent s'exécuter sur des serveurs puissants dédiés avec du matériel spécifique (tels que des TPU).

En tant que développeurs Web, nous nous demandons si un modèle est suffisamment petit pour être téléchargé et exécuté sur l'appareil d'un utilisateur.

Mais c'est une question difficile à laquelle répondre. À l'heure actuelle, il n'existe aucun moyen simple de savoir si un modèle peut s'exécuter sur la plupart des appareils de milieu de gamme, pour plusieurs raisons:

  • Les fonctionnalités de l'appareil varient considérablement en fonction de la mémoire, des spécifications du GPU/CPU, etc. Un téléphone Android bas de gamme et un ordinateur portable NVIDIA® RTX sont très différents. Vous disposez peut-être de quelques points de données sur les appareils de vos utilisateurs. Nous n'avons pas encore de définition pour un appareil de référence utilisé pour accéder au Web.
  • Un modèle ou le framework dans lequel il s'exécute peut être optimisé pour s'exécuter sur certains matériels.
  • Il n'existe aucun moyen programmatique de déterminer si un LLM spécifique peut être téléchargé et exécuté sur un appareil spécifique. La capacité de téléchargement d'un appareil dépend de la quantité de VRAM disponible sur le GPU, entre autres facteurs.

Toutefois, nous disposons de connaissances empiriques: aujourd'hui, certains modèles comportant de quelques millions à quelques milliards de paramètres peuvent s'exécuter dans le navigateur, sur des appareils grand public.

Exemple :

  • Gemma 2B avec l'API d'inférence LLM MediaPipe (adaptée même aux appareils CPU uniquement). Essayez-la.
  • DistilBERT avec Transformers.js

Il s'agit d'un domaine naissant. Le paysage va évoluer:

  • Avec les innovations WebAssembly et WebGPU, l'intégration de WebGPU dans davantage de bibliothèques, de nouvelles bibliothèques et d'optimisations, les appareils des utilisateurs devraient être de plus en plus en mesure d'exécuter efficacement des LLM de différentes tailles.
  • Attendez-vous à ce que les LLM plus petits et très performants deviennent de plus en plus courants, grâce aux techniques de réduction émergentes.

Remarques concernant les LLM plus petits

Lorsque vous travaillez avec des LLM plus petits, vous devez toujours tenir compte des performances et de la taille de téléchargement.

Performances

Les capacités de n'importe quel modèle dépendent fortement de votre cas d'utilisation. Un LLM plus petit et affiné pour votre cas d'utilisation peut être plus performant qu'un LLM générique plus volumineux.

Toutefois, dans la même famille de modèles, les LLM plus petits sont moins performants que leurs homologues plus grands. Pour le même cas d'utilisation, vous devrez généralement effectuer plus de travail d'ingénierie rapide lorsque vous utiliserez un LLM plus petit.

Capture d'écran du panneau "Network" (Réseau) de Chrome DevTools.
Le score de Gemma 2B est inférieur à celui de Gemma 7B.
Source: Classement des LLM ouverts HuggingFace, avril 2024

Taille de téléchargement

Plus de paramètres signifie une taille de téléchargement plus importante, ce qui a également un impact sur la possibilité de télécharger un modèle, même s'il est considéré comme petit, pour les cas d'utilisation sur l'appareil.

Bien qu'il existe des techniques permettant de calculer la taille de téléchargement d'un modèle en fonction du nombre de paramètres, cela peut s'avérer complexe.

Début 2024, les tailles de téléchargement des modèles sont rarement documentées. Par conséquent, pour vos cas d'utilisation sur l'appareil et dans le navigateur, nous vous recommandons d'examiner la taille de téléchargement de manière empirique, dans le panneau Network (Réseau) de Chrome DevTools ou avec d'autres outils pour les développeurs de navigateurs.

Capture d'écran du panneau "Network" (Réseau) de Chrome DevTools.
Dans le panneau "Network" (Réseau) des outils pour les développeurs Chrome, Gemma 2B et DistilBERT pour l'inférence dans le navigateur et sur l'appareil dans une application Web. Les tailles de téléchargement sont respectivement de 1,3 Go et 67 Mo.

Gemma est utilisé avec l'API d'inférence LLM MediaPipe. DistilBERT est utilisé avec Transformers.js.

Techniques de réduction de modèle

Il existe plusieurs techniques pour réduire considérablement les exigences de mémoire d'un modèle:

  • Adaptation de rang faible (LoRA): technique de réglage fin dans laquelle les poids pré-entraînés sont figés. En savoir plus sur LoRA
  • Élagage: suppression des pondérations moins importantes du modèle pour en réduire la taille.
  • Quantification: réduction de la précision des poids de nombres à virgule flottante (par exemple, 32 bits) à des représentations à moins de bits (par exemple, 8 bits).
  • Distillation des connaissances: entraînement d'un modèle plus petit pour imiter le comportement d'un modèle plus grand pré-entraîné.
  • Partage de paramètres: utilisation des mêmes poids pour plusieurs parties du modèle, ce qui réduit le nombre total de paramètres uniques.