Exploitez la puissance des LLM sollicitation sans entraînement et avec peu d’exemples

Utilisez LLM sans entraînement et peu d'exemples.

Introduction

Le pouvoir des LLM (Large Language Models) est devenu la nouvelle tendance dans la communauté de l’IA. Les premiers adoptants se sont précipités vers différentes solutions d’IA générative telles que GPT 3.5, GPT 4 et BARD pour différents cas d’utilisation. Ils ont été utilisés pour des tâches de questions-réponses, d’écriture de textes créatifs et d’analyse critique. Étant donné que ces modèles sont entraînés sur des tâches telles que la prédiction de la phrase suivante sur une grande variété de corpus, ils sont censés être très performants en matière de génération de texte.

Les réseaux neuronaux robustes basés sur des transformateurs permettent également au modèle de s’adapter aux tâches d’apprentissage automatique basées sur le langage telles que la classification, la traduction, la prédiction et la reconnaissance d’entités. Il est donc devenu facile pour les scientifiques des données de tirer parti des plates-formes d’IA générative pour des cas d’utilisation plus pratiques et industriels en matière d’apprentissage automatique basé sur le langage en donnant les instructions appropriées. Dans cet article, nous visons à montrer à quel point il est simple d’utiliser des LLM génératifs pour des tâches courantes d’apprentissage automatique basées sur le langage en utilisant des instructions et à analyser de manière critique les avantages et les limites de l’utilisation de prompts zéro-shot et few-shot.

Objectifs d’apprentissage

  • Apprendre ce que sont les prompts zéro-shot et few-shot.
  • Analyser leur performance sur une tâche d’apprentissage automatique exemple.
  • Évaluer l’utilisation de few-shot prompting par rapport à des techniques plus sophistiquées telles que le fine-tuning.
  • Comprendre les avantages et les inconvénients des techniques de prompting.

Cet article a été publié dans le cadre du Data Science Blogathon.

Qu’est-ce que le prompting ?

Commençons par définir les LLM (Large Language Models). Un modèle de langage large, ou LLM, est un système d’apprentissage profond construit avec plusieurs couches de transformateurs et de réseaux neuronaux à propagation avant qui contiennent des centaines de millions à des milliards de paramètres. Ils sont entraînés sur de vastes ensembles de données provenant de différentes sources et sont conçus pour comprendre et générer du texte. Quelques exemples d’applications sont la traduction de langues, la résumé de texte, la question-réponse, la génération de contenu, etc. Il existe différents types de LLM : encodeur seul (BERT), encodeur + décodeur (BART, T5) et décodeur seul (PALM, GPT, etc.). Les LLM avec un composant décodeur sont appelés LLM génératifs ; c’est le cas pour la plupart des LLM modernes.

Si vous demandez à un LLM génératif d’effectuer une tâche, il générera le texte correspondant. Mais comment indiquer à un LLM génératif de réaliser une tâche particulière ? C’est simple ; nous lui donnons une instruction écrite. Les LLM ont été conçus pour répondre aux utilisateurs finaux en fonction des instructions, également appelées prompts. Vous avez utilisé des prompts si vous avez interagi avec un LLM comme ChatGPT. Le prompting consiste à formuler notre intention dans une requête en langage naturel qui incitera le modèle à renvoyer la réponse souhaitée (exemple : figure 1, source : Chat GPT).

Il existe deux types majeurs de techniques de prompting que nous examinerons dans les sections suivantes : le prompting zéro-shot et le prompting few-shot. Nous examinerons leurs détails ainsi que quelques exemples de base.

Prompting zéro-shot

Le prompting zéro-shot est un scénario spécifique d’apprentissage zéro-shot propre aux LLM génératifs. En zéro-shot, nous ne fournissons aucune donnée étiquetée au modèle et nous nous attendons à ce qu’il fonctionne sur un problème complètement nouveau. Par exemple, utilisez ChatGPT pour le prompting zéro-shot sur de nouvelles tâches en fournissant des instructions appropriées. Les LLM peuvent s’adapter à des problèmes non vus car ils comprennent le contenu de nombreuses ressources. Jetons un coup d’œil à quelques exemples.

