Intelligence artificielle
Llama 2 : Une plongée en profondeur dans le défi open-source de ChatGPT

Les grands modèles de langage (LLM) capables de tâches de raisonnement complexes ont montré leur potentiel dans des domaines spécialisés comme la programmation et l’écriture créative. Cependant, le monde des LLM n’est pas simplement un paradis plug-and-play ; il existe des défis en termes d’utilisabilité, de sécurité et de demandes computationnelles. Dans cet article, nous allons plonger en profondeur dans les capacités de Llama 2, tout en fournissant un guide détaillé pour configurer ce LLM haute performance via Hugging Face et T4 GPUs sur Google Colab.
Développé par Meta avec son partenariat avec Microsoft, ce grand modèle de langage open-source vise à redéfinir les règles de l’IA générative et de la compréhension du langage naturel. Llama 2 n’est pas simplement un autre modèle statistique entraîné sur des téraoctets de données ; c’est l’incarnation d’une philosophie. Une philosophie qui met l’accent sur l’approche open-source comme fondement du développement de l’IA, en particulier dans l’espace de l’IA générative.
Llama 2 et son substitut optimisé pour le dialogue, Llama 2-Chat, sont équipés d’un maximum de 70 milliards de paramètres. Ils subissent un processus de fine-tuning conçu pour les aligner étroitement sur les préférences humaines, les rendant ainsi plus sûrs et plus efficaces que de nombreux autres modèles publics. Ce niveau de granularité dans le fine-tuning est souvent réservé aux LLM fermés “produits”, tels que ChatGPT et BARD, qui ne sont généralement pas disponibles pour un examen public ou une personnalisation.
Plongée technique en profondeur de Llama 2
Pour l’entraînement du modèle Llama 2 ; comme ses prédécesseurs, il utilise une architecture de transformateur auto-régressif , pré-entraîné sur un vaste corpus de données auto-supervisées. Cependant, il ajoute une couche supplémentaire de sophistication en utilisant l’apprentissage par renforcement avec une rétroaction humaine (RLHF) pour s’aligner mieux sur le comportement et les préférences humains. Cela est coûteux en termes de calculs mais essentiel pour améliorer la sécurité et l’efficacité du modèle.
Pré-entraînement et efficacité des données
L’innovation fondamentale de Llama 2 réside dans son régime de pré-entraînement. Le modèle prend des indices de son prédécesseur, Llama 1, mais introduit plusieurs améliorations cruciales pour élever ses performances. Notamment, une augmentation de 40 % du nombre total de jetons formés et une expansion deux fois plus grande de la longueur de contexte se démarquent. De plus, le modèle utilise l’attention regroupée aux requêtes (GQA) pour amplifier la scalabilité de l’inférence.
Fine-tuning supervisé (SFT) et apprentissage par renforcement avec rétroaction humaine (RLHF)
Llama-2-Chat a été rigoureusement affiné en utilisant à la fois le fine-tuning supervisé (SFT) et l’apprentissage par renforcement avec rétroaction humaine (RLHF). Dans ce contexte, le SFT sert de composant intégral du cadre RLHF, affinant les réponses du modèle pour les aligner étroitement sur les préférences et les attentes humaines.
OpenAI a fourni une illustration éclairante qui explique les méthodologies SFT et RLHF employées dans InstructGPT. Tout comme LLaMa 2, InstructGPT utilise également ces techniques de formation avancées pour optimiser les performances de son modèle.
Étape 1 dans l’image ci-dessous se concentre sur le fine-tuning supervisé (SFT), tandis que les étapes suivantes complètent le processus d’apprentissage par renforcement à partir de la rétroaction humaine (RLHF).
Le fine-tuning supervisé (SFT) est un processus spécialisé visant à optimiser un grand modèle de langage pré-entraîné pour une tâche spécifique en aval. Contrairement aux méthodes non supervisées, qui n’exigent pas de validation des données, le SFT utilise un jeu de données qui a été prévalidé et étiqueté.
Généralement, la création de ces jeux de données est coûteuse et chronophage. L’approche de Llama 2 a privilégié la qualité plutôt que la quantité. Avec seulement 27 540 annotations, l’équipe de Meta a atteint des niveaux de performance compétitifs avec les annotateurs humains. Cela s’aligne bien sur des études récentes montrant que même des jeux de données limités mais propres peuvent conduire à des résultats de haute qualité.
Dans le processus SFT, le LLM pré-entraîné est exposé à un jeu de données étiqueté, où les algorithmes d’apprentissage supervisé entrent en jeu. Les poids internes du modèle sont réétalonnés en fonction des gradients calculés à partir d’une fonction de perte spécifique à la tâche. Cette fonction de perte quantifie les écarts entre les sorties prédites du modèle et les étiquettes de vérité terrain réelles.
Cette optimisation permet au LLM de saisir les modèles et les nuances complexes intégrés dans le jeu de données étiqueté. Par conséquent, le modèle n’est pas seulement un outil généralisé mais évolue en un atout spécialisé, apte à exécuter la tâche cible avec un degré élevé de précision.
L’apprentissage par renforcement est l’étape suivante, visant à aligner le comportement du modèle sur les préférences humaines de manière plus étroite.
La phase de réglage a utilisé l’apprentissage par renforcement à partir de la rétroaction humaine (RLHF), en employant des techniques comme l’échantillonnage d’importance et l’optimisation de la politique proximale pour introduire du bruit algorithmique, échappant ainsi aux optima locaux. Ce réglage itératif n’a pas seulement amélioré le modèle mais a également aligné sa sortie sur les attentes humaines.
Llama 2-Chat a utilisé un protocole de comparaison binaire pour collecter des données de préférence humaine, marquant une tendance notable vers des approches plus qualitatives. Ce mécanisme a informé les modèles de récompense, qui sont ensuite utilisés pour affiner le modèle d’IA conversationnel.
Attention fantôme : dialogues multi-tours
Meta a introduit une nouvelle fonctionnalité, l’attention fantôme (GAtt), conçue pour améliorer les performances de Llama 2 dans les dialogues multi-tours. Cela résout efficacement le problème persistant de perte de contexte dans les conversations en cours. L’attention fantôme agit comme une ancre, reliant les instructions initiales à tous les messages utilisateur ultérieurs. Couplée avec des techniques d’apprentissage par renforcement, elle aide à produire des réponses cohérentes, pertinentes et alignées sur l’utilisateur sur des dialogues plus longs.
Téléchargement à partir du référentiel Git de Meta en utilisant download.sh
- Visitez le site Web de Meta : Accédez au site officiel de Llama 2 de Meta et cliquez sur ‘Télécharger le modèle’
- Renseignez les détails : Lisez et acceptez les conditions pour continuer.
- Confirmation par e-mail : Une fois le formulaire soumis, vous recevrez un e-mail de Meta avec un lien pour télécharger le modèle à partir de leur référentiel Git.
- Exécutez download.sh : Clonez le référentiel Git et exécutez le script
download.sh. Ce script vous demandera de vous authentifier à l’aide d’une URL de Meta qui expire dans 24 heures. Vous choisirez également la taille du modèle — 7B, 13B ou 70B.
À partir de Hugging Face
- Recevez l’e-mail d’acceptation : Après avoir obtenu l’accès de Meta, allez sur Hugging Face.
- Demander l’accès : Choisissez votre modèle souhaité et soumettez une demande pour accéder.
- Confirmation : Attendez un e-mail ‘accès accordé’ dans les 1-2 jours.
- Générez des jetons d’accès : Accédez à ‘Paramètres’ dans votre compte Hugging Face pour créer des jetons d’accès.
La version 4.31 de Transformers est entièrement compatible avec LLaMa 2 et ouvre de nombreux outils et fonctionnalités au sein de l’écosystème Hugging Face. Des scripts d’entraînement et d’inférence à la quantification 4 bits avec bitsandbytes et au fine-tuning efficace des paramètres (PEFT), l’ensemble d’outils est vaste. Pour commencer, assurez-vous d’être sur la dernière version de Transformers et connecté à votre compte Hugging Face.
Voici un guide simplifié pour exécuter l’inférence du modèle LLaMa 2 dans un environnement Google Colab, en utilisant un runtime GPU :
Installation du package
!pip install transformers !huggingface-cli login
Importation des bibliothèques Python nécessaires.
from transformers import AutoTokenizer import transformers import torch
Initialisation du modèle et du tokeniseur
À cette étape, spécifiez quel modèle Llama 2 vous allez utiliser. Pour ce guide, nous utilisons meta-llama/Llama-2-7b-chat-hf.
model = "meta-llama/Llama-2-7b-chat-hf" tokenizer = AutoTokenizer.from_pretrained(model)
Configuration du pipeline
Utilisez le pipeline Hugging Face pour la génération de texte avec des paramètres spécifiques :
pipeline = transformers.pipeline( "text-generation", model=model, torch_dtype=torch.float16, device_map="auto")
Génération de séquences de texte
Enfin, exécutez le pipeline et générez une séquence de texte en fonction de votre entrée :
sequences = pipeline(
'Qui sont les principaux contributeurs dans le domaine de l\'intelligence artificielle?\n',
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200)
for seq in sequences:
print(f"Résultat : {seq['generated_text']}")
Interface utilisateur A16Z pour LLaMa 2
Andreessen Horowitz (A16Z) a récemment lancé une interface de chatbot basée sur Streamlit spécialement conçue pour Llama 2. Hébergée sur GitHub, cette interface préserve l’historique de conversation et offre également la flexibilité de choisir parmi plusieurs points de terminaison API Llama 2 hébergés sur Replicate. Cette conception centrée sur l’utilisateur vise à simplifier les interactions avec Llama 2, la rendant ainsi un outil idéal à la fois pour les développeurs et les utilisateurs finaux. Pour ceux qui sont intéressés par cette expérience, une démo en direct est disponible à Llama2.ai.
Llama 2 : Ce qui le différencie des modèles GPT et de son prédécesseur Llama 1
Variété d’échelle
Contrairement à de nombreux modèles de langage qui offrent une scalabilité limitée, Llama 2 vous offre une série d’options pour des modèles avec des paramètres variés. Le modèle passe de 7 milliards à 70 milliards de paramètres, offrant ainsi une gamme de configurations pour répondre à des besoins computationnels divers.
Longueur de contexte améliorée
Le modèle a une longueur de contexte de 4K jetons supérieure à Llama 1. Cela lui permet de retenir plus d’informations, améliorant ainsi sa capacité à comprendre et à générer du contenu plus complexe et plus étendu.
Attention regroupée aux requêtes (GQA)
L’architecture utilise le concept de GQA, conçu pour accélérer le calcul de l’attention en mettant en cache les paires de jetons précédents. Cela améliore efficacement la scalabilité de l’inférence du modèle pour en accroître l’accessibilité.
Benchmark de performances
LLama 2 a établi une nouvelle norme en termes de métriques de performance. Il ne dépasse pas seulement son prédécesseur, LLama 1, mais offre également une concurrence significative à d’autres modèles comme Falcon et GPT-3.5.
Le plus grand modèle de Llama 2-Chat, le 70B, surpasse également ChatGPT dans 36 % des cas et égale les performances dans 31,5 % des cas. Source : Paper
Open Source : Le pouvoir de la communauté
Meta et Microsoft entendent que Llama 2 soit plus qu’un simple produit ; ils le voient comme un outil piloté par la communauté. Llama 2 est gratuit pour l’accès à la fois pour la recherche et les fins non commerciales. Ils visent à démocratiser les capacités de l’IA, les rendant accessibles aux startups, aux chercheurs et aux entreprises. Un paradigme open-source permet le « débogage collaboratif » du modèle. Les développeurs et les éthiciens de l’IA peuvent tester, identifier les vulnérabilités et offrir des solutions à un rythme accéléré.
Bien que les conditions de licence de LLaMa 2 soient généralement permissives, des exceptions existent. Les grandes entreprises avec plus de 700 millions d’utilisateurs par mois, comme Google, nécessitent une autorisation explicite de Meta pour son utilisation. De plus, la licence interdit l’utilisation de LLaMa 2 pour l’amélioration d’autres modèles de langage.
Défis actuels avec Llama 2
- Généralisation des données : Llama 2 et GPT-4 ont parfois des difficultés à maintenir des performances uniformément élevées dans des tâches diverses. La qualité et la diversité des données sont tout aussi cruciales que le volume dans ces scénarios.
- Transparence du modèle : Compte tenu des revers antérieurs avec l’IA produisant des sorties trompeuses, explorer la raison du comportement de ces modèles complexes est primordial.
Code Llama – Le dernier lancement de Meta
Meta a récemment annoncé Code Llama, qui est un grand modèle de langage spécialisé dans la programmation avec des tailles de paramètres allant de 7B à 34B. Semblable au ChatGPT Code Interpreter ; Code Llama peut rationaliser les flux de travail des développeurs et rendre la programmation plus accessible. Il prend en charge diverses langues de programmation et est proposé dans des variations spécialisées, telles que Code Llama–Python pour des tâches spécifiques à Python. Le modèle offre également différents niveaux de performance pour répondre à des exigences de latence diverses. Sous licence ouverte, Code Llama invite les contributions de la communauté pour son amélioration continue.
https://about.fb.com/news/2023/08/code-llama-ai-for-coding/
Conclusion
Cet article vous a guidé à travers la configuration d’un modèle Llama 2 pour la génération de texte sur Google Colab avec le support de Hugging Face. Les performances de Llama 2 sont alimentées par une série de techniques avancées, allant des architectures de transformateurs auto-régressifs à l’apprentissage par renforcement avec rétroaction humaine (RLHF). Avec jusqu’à 70 milliards de paramètres et des fonctionnalités comme l’attention fantôme, ce modèle surpasse les normes actuelles de l’industrie dans certains domaines et, avec sa nature ouverte, ouvre la voie à une nouvelle ère dans la compréhension du langage naturel et l’IA générative.

















