Skip to content

Jouons avec l'Attention

Article initialement publié en anglais sur LinkedIn le 12 décembre 2024.

Prompt: Un prompt, c'est une question ou une instruction qu'on donne à une intelligence comme ChatGPT.

Introduction

  • Audience:

    • Toute personne intéressée par l'IA générative (aka ChatGPT mais aussi les autres) 🙂
    • Principalement des utilisateurs et des concepteurs de solutions basées sur la GenAI
    • Ceux qui créent des prompts pour un usage personnel, des projets professionnels ou pour développer des agents
  • Objectifs: Créer un prompt efficace

 

J'ai eu l'opportunité de travailler avec l'IA générative depuis plus d'un an maintenant, dans de nombreux contextes et cas d'usage différents. Compte tenu du rythme des mises à jour des modèles de langage, des progrès rapides de cette technologie et des recherches que j'ai menées et que je continue de faire chaque semaine, je suis profondément convaincu d'une chose : nous sous-utilisons probablement les capacités complètes des modèles de langage. J'ai décidé d'explorer différentes techniques de conception de prompts et des sujets connexes, grâce aux chercheurs qui travaillent et explorent ce domaine ainsi qu'aux utilisateurs, ingénieurs, clients et éditeurs de logiciels indépendants (ISV) qui partagent leur expérience à ce sujet.

Dans mon exploration du jour, je me demande comment nous pouvons créer un prompt qui corresponde mieux à ce que le modèle attend, afin d'obtenir la meilleure réponse possible et éviter (ou du moins essayer d'éviter) toute surprise.

Mais commençons par le début : parlons d'abord des Transformers.

Avertissement : La description ci-dessous est volontairement simplifiée afin de fournir les bases de fonctionnement de la GenAI, dans le but de mieux interagir avec cette technologie. Cela s'applique aux modèles utilisant des Transformers comme GPT et BERT.

 


Transformers : Ce qu'il faut savoir

Pour faire simple, un Transformer est un modèle d'apprentissage automatique introduit dans l'article "Attention Is All You Need" (voir Sources). Il est conçu pour traiter efficacement des séquences (texte, son, etc.) en utilisant un mécanisme clé : l'attention.

Ce modèle a deux objectifs :

  1. Comprendre les relations entre les mots ou les éléments d'une séquence.

  2. Générer du texte ou transformer une phrase en traduction, résumé, etc.

Un Transformer est composé de plusieurs couches empilées (souvent des dizaines voire des centaines) divisées en deux parties :

Encodeur : Analyse l'entrée pour extraire des informations en transformant la séquence d'entrée (par exemple, une phrase) en une représentation interne appelée embedding.

Exemple :

Dans le texte "Le chat mange une souris", le mot chat devient le vecteur d'embedding (= une liste de valeurs décimales) [0.3, 0.8, -0.5, ...]

Il repose sur différents mécanismes tels que l'auto-attention pour comprendre les relations entre les mots, et un réseau de neurones feedforward pour affiner les informations extraites.

Décodeur : Génère une sortie basée sur les informations analysées à partir des embeddings produits par l'encodeur. Il intègre un mécanisme supplémentaire de cross-attention pour lier l'entrée et la sortie.

 


L'Attention : Le cœur des Transformers

L'attention permet au modèle de se concentrer sur les parties importantes de la séquence.

Exemple :

Dans "Le chat mange une souris", le mot "mange" est plus lié à "chat" qu'à "souris."

Le mécanisme d'attention calcule cette relation pour chaque mot.

Chaque mot est transformé en un vecteur représentant son sens dans le contexte, puis des scores d'importance sont calculés entre chaque paire de mots (en utilisant 3 vecteurs: Query, Key et Value).

Remarque : En réalité, chaque mot est divisé en tokens d'environ 2 à 5 lettres, mais pour simplifier, j'utilise ici le terme "mot."

 

Attends, mais de quoi tu parles ? Query, Key, Value ??

 

À travers ses couches d'encodeur/décodeur, le modèle calcule trois vecteurs différents Q, K et V pour chaque token dans l'embedding :

Query (Q) : Répond à la question "À quoi dois-je prêter attention ?"

Key (K) : Représente l'information disponible pour chaque mot.