Voici un exemple de requête pour la classification du texte en classes de sentiment positif, neutre et négatif.

Exemples de tweets

Les exemples de tweets proviennent du jeu de données Twitter US Airline Sentiment. Le jeu de données se compose de tweets de rétroaction adressés à différentes compagnies aériennes, étiquetés positifs, neutres ou négatifs. Dans la figure 2 (source : ChatGPT), nous avons fourni le nom de la tâche, c’est-à-dire la classification du sentiment, les classes, c’est-à-dire positif, neutre et négatif, le texte et le prompt pour la classification. Le retour d’expérience sur la compagnie aérienne dans la figure 2 est positif et apprécie l’expérience de vol avec la compagnie aérienne. ChatGPT a correctement classé le sentiment de la critique comme positif, démontrant ainsi la capacité de ChatGPT à généraliser sur une nouvelle tâche.

La figure 3 ci-dessus montre Chat GPT avec un tir zéro sur un autre exemple mais avec un sentiment négatif. Chat GPT prédit à nouveau correctement le sentiment du tweet. Bien que nous ayons montré deux exemples où le modèle classe avec succès le texte de la critique, il existe plusieurs cas limites où même les LLM de pointe échouent. Par exemple, examinons l’exemple ci-dessous dans la figure 4. L’utilisateur se plaint de la qualité de la nourriture avec la compagnie aérienne ; Chat GPT identifie incorrectement le sentiment comme neutre.

Dans le tableau ci-dessous, nous pouvons voir la comparaison du tir zéro avec les performances du modèle BERT (Source) sur l’ensemble de données de sentiment Twitter. Nous examinerons les métriques de précision, de rappel, de score F1 et d’exactitude. Évaluez les performances pour le déclenchement du tir zéro sur un sous-ensemble de données sélectionné au hasard de l’ensemble de données de sentiment des compagnies aériennes pour chaque cas et arrondissez les chiffres de performance au nombre entier le plus proche. Le tir zéro a des performances plus basses mais décentes sur chaque métrique d’évaluation, montrant à quel point le déclenchement peut être puissant. Les chiffres de performance ont été arrondis au nombre entier le plus proche.

Déclenchement en quelques coups

Contrairement au tir zéro, le déclenchement en quelques coups consiste à fournir quelques exemples étiquetés dans la demande. Cela diffère de l’apprentissage en quelques coups traditionnel, qui consiste à affiner le LLM avec quelques échantillons pour un problème nouveau. Cette approche réduit la dépendance à l’égard de grands ensembles de données étiquetées en permettant aux modèles de s’adapter rapidement et de produire des prédictions précises pour de nouvelles classes avec un petit nombre d’échantillons étiquetés. Cette méthode est bénéfique lorsque la collecte d’une quantité importante de données étiquetées pour de nouvelles classes prend du temps et des efforts. Voici un exemple (Figure 5) de quelques coups :

Quelques coups contre tir zéro

Dans quelle mesure les quelques coups améliorent-ils les performances ? Bien que les techniques des quelques coups et du tir zéro aient montré de bonnes performances sur des exemples anecdotiques, les quelques coups ont des performances globales supérieures au tir zéro. Comme le montre le tableau ci-dessous, nous pourrions améliorer la précision de la tâche en fournissant quelques exemples de haute qualité et des échantillons d’exemples limites et critiques tout en déclenchant les modèles d’IA générative. Les performances s’améliorent en utilisant l’apprentissage en quelques coups (10, 20 et 50 exemples). Les performances du déclenchement en quelques coups ont été évaluées sur un sous-ensemble de données sélectionné au hasard de l’ensemble de données de sentiment des compagnies aériennes pour chaque cas et les chiffres de performance ont été arrondis au nombre entier le plus proche.

