Modèles et plateformes d’IA

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

mm
Ajouter Unite.AI à vos sources préférées sur Google

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 demande computationnelle. Dans cet article, nous allons nous plonger 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 en partenariat avec Microsoft (MSFT ), ce grand modèle de langage open-source vise à redéfinir les domaines de l’intelligence artificielle 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 une 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 de jusqu’à 70 milliards de paramètres. Ils subissent un processus d’ajustement fin qui les aligne é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 l’ajustement fin est souvent réservé aux LLM “produits” fermés, tels que ChatGPT et BARD, qui ne sont généralement pas disponibles pour examen public ou personnalisation.

Plongée technique dans 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 de sophistication supplémentaire en utilisant l’apprentissage par renforcement avec rétroaction humaine (RLHF) pour mieux aligner le modèle avec le comportement et les préférences humaines. Cela est coûteux en termes de calcul, mais essentiel pour améliorer la sécurité et l’efficacité du modèle.

Architecture d'entraînement de Meta Llama 2

Architecture d’entraînement de Meta Llama 2

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 entraînés et une expansion de deux fois la longueur du 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.

Ajustement fin supervisé (SFT) et apprentissage par renforcement avec rétroaction humaine (RLHF)

Llama-2-Chat a été rigoureusement ajusté à l’aide de l’ajustement fin supervisé (SFT) et de 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.

L’étape 1 de l’image ci-dessous se concentre sur l’ajustement fin supervisé (SFT), tandis que les étapes suivantes complètent le processus d’apprentissage par renforcement à partir de la rétroaction humaine (RLHF).

L’ajustement fin supervisé (SFT) est un processus spécialisé visant à optimiser un grand modèle de langage pré-entraîné pour une tâche en aval spécifique. 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é.

En général, la création de ces jeux de données est coûteuse et chronophage. L’approche de Llama 2 a été 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 ensembles 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é 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é, capable de réaliser 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 de conversation.

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

À partir du référentiel Git de Meta en utilisant download.sh

  1. 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 ».
  2. Renseignez les détails : Lisez et acceptez les conditions et les termes pour continuer.
  3. 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.
  4. 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 devrez également choisir la taille du modèle – 7B, 13B ou 70B.

À partir de Hugging

  1. Recevez l’e-mail d’acceptation : Après avoir obtenu l’accès de Meta, allez sur Hugging Face.
  2. Demander l’accès : Choisissez le modèle que vous souhaitez et soumettez une demande pour accéder.
  3. Confirmation : Attendez un e-mail « accès accordé » dans les 1-2 jours.
  4. Générez les 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 aux quantifications 4 bits avec bitsandbytes et au réglage fin 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 :

Modèle Google Colab - T4 GPU

Modèle Google Colab – T4 GPU

 

 

 

 

 

 

Installation du package


<p>!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 tokenizer

Dans 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 = &quot;meta-llama/Llama-2-7b-chat-hf&quot;
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(
&quot;text-generation&quot;,
model=model,
torch_dtype=torch.float16,
device_map=&quot;auto&quot;)

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 contributeurs clés 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&quot;Résultat : {seq['generated_text']}&quot;)

Interface utilisateur A16Z pour LLaMa 2

Andreessen Horowitz (A16Z) a récemment lancé une interface de chatbot basée sur Streamlit conçue pour Llama 2. Hébergée sur GitHub, cette interface conserve l’historique des conversations et offre la flexibilité de sélectionner parmi plusieurs points de terminaison 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 pour les développeurs et les utilisateurs finals. Pour ceux qui s’intéressent à cette expérience, une démo en direct est disponible à Llama2.ai.

Llama 2 : Qu’est-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 propose une gamme de 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 4 000 jetons, supérieure à celle de Llama 1. Cela lui permet de retenir plus d’informations, améliorant ainsi sa capacité à comprendre et à générer du contenu complexe et étendu.

Attention regroupée aux requêtes (GQA)

L’architecture utilise le concept de GQA, conçu pour accélérer le processus de calcul de l’attention en mettant en cache les paires de jetons précédentes. Cela améliore efficacement la scalabilité de l’inférence du modèle pour en accroître l’accessibilité.

Benchmark de performances

Analyse comparative des performances de Llama 2-Chat avec ChatGPT et d'autres concurrents

Analyse comparative des performances de Llama 2-Chat avec ChatGPT et d’autres concurrents

Llama 2 a fixé un nouveau standard en termes de performances. Il surpasse non 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 produit ; ils l’envisagent comme un outil communautaire. Llama 2 est gratuit pour l’accès à des fins de recherche et 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 communautaire » du modèle. Les développeurs et les éthiciens de l’IA peuvent tester, identifier les vulnérabilités et proposer des solutions à un rythme accéléré.

Bien que les termes de licence de LLaMa 2 soient généralement permissifs, 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.

Defis actuels avec Llama 2

  1. 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 divergentes. La qualité et la diversité des données sont tout aussi cruciales que le volume dans ces scénarios.
  2. Transparence du modèle : Étant donné les revers précédents de l’IA produisant des sorties trompeuses, explorer la logique de décision derrière 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 à 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 langages de programmation et est disponible en 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 performances 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 gamme 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, il ouvre la voie à une nouvelle ère dans la compréhension du langage naturel et l’IA générative.

J'ai passé les cinq dernières années à plonger dans le monde fascinant de l'apprentissage automatique et du deep learning. Ma passion et mon expertise m'ont conduit à contribuer à plus de 50 projets de génie logiciel divers, avec un focus particulier sur l'IA/ML. Ma curiosité continue m'a également attiré vers le traitement automatique des langues, un domaine que je suis impatient d'explorer plus en profondeur.