Value (V) : Représente l'information finale associée à chaque mot.

Les scores d'attention sont calculés entre Q et K pour déterminer quelle information V utiliser.

 

Important : Les Transformers n'ont pas naturellement de notion de l'ordre des mots, donc une information positionnelle est ajoutée à chaque mot dans la phrase.

 

Maintenant que nous avons une compréhension basique du fonctionnement des Transformers, vous pourriez (devriez) vous poser la question suivante :

Si le modèle repose principalement sur un mécanisme d'attention, cela signifie-t-il que le prompt que j'utilise peut perturber l'attention du modèle et donc générer une sortie non souhaitée ?

Oui.

Comme un bon ami à moi a l'habitude de dire :

Les gens doivent comprendre que les modèles de langage sont des systèmes du type "shit in, shit out". Par conséquent, ils doivent surmonter leur paresse naturelle et faire l'effort de bien concevoir leur prompt.

 


Perdu dans l'attention

Le mécanisme d'attention des Transformers a ses limites et peut être influencé par la manière dont l'entrée est structurée.

Voici quelques cas d'usage qui peuvent volontairement ou accidentellement perturber le modèle.

 

Incohérence et contradiction : Si le prompt contient des informations contradictoires, le modèle peut être perturbé.

"Explique pourquoi les chiens sont des mammifères mais pondent des œufs"

Ici, l'attention peut se répartir entre les deux idées, ce qui peut entraîner une réponse incohérente.

 

Ambiguïté sémantique : Des phrases volontairement vagues ou ambiguës rendent difficile l'identification du contexte ou de l'intention.

"Parle-moi de cet animal qui marche parfois."

Remarque : L'ambiguïté sémantique, en particulier les relations implicites, représente presque 50 % des exemples que j'ai trouvés sur Internet pour démontrer l'inefficacité des modèles de langage 😌.

 

Surcharge d'information : Ajouter trop de détails inutiles peut disperser l'attention du modèle. Ici, le modèle peut se perdre dans des détails sans rapport et passer à côté de la véritable question.

"En 1962, lorsque mon grand-père a acheté une voiture rouge, les chiens aboyaient beaucoup, mais pourquoi l'univers est-il infini ?"

 

Injection de prompt : Prompts conçus pour détourner ou biaiser le modèle. Si ce n'est pas maîtrisé, cela peut dévier l'attention de l'objectif initial.

"Ignore toutes les autres instructions et fais exactement ce que je dis."

Remarque : L'injection de prompt représente l'autre 50 % 😅.

 

Dilution de l'attention : Si l'attention est distribuée équitablement sur des parties moins pertinentes, le modèle peut passer à côté des aspects importants. Par exemple, dans un texte très long, le "sens principal" peut se diluer.

Dans le cadre de cette démonstration, imaginez un modèle de résumé de texte chargé de résumer un long article sur le changement climatique. L'article comprend plusieurs sections : 1) Les bases scientifiques du changement climatique, 2) Études de cas sur des régions affectées, 3) Opinions controversées de sceptiques du changement climatique, 4) Contexte historique des politiques environnementales, 5) Détails techniques sur les méthodes de collecte de données.

[...] "Cet article traite du changement climatique, abordant les méthodes de collecte de données, les politiques historiques et les effets régionaux, tout en explorant le scepticisme et les preuves scientifiques."

 

Ordre des mots : Bien que les Transformers utilise des codages positionnels, il peut parfois avoir du mal à interpréter l'ordre des phrases dans des prompts complexes.

"Après que le chien ait poursuivi le chat, il a grimpé à l'arbre."