Sur la base des métriques d’évaluation dans le tableau ci-dessus, les quelques coups surpassent le tir zéro de manière notable avec une marge de 10% en termes de précision, de 7% en termes de score F1 et atteignent des performances comparables au modèle BERT affiné. Une autre observation clé est qu’après 20 exemples, les améliorations stagnent. L’exemple que nous avons couvert dans notre analyse est un cas d’utilisation particulier de Chat GPT sur l’ensemble de données de sentiment des compagnies aériennes américaines sur Twitter. Examinons un autre exemple pour comprendre si nos observations s’étendent à d’autres tâches et modèles d’IA générative.

Modèles de langage : Apprentissage en quelques coups

Voici un exemple (Figure 6) des études décrites dans l’article “Language Models are Few-Shot Learners” comparant les performances des modèles en quelques coups, en un coup et en tir zéro avec GPT-3. Les performances sont mesurées sur le benchmark LAMBADA (prédiction de mots cibles) dans différents paramètres de quelques coups. La particularité de LAMBADA réside dans son accent sur l’évaluation de la capacité d’un modèle à gérer les dépendances à longue portée dans le texte, c’est-à-dire des situations où une distance considérable sépare une information de son contexte pertinent. L’apprentissage en quelques coups bat l’apprentissage en tir zéro avec une marge notable de 12,2 points de pourcentage en termes de précision.

Dans un autre exemple couvert dans l’article mentionné ci-dessus, les performances de GPT-3 sont comparées selon différents nombres d’exemples fournis dans la demande par rapport à un modèle BERT fine-tuned sur le benchmark SuperGLUE. SuperGLUE est considéré comme une référence clé pour évaluer les performances des tâches de compréhension du langage en apprentissage automatique. Le graphique (Figure 7) montre que les huit premiers exemples ont le plus d’impact. À mesure que nous ajoutons davantage d’exemples pour le prompting few-shot, nous atteignons un seuil où nous devons augmenter de manière exponentielle les exemples pour observer une amélioration notable. Nous pouvons clairement voir que les mêmes observations que notre exemple de classification des sentiments sont reproduites.

Le zero-shot devrait être considéré uniquement dans les scénarios où les données étiquetées sont manquantes. Si nous avons quelques exemples étiquetés, nous pouvons obtenir de grandes performances en utilisant le few-shot par rapport au zero-shot. Une question persistante est de savoir à quel point ces techniques fonctionnent bien par rapport à des techniques plus sophistiquées comme le fine-tuning. Il existe plusieurs techniques de fine-tuning de LLM bien développées ces derniers temps, et leur coût d’utilisation a également été considérablement réduit. Pourquoi ne pas simplement affiner ses modèles? Dans les sections suivantes, nous examinerons plus en détail la comparaison des techniques de prompting par rapport aux modèles fine-tuned.

Prompting Few-shot vs Fine-tuning

Le principal avantage du few-shot avec les LLM génératifs est la simplicité de mise en œuvre de l’approche. Rassemblez quelques exemples étiquetés et préparez la demande, exécutez l’inférence et c’est terminé. Même avec plusieurs innovations modernes, le fine-tuning est assez lourd à mettre en œuvre et nécessite beaucoup de temps d’entraînement et de ressources. Pour quelques cas particuliers, nous pouvons utiliser les différentes interfaces utilisateur des LLM génératifs pour obtenir les résultats. Pour une inférence sur un ensemble de données plus volumineux, le code serait aussi simple que :

import os
import openai

messages = []


# Exemples étiquetés de Chat GPT
few_shot_message = ""

# Mentionner la tâche
few_shot_message = "Tâche : Classification des sentiments \n"

# Mentionner les classes
few_shot_message += "Classes : positif, négatif \n"

# Ajouter le contexte
few_shot_message += "Contexte : Nous voulons classer le sentiment des avis sur les hôtels \n"

