Poids Llama : Guide Ultime 2024

Poids Llama : Guide Ultime 2024

Introduction

Vous avez souvent entendu parler des poids Llama mais vous n’y connaissez pas grand-chose ? Pas d’inquiétude ! Dans ce guide ultime, nous explorerons le concept de poids, discuterons du contenu et de l’importance des poids Llama, des méthodes pour télécharger ces poids, et de la manière la plus efficace d’adopter les LLM — l’API. Alors, si vous voulez suivre la tendance des poids Llama, continuez à lire !

Comprendre le concept de poids

Le poids est un concept fondamental dans les réseaux de neurones, y compris les modèles de langage basés sur les transformeurs comme Llama. Les poids sont les paramètres ajustables que le modèle apprend pendant l’entraînement, lui permettant de capturer des motifs dans les données et d’obtenir de bonnes performances sur des tâches de traitement du langage naturel (NLP). L’architecture transformeur, qui est devenue la conception prédominante pour les modèles de langage de pointe, organise ces poids en une structure spécifique appelée « multi-tête auto-attention ».

Dans les modèles transformeurs, les poids sont répartis sur des centaines de couches, chacune composée de nombreux neurones ou unités. Le nombre de paramètres varie selon les modèles en fonction des choix de conception architecturale, comme le nombre de couches, la dimensionnalité des représentations d’entrée et de sortie, et la complexité des mécanismes d’attention. Un nombre important de paramètres permet au modèle de capturer des motifs et des nuances complexes dans le langage naturel, facilitant ainsi ses performances solides sur un large éventail de tâches NLP, allant de la génération de texte à la réponse aux questions et au-delà. Il est important de noter que, bien qu’un nombre élevé de paramètres soit généralement corrélé à une capacité de modèle accrue, une utilisation efficace de ces paramètres grâce à des innovations architecturales, des stratégies d’entraînement et des techniques de régularisation est cruciale pour des performances et une généralisation optimales.

Que sont les poids Llama ?

Les poids Llama désignent les paramètres utilisés dans les modèles de la famille Llama. Les discussions actuelles autour des poids Llama sont le résultat de la décision de Meta AI de partager les modèles Llama 2 et 3 avec le public. Cela signifie que tout le monde peut désormais accéder librement à ces modèles et les télécharger, ainsi que leurs tokeniseurs (outils qui divisent le texte en parties plus petites appelées « tokens », similaires à un mot) et leurs poids, pour une utilisation personnelle et même commerciale.

Différence entre Llama 2 et 3

Naturellement, avec l’innovation des modèles, les différentes générations de Llama ont des nombres de poids différents. Pour préciser, Llama 2 propose des modèles en trois tailles différentes, avec environ 7 milliards, 13 milliards et 70 milliards de paramètres respectivement. De même, le modèle Llama 3 est disponible en versions avec 8 milliards et 70 milliards de paramètres. Bien que les plus grands modèles de Meta AI aient plus de 400 milliards de paramètres, ils sont encore en cours d’entraînement et n’ont pas encore été publiés.

Comprendre les poids Llama dans le code

Writing vocab...
[  1/291] Writing tensor tok_embeddings.weight                  | size  32000 x   4096  | type UnquantizedDataType(name='F16')
[  2/291] Writing tensor norm.weight                            | size   4096           | type UnquantizedDataType(name='F32')
[  3/291] Writing tensor output.weight                          | size  32000 x   4096  | type UnquantizedDataType(name='F16')
[  4/291] Writing tensor layers.0.attention.wq.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[  5/291] Writing tensor layers.0.attention.wk.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[  6/291] Writing tensor layers.0.attention.wv.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[  7/291] Writing tensor layers.0.attention.wo.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[  8/291] Writing tensor layers.0.attention_norm.weight         | size   4096           | type UnquantizedDataType(name='F32')
[  9/291] Writing tensor layers.0.feed_forward.w1.weight        | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[ 10/291] Writing tensor layers.0.feed_forward.w2.weight        | size   4096 x  11008  | type UnquantizedDataType(name='F16')
[ 11/291] Writing tensor layers.0.feed_forward.w3.weight        | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[ 12/291] Writing tensor layers.0.ffn_norm.weight               | size   4096           | type UnquantizedDataType(name='F32')
[ 13/291] Writing tensor layers.1.attention.wq.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[ 14/291] Writing tensor layers.1.attention.wk.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[ 15/291] Writing tensor layers.1.attention.wv.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[ 16/291] Writing tensor layers.1.attention.wo.weight           | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[ 17/291] Writing tensor layers.1.attention_norm.weight         | size   4096           | type UnquantizedDataType(name='F32')
[ 18/291] Writing tensor layers.1.feed_forward.w1.weight        | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[ 19/291] Writing tensor layers.1.feed_forward.w2.weight        | size   4096 x  11008  | type UnquantizedDataType(name='F16')
[ 20/291] Writing tensor layers.1.feed_forward.w3.weight        | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[ 21/291] Writing tensor layers.1.ffn_norm.weight               | size   4096           | type UnquantizedDataType(name='F32')
...
[283/291] Writing tensor layers.31.attention.wq.weight          | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[284/291] Writing tensor layers.31.attention.wk.weight          | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[285/291] Writing tensor layers.31.attention.wv.weight          | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[286/291] Writing tensor layers.31.attention.wo.weight          | size   4096 x   4096  | type UnquantizedDataType(name='F16')
[287/291] Writing tensor layers.31.attention_norm.weight        | size   4096           | type UnquantizedDataType(name='F32')
[288/291] Writing tensor layers.31.feed_forward.w1.weight       | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[289/291] Writing tensor layers.31.feed_forward.w2.weight       | size   4096 x  11008  | type UnquantizedDataType(name='F16')
[290/291] Writing tensor layers.31.feed_forward.w3.weight       | size  11008 x   4096  | type UnquantizedDataType(name='F16')
[291/291] Writing tensor layers.31.ffn_norm.weight              | size   4096           | type UnquantizedDataType(name='F32')