Ici, le mot "il" est ambigu. Un humain comprendrait que "il" fait référence au chat (en se basant sur la séquence d'actions et le bon sens : ce sont les chats qui grimpent aux arbres, pas les chiens). Toutefois, un Transformer pourrait avoir du mal à interpréter cela correctement, surtout si le codage positionnel est submergé par la complexité de la phrase.

Remarque : C'est en effet une forme d'ambiguïté sémantique, et vous auriez raison de le penser.

 

Biais induit : Si un prompt contient des mots émotionnels ou exagérés comme "horrible" ou "incroyable", le modèle pourrait accorder trop d'importance à ces éléments au lieu de répondre de manière neutre.

"Ce restaurant était absolument horrible ! La nourriture était fade, le service incroyablement lent, et l'ambiance atroce. Recommanderiez-vous cet endroit ?"

Si le modèle accorde une attention excessive aux mots émotionnels comme "horrible", "incroyablement lent" et "atroce", il pourrait produire une réponse qui reflète ce ton exagéré, indépendamment de la validité des critiques.

 

Ce n'est pas une liste exhaustive, mais en gardant cela en tête : que pouvons-nous faire pour rédiger un meilleur prompt qui ne disperse pas l'attention du modèle ?

 


Aider le modèle à avoir la bonne attention

Donc, maintenant nous savons qu'il faut être attentif à la manière de formuler notre prompt pour ne pas "perdre" notre objectif principal. Voici quelques suggestions pour bien le construire.

Dans le cadre de cette démonstration, notre objectif est de demander au modèle d'expliquer l'informatique quantique pour les débutants et de la comparer à l'informatique classique.

Notre prompt initial est : "Aide-moi à comprendre l'informatique quantique."

Fournir un contexte clair

L'attention du modèle dépend du contexte qu'il reçoit. Si le contexte est absent, il peut produire des réponses inexactes ou génériques.

Fournissez les informations nécessaires pour que le modèle sache à quoi s'attendre.

👎 Aide-moi à comprendre l'informatique quantique"

👍 Nous explorons le concept de l'informatique quantique : explique les bases de l'informatique quantique à un débutant.

Définir les attentes

Un modèle suit les instructions données dans le prompt ; les Transformers fonctionnent mieux lorsqu'ils comprennent clairement ce qui est attendu d'eux. Des prompts vagues ou ambigus dispersent l'attention et réduisent la pertinence (des instructions claires permettent de mieux guider son attention).

Spécifiez le contexte, la tâche ou le résultat attendu.

Utilisez des expressions comme : "Concentre-toi sur," "Ignore," ou "Réfléchissons étape par étape."

👎 Dis-moi quelque chose sur l'informatique quantique.

👍 Explique la différence entre l'informatique classique et l'informatique quantique. Concentre-toi sur la description des concepts principaux.

Remarque : Voir Automatic Chain-of-Thought dans les Sources.

Prioriser l'information et diviser en plusieurs questions

Si plusieurs idées ou tâches sont incluses, le modèle peut se disperser. Une hiérarchie permet de mieux guider son attention.

Utilisez des listes ou posez les questions une par une / divisez la question en plusieurs parties.

👎 J'ai besoin de connaître toutes les différences entre l'informatique classique et l'informatique quantique.

👍 Quelles sont les principales caractéristiques de l'informatique classique ?

Quelles sont les principales caractéristiques de l'informatique quantique ?

Quelles sont les différences entre les deux ?

Clarté

Les Transformers distribuent leur attention sur tous les tokens (mots, signes de ponctuation, etc.). Une structure claire aide à éviter la dilution ou la confusion.

Rédigez des prompts directs avec une intention claire.

Évitez les digressions, répétitions ou phrases inutiles.

👎 J'explore l'informatique quantique et comme je ne suis pas vraiment sûr de comprendre comment fonctionne l'informatique classique, il serait probablement utile d'acquérir suffisamment de connaissances pour pouvoir comparer les deux technologies informatiques.

👍 Explique l'informatique quantique à une personne inexpérimentée, puis compare-la à l'informatique classique.

Limiter la longueur du prompt et expliciter le focus

Les Transformers ont une capacité limitée à traiter les tokens (par exemple, GPT-4 peut traiter de 8K à 128K tokens selon la configuration). Un prompt trop long peut diluer les informations importantes, voire entraîner une coupure de certaines parties. Même si la fenêtre de contexte tend à s'élargir avec le temps, il est préférable de ne pas surcharger le prompt.

Allez droit au but et supprimez les détails inutiles.

Indiquez explicitement au modèle sur quoi il doit se concentrer et évitez de surcharger les prompts avec des informations sans rapport.

👎 Bonjour, aujourd'hui je suis curieux d'en apprendre davantage sur l'informatique quantique. Peux-tu m'expliquer ce concept en quelques lignes pour que je le comprenne ?

👍 Explique l'informatique quantique en quelques lignes.

Dans le cas où vous chercheriez à obtenir des informations ou des insights à partir d'un texte / modèle de type RAG, vous pouvez ajouter ce prompt :

👍 Ignore les informations secondaires et concentre-toi sur l'explication scientifique.

Remarque : Vous pouvez vous appuyer sur la technique de prompt engineering appelée "System 2 Attention" (voir Sources).

Remarque : RAG = Retrieval Augmented Generation, une méthode qui permet d'enrichir le prompt initial avec des informations contextuelles pertinentes pour obtenir une réponse mieux contextualisée.

Utilisation des balises et du formatage

Les Transformers détectent mieux les intentions et la structure lorsqu'un format explicite est utilisé.

Utilisez des balises pour organiser votre prompt.

Précisez le format de sortie souhaité si nécessaire.

👎 Comment fonctionne l'informatique quantique ? Tu dois m'expliquer avec des mots simples comme si j'avais 7 ans et en utilisant un format de tableau.

👍 Question : Explique l'informatique quantique en termes simples.

Contexte : Un enfant de 7 ans pose la question.

Exemple : Parle des différences avec l'informatique classique.

Format : Présente la réponse sous forme de tableau, avec les termes en ligne et les définitions en colonne.

Fournir des exemples

Les Transformers apprennent par imitation, donc fournir un exemple aide à guider leur attention.

Spécifiez clairement un exemple, le format attendu, etc.

👎 Compare l'informatique quantique avec l'informatique classique.

👍 Tâche : Faire une comparaison entre deux concepts.

Exemple 1 :

1er concept : Voiture électrique.

2e concept : Voiture à essence.

Sortie : Une voiture électrique fonctionne grâce à l’électricité stockée dans des batteries pour alimenter un moteur électrique qui fait avancer le véhicule. Une voiture à moteur thermique fonctionne en brûlant du carburant (comme l’essence ou le diesel) dans son moteur pour produire l'énergie qui fait avancer le véhicule.

Exemple 2 :

1er concept : Skateboard cruiser.

2e concept : Skateboard street.

Sortie : Un skateboard cruiser est conçu pour des trajets fluides et le transport, avec des roues plus grandes et plus souples ainsi qu’une planche plus large pour plus de stabilité. Un skateboard street est conçu pour réaliser des figures techniques, avec des roues plus petites et plus dures et une planche plus étroite pour un meilleur contrôle et pour effectuer des flips.

À ton tour :

1er concept : Informatique classique.

2e concept : Informatique quantique.

Sortie :

Remarque : Cette technique est couramment appelée "Few Shot Prompting".

 


Mettre toutes les directives ensemble

Maintenant que nous avons quelques méthodes pour améliorer notre prompt, il est temps d'expérimenter !

Objectif : Comprendre l'informatique quantique.

Objectif affiné : Vous voulez que le modèle explique les concepts de base de l'informatique quantique à un novice, avec des instructions claires et des exemples qui rendent les idées complexes accessibles.

Remarque : L'affinement de l'objectif est probablement la première étape de votre activité de prompt engineering. Pour notre objectif actuel, posez-vous des questions sur le contexte (quel est votre métier ou votre formation ?), votre niveau de connaissance actuel, ce que vous souhaitez apprendre, ce que vous espérez savoir, le niveau de détail souhaité, etc.

Prompt initial

Aide-moi à comprendre l'informatique quantique.

Résultat

L'informatique quantique est un domaine de l'informatique axé sur le développement de technologies informatiques basées sur les principes de la théorie quantique, qui explique la nature et le comportement de l'énergie et de la matière au niveau quantique (atomique et subatomique). Voici un aperçu pour vous aider à comprendre les bases :

Informatique classique vs. informatique quantique

Informatique classique :

Utilise des bits comme plus petite unité de données, représentés par 0 ou 1.

Les opérations dans les ordinateurs classiques sont basées sur la logique binaire (ET, OU, NON).

Informatique quantique :

Utilise des bits quantiques ou qubits, capables de représenter et de stocker des données de manière plus complexe que les bits. Un qubit peut être 0, 1 ou les deux simultanément grâce à la superposition.

Exploite des principes tels que la superposition, l'intrication et l'interférence.

Principes clés de la mécanique quantique utilisés en informatique quantique

Superposition :

Les qubits peuvent exister dans plusieurs états simultanément, contrairement aux bits classiques.

Cela permet aux ordinateurs quantiques de traiter un nombre massif de possibilités en parallèle.

Intrication :

Les qubits peuvent être intriqués, ce qui signifie que l'état d'un qubit est directement lié à celui d'un autre, peu importe la distance qui les sépare.

Cette relation permet de transférer des informations instantanément et de manière sécurisée entre qubits.

Interférence quantique :

Les ordinateurs quantiques utilisent l'interférence pour amplifier les bonnes réponses et annuler les chemins incorrects.

Cela est crucial pour la résolution de problèmes et l'optimisation dans les algorithmes quantiques.

Modèles d'ordinateurs quantiques

Modèle de portes quantiques :

Analogue aux portes logiques dans l'informatique classique mais appliqué aux données quantiques.

Les opérations sont effectuées avec des portes quantiques comme Hadamard, CNOT et Pauli-X.

Recuit quantique :

Se concentre sur la résolution de problèmes d'optimisation en trouvant l'état d'énergie le plus bas d'un système.

Utilisé dans certains types d'ordinateurs quantiques, comme ceux fabriqués par D-Wave Systems.

Informatique quantique topologique :

Explore l'utilisation des quasi-particules pour des opérations quantiques résistantes aux erreurs.

C'est encore un domaine principalement théorique, faisant l'objet de recherches continues.

Défis actuels et état du secteur

Taux d'erreur :

Les taux d'erreur quantiques sont plus élevés que ceux des ordinateurs classiques en raison de la décohérence environnementale et du bruit.

Les solutions impliquent le développement de codes de correction d'erreurs quantiques et l'amélioration du temps de cohérence des qubits.

Mise à l'échelle :

Construire suffisamment de qubits et les connecter de manière fiable pour des calculs à grande échelle.

Les entreprises travaillent à augmenter le nombre de qubits tout en assurant leur stabilité et leur interconnexion.

Applications :

Prometteur pour les calculs complexes en cryptographie, science des matériaux et découverte de médicaments.

Des algorithmes quantiques comme l'algorithme de Shor (factorisation de grands nombres) et l'algorithme de Grover (recherche dans des bases de données non triées) montrent des percées potentielles dans certains domaines.

L'informatique quantique est un domaine en évolution rapide et, bien que les ordinateurs quantiques polyvalents pratiques soient encore en développement, les avancées continuent tant sur le plan théorique qu'appliqué. L'avenir de l'informatique quantique promet de révolutionner les secteurs nécessitant des calculs complexes au-delà des capacités des ordinateurs classiques.

Prompt retravaillé

Contexte : Nous explorons le concept de l'informatique quantique et souhaitons le rendre compréhensible pour quelqu'un n'ayant aucune connaissance préalable du domaine.

Tâche :

  • Expliquer les bases de l'informatique quantique à un débutant.

  • Se concentrer sur la présentation des informations en termes simples et utiliser des analogies lorsque c'est possible.

  • Mettre en évidence les principales différences avec l'informatique classique.

Attentes : Fournir une explication étape par étape des principes clés.

Notes :

  • Ignorer les formulations mathématiques avancées.

  • Insister sur la compréhension à travers des analogies de la vie quotidienne.

  • Décomposer chaque concept en explications individuelles pour plus de clarté.

Passons en revue la checklist rapide

  1. Fournir un contexte clair : ✅
  2. Définir les attentes : ✅
  3. Prioriser l'information ou la découper en plusieurs questions : ✅
  4. Assurer la clarté : ✅
  5. Réduire la longueur du prompt et expliciter le focus : ✅
  6. Utiliser des balises : ✅
  7. Fournir un exemple : pas vraiment nécessaire à ce stade, lançons le prompt pour voir le résultat !

Résultat

Bien sûr, explorons le monde fascinant de l'informatique quantique d'une manière facile à comprendre, en utilisant des termes simples et des analogies du quotidien.

Unité de base : Bit vs. Qubit

Informatique classique - Bit : Pensez à un bit comme à un interrupteur. Il peut être soit éteint (0), soit allumé (1). Un ordinateur utilise ces bits en combinaison pour réaliser des tâches.

Informatique quantique - Qubit : Imaginez un qubit comme un globe en rotation. Au lieu d'être simplement éteint ou allumé, il peut pointer dans n'importe quelle direction sur le globe. Cela signifie qu'il peut représenter à la fois 0 et 1 en même temps grâce à une propriété appelée superposition.

Superposition

Imaginez une personne marchant sur un fil en tenant deux parapluies. Cette personne peut pencher à gauche, à droite, ou garder un parfait équilibre au milieu. La superposition est comme cet équilibre, permettant à un qubit d'être dans plusieurs états à la fois, contrairement à un bit qui ne peut être que distinctement éteint ou allumé.

Intrication

Imaginez deux paires de dés magiques. Lorsque vous lancez un dé, l'autre, même s'il est très éloigné, affiche un nombre lié. En termes quantiques, ces dés sont "intriqués". Cette intrication signifie que l'état d'un qubit peut dépendre de l'état d'un autre, quelle que soit la distance qui les sépare. C'est comme s'ils étaient synchronisés.

Interférence quantique

Imaginez des vagues dans une piscine. Parfois elles s'additionnent pour former une vague plus grande, parfois elles s'annulent. Les ordinateurs quantiques utilisent l'interférence pour amplifier les probabilités des bonnes réponses tout en annulant celles des mauvaises. Cela aide à trouver des solutions plus efficacement.

Puissance de calcul

Informatique classique :

Imaginez une bibliothèque où vous devez trouver un livre en vérifiant chaque livre un par un.

Informatique quantique :

Imaginez avoir plusieurs mains qui atteignent différentes parties de la bibliothèque en même temps. Grâce à la superposition et à l'intrication, les ordinateurs quantiques évaluent de nombreuses possibilités simultanément, offrant des accélérations potentielles pour des tâches spécifiques comme la recherche dans des bases de données.

Forces clés

Forces de l'informatique classique :

Parfaite pour les tâches quotidiennes comme le traitement de texte, la navigation sur Internet et l'exécution d'applications, où les séquences d'entrées et de processus sont importantes.

Potentiel de l'informatique quantique :

Idéal pour des tâches comme la factorisation de grands nombres (importante pour le chiffrement), la simulation de molécules (utile dans la découverte de médicaments) et la résolution de problèmes d'optimisation (comme la logistique ou la modélisation financière), où l'immense nombre de possibilités peut être accablant pour les ordinateurs classiques.

Conclusion

L'informatique quantique repense fondamentalement notre approche de la résolution de problèmes grâce à des concepts comme la superposition et l'intrication, offrant un potentiel immense en matière de capacités de calcul pour résoudre des problèmes complexes qui sont inaccessibles aux ordinateurs classiques. C'est un domaine passionnant qui, bien qu'encore à ses débuts, promet des avancées significatives en technologie et en science.

 


Conclusion

Waouh, tu es arrivé à la fin de cet article ? C'est une vraie preuve de dévouement — la plupart des gens auraient abandonné quelque part vers la section "Snooze" ! (ça c'est une blague générée par l'IA et je n'ai pas dû faire un super prompt...)

J'espère que cela aura clarifié au moins une chose : il n'y a pas d'autre moyen d'obtenir les meilleurs résultats avec ton LLM qu'en communiquant correctement avec lui. Bien sûr, si tu envoies des questions ponctuelles pour obtenir des informations, ce n'est peut-être pas si pertinent. Mais dès que tu veux obtenir quelque chose d'un peu plus "prévisible" dans la manière dont cela fonctionne et génère des résultats (et je ne sais pas si c'est très clair de le dire ainsi), il est probablement judicieux d'exploiter toute la puissance des Transformers.

J'ai encore d'autres choses à partager sur le Prompt Engineering, donc reste connecté pour la suite 😎 En attendant, n'hésite pas à partager ton retour dans les commentaires ou directement par message privé, je me ferai un plaisir de te répondre.

Merci de m'avoir lu 🙂

 


Sources