# Ajouter les exemples étiquetés
few_shot_message += "Exemples étiquetés : \n"

for labeled_data in labeled_dataset:
    few_shot_message += "Texte : " + labeled_data["text"] + "\n";
    few_shot_message += "Étiquette : " + labeled_data["label"] + "\n"

# Appeler l'API OpenAI pour ChatGPT en fournissant les exemples few-shot
messages.append({"role": "user", "content": few_shot_message})
chat = openai.ChatCompletion.create(
            model="gpt-3.5-turbo", messages=messages
        )

for data in unlabeled_dataset:
    # Ajouter le texte à classer
    message = "Texte : " + data + ", "
    
    # Ajouter la demande
    message += "Demande : Classer le texte donné dans l'une des catégories de sentiment."
    messages.append({"role": "user", "content": message})
    
    # Appeler l'API OpenAI pour ChatGPT pour la classification
    chat = openai.ChatCompletion.create(
            model="gpt-3.5-turbo", messages=messages
        )
    reply = chat.choices[0].message.content
    print(f"ChatGPT : {reply}")
    messages.append({"role": "assistant", "content": reply})

Un autre avantage clé du few-shot par rapport au fine-tuning est la quantité de données. Dans la tâche de classification des sentiments des compagnies aériennes américaines sur Twitter, le fine-tuning de BERT a été effectué avec plus de 10 000 exemples, tandis que le few-shot prompting n’avait besoin que de 20 à 50 exemples pour obtenir des performances similaires. Cependant, ces gains de performance se généralisent-ils à d’autres tâches d’apprentissage automatique basées sur le langage ? L’exemple de classification des sentiments que nous avons couvert est un cas d’utilisation très spécifique. Les performances du few-shot prompting ne seraient pas à la hauteur d’un modèle fine-tuned pour chaque cas d’utilisation. Cependant, il montre une capacité similaire/meilleure qui s’étend à une grande variété de tâches linguistiques. Pour montrer la puissance du few-shot prompting, nous avons comparé les performances avec les SOTA et les modèles de langage fine-tuned comme BERT sur des tâches de compréhension du langage normalisé, de traduction et de benchmarks de questions-réponses dans les sections suivantes. (Source : Les modèles de langage sont des apprenants few-shot)

Compréhension du langage

Pour comparer les performances du few-shot et du fine-tuning sur les tâches de compréhension du langage, nous examinerons le benchmark SuperGLUE. SuperGLUE est un benchmark de compréhension du langage composé de tâches de classification, de similarité de texte et d’inférence de langage naturel. Le modèle fine-tuned utilisé pour la comparaison est un modèle BERT large fine-tuned et un modèle BERT++ fine-tuned, et le LLM génératif utilisé est GPT-3. Les graphiques des figures (Figure 8 et Figure 9) ci-dessous montrent que le few-shot prompting avec des LLM génératifs de tailles suffisamment grandes et environ 32 exemples few-shot sont suffisants pour surpasser le modèle BERT++ fine-tuned et le modèle BERT large fine-tuned. Le gain de précision par rapport à BERT large est d’environ 2,8 pp, démontrant la puissance du few-shot sur les LLM génératifs.

Traduction

Dans la prochaine tâche, nous comparerons les performances des techniques de few-shot et de fine-tuning sur les tâches de traduction. Nous examinerons le benchmark BLEU, également appelé Bilingual Evaluation Understudy. BLEU calcule un score entre 0 et 1, où un score plus élevé indique une meilleure qualité de traduction. L’idée principale derrière BLEU est de comparer la traduction générée par rapport à une ou plusieurs traductions de référence et de mesurer dans quelle mesure la traduction générée contient des n-grammes similaires aux traductions de référence. Les modèles utilisés pour la comparaison sont XLM, MASS et mBART, et le modèle génératif LLM utilisé est GPT-3.

Comme le montre le tableau dans la figure (Figure 10) ci-dessous, l’utilisation de few-shot prompting avec des modèles LLM génératifs et quelques exemples suffit à surpasser XLM, MASS, multilingual BART, et même l’état de l’art pour différentes tâches de traduction. Few-shot GPT-3 dépasse les travaux précédents de traduction neuronale non supervisée de 5 BLEU lors de la traduction en anglais, ce qui reflète sa force en tant que modèle de traduction anglais. Cependant, il est important de noter que le modèle a mal performé sur certaines tâches de traduction, comme de l’anglais vers le roumain, mettant en évidence ses lacunes et la nécessité d’évaluer les performances cas par cas.

Question-Réponse

Dans la tâche finale, nous comparerons les performances des techniques de few-shot et de fine-tuning sur les tâches de question-réponse. Le nom de la tâche est explicite. Nous examinerons trois principaux benchmarks pour les tâches de QA : PI QA (Question-Réponse d’Informations Procédurales), Trivia QA (connaissances factuelles et réponses à des questions) et CoQA (Question-Réponse Conversationnelle). La comparaison est faite par rapport à l’état de l’art pour les modèles fine-tuned, et le modèle LLM génératif utilisé est GPT-3. Comme le montrent les graphiques dans les figures (Figure 11, Figure 12 et Figure 13) ci-dessous, l’utilisation de few-shot prompting sur les modèles LLM génératifs et quelques exemples suffit à surpasser l’état de l’art fine-tuned pour PIQA et Trivia QA. Le modèle n’a pas atteint l’état de l’art fine-tuned pour CoQA mais a une précision assez similaire.

Limitations du Prompting

Les nombreux exemples et études de cas dans les sections ci-dessus montrent clairement comment few-shot peut être la solution privilégiée par rapport au fine-tuning pour plusieurs tâches d’apprentissage automatique basées sur le langage. Dans la plupart des cas, les techniques de few-shot ont obtenu des résultats meilleurs ou proches des modèles de langage fine-tuned. Cependant, il est essentiel de noter que dans la plupart des cas d’utilisation de niche, le pré-entrainement spécifique au domaine surpasserait largement le fine-tuning [Source] et, par conséquent, les techniques de prompting. Cette limitation ne peut pas être résolue au niveau de la conception de l’invite et nécessiterait des avancées substantielles dans le développement des LLM généralisés.

Une autre limitation fondamentale est l’hallucination des LLM génératifs. Les LLM généralistes ont tendance à faire des hallucinations car ils sont souvent orientés vers l’écriture créative. C’est une autre raison pour laquelle les LLM spécifiques au domaine sont plus précis et obtiennent de meilleurs résultats sur leurs benchmarks spécifiques au domaine.

Enfin, l’utilisation de LLM généralisés comme Chat GPT et GPT-4 présente des risques de confidentialité plus élevés que les modèles fine-tuned ou spécifiques au domaine, pour lesquels nous pouvons construire notre instance de modèle. C’est une préoccupation, en particulier pour les cas d’utilisation reposant sur des données utilisateur propriétaires ou sensibles.

Conclusion

Les techniques de mise en contexte sont devenues un pont entre les LLM (Language Model Models) et les tâches pratiques de ML (Machine Learning) basées sur le langage. Le zero-shot, qui ne nécessite aucune donnée préalablement étiquetée, montre le potentiel de ces modèles à généraliser et à s’adapter à de nouveaux problèmes. Cependant, il n’atteint pas des performances similaires/ supérieures à celles du fine-tuning. De nombreux exemples et comparaisons de performances montrent que le few-shot prompting offre une alternative convaincante au fine-tuning pour une variété de tâches. En présentant quelques exemples étiquetés dans les mises en contexte, ces techniques permettent aux modèles de s’adapter rapidement à de nouvelles classes avec un minimum de données étiquetées. De plus, les données de performance mentionnées dans les sections précédentes suggèrent que le passage aux solutions existantes pour utiliser le few-shot prompting avec le Generative LLM est un investissement judicieux. En menant des expériences avec les approches mentionnées dans cet article, vous augmenterez vos chances d’atteindre vos objectifs en utilisant les techniques de mise en contexte.

Points clés

  1. Les techniques de mise en contexte permettent une utilisation pratique : Les techniques de mise en contexte sont un puissant lien entre les LLM génératifs et les tâches pratiques d’apprentissage automatique basées sur le langage. Le zero-shot prompting permet aux modèles de généraliser sans données étiquetées, tandis que le few-shot utilise plusieurs exemples pour s’adapter rapidement. Ces techniques simplifient le déploiement, offrant une voie d’utilisation efficace.
  2. Le few-shot est plus performant que le zero-shot : Le few-shot offre de meilleures performances en fournissant au LLM des indications ciblées à travers des exemples étiquetés. Il permet au modèle d’utiliser ses connaissances préalablement acquises tout en bénéficiant d’exemples spécifiques à la tâche, ce qui se traduit par des réponses plus précises et pertinentes pour la tâche donnée.
  3. Le few-shot prompting rivalise avec le fine-tuning : Le few-shot est une alternative prometteuse au fine-tuning. Le few-shot atteint des performances similaires ou supérieures dans les tâches de classification, de compréhension du langage, de traduction et de question-réponse en fournissant des exemples étiquetés dans les mises en contexte. Il excelle notamment dans les scénarios où les données étiquetées sont rares.
  4. Limitations et considérations : Bien que les LLM génératifs et les techniques de mise en contexte présentent plusieurs avantages, un pré-entraînement spécifique au domaine est encore nécessaire pour les tâches spécialisées. De plus, les risques liés à la confidentialité associés aux LLM généralisés soulignent la nécessité de traiter les données sensibles avec précaution.

Questions fréquemment posées

Références

  • Tom B. Brown et al., Les modèles de langage sont des apprenants few-shot, dans les actes de la 34e Conférence internationale sur le traitement des informations neurales (NIPS’20), 2020.
  • https://www.kaggle.com/datasets/crowdflower/twitter-airline-sentiment
  • https://www.kaggle.com/code/sdfsghdhdgresa/sentiment-analysis-using-bert-distillation
  •  https://github.com/Deepanjank/OpenAI/blob/main/open_ai_sentiment_few_shot.py
  • https://www.analyticsvidhya.com/blog/2023/08/domain-specific-llms/

Les médias présentés dans cet article n’appartiennent pas à Analytics Vidhya et sont utilisés à la discrétion de l’auteur.

We will continue to update IPGirl; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AI

Des chercheurs de Stanford et de Mila proposent Hyena un remplacement sans attention du bloc de construction central de nombreux modèles de langage à grande échelle.

Comme nous le savons tous, la course au développement et à la création de modèles génératifs époustouflants tels que ...

Science des données

Comment l'IA de Meta génère de la musique basée sur une mélodie de référence

Le 13 juin 2023, Meta (anciennement Facebook) a fait sensation dans les communautés de la musique et de l'IA avec la ...

AI

Les chercheurs d'Apple proposent un réseau de bout en bout produisant des reconstructions 3D détaillées à partir d'images posées

Avez-vous déjà joué à GTA-5 ? On est admiratif des graphismes 3D du jeu. Contrairement aux graphismes 2D sur un plan ...

AI

Cet article sur l'IA propose AugGPT une approche d'augmentation de données textuelles basée sur ChatGPT.

Le NLP, ou Traitement du Langage Naturel, est un domaine de l’IA axé sur l’interaction homme-machine en u...

AI

Pourquoi vous devez savoir à propos des agents autonomes d'IA

Un guide pour débutants pour comprendre les agents autonomes d'IA et leur importance.

Actualités sur l'IA

Approche de OpenAI en matière de sécurité de l'IA

Que va-t-il se passer avec les approches de sécurité dans les systèmes d'IA après que le PDG d'OpenAI, Sam Altman, ai...