Ingénierie de prompt

Un article de Wikipédia, l'encyclopédie libre.

L'ingénierie de prompt (issu de l'anglais prompt engineering) est le processus de structuration d'un prompt, de sorte à ce qu'il soit efficacement interprété et compris par un modèle d'intelligence artificielle générative[1],[2]. Un prompt (ou invite de commande) est une description textuelle de la tâche qu’une IA doit effectuer[1].

Un prompt, pour un modèle de langage produisant du texte, peut être une requête telle que « qu'est-ce que le petit théorème de Fermat ? »[3]. Ou bien une commande comme « écrire un poème sur la chute des feuilles »[4], ou une déclaration plus longue incluant du contexte, des instructions[5], et l'historique des conversations. L'ingénierie de prompt peut impliquer de formuler une requête, de spécifier un style[4], de fournir un contexte pertinent[6], ou d'attribuer un rôle à l'IA. Un prompt peut inclure quelques exemples à partir desquels un modèle doit apprendre, comme demander au modèle de compléter « maison → house, chat → cat, chien → » (la réponse attendue étant dog)[7], une approche appelée few-shot learning[8].

Lors de la communication avec un modèle générant des images ou du son, un prompt typique est une description d'un résultat souhaité, tel que « une photo de haute qualité d'un astronaute montant un cheval »[9] ou « une musique de fond pour piano dans le style de Gershwin »[10].

Apprentissage en contexte[modifier | modifier le code]

L'ingénierie de prompt est associée à la notion d'apprentissage en contexte (de l'anglais in-context learning), ce qui signifie la capacité d'un modèle à apprendre temporairement des informations à partir du prompt, c'est-à-dire du contexte. L'apprentissage en contexte a l'avantage de fournir des informations spécifiques au modèle sans nécessiter de l'entraîner, ce qui serait plus long et coûteux. Le modèle n'est en effet pas modifié, le prompt faisant juste partie des données d'entrée.

Histoire[modifier | modifier le code]

En 2021, les chercheurs ont peaufiné un modèle pré-entraîné génératif (T0) sur l'exécution de 12 tâches de traitement automatique des langues (en utilisant 62 ensembles de données, car chaque tâche peut avoir plusieurs ensembles de données). Le modèle a montré de bonnes performances sur de nouvelles tâches, surpassant les modèles entraînés directement sur l'exécution d'une seule tâche (sans pré-entraînement). Pour résoudre une tâche, T0 reçoit la tâche dans un prompt structuré, par exemple If {{premise}} is true, is it also true that {{hypothesis}}? ||| {{entailed}}. est le prompt utilisé pour que T0 résolve l'implication[11].

En 2022, la technique chain-of-thought (« chaîne de pensée ») a été proposée par des chercheurs de Google[12],[13].

En 2023, plusieurs bases de données de prompts pour la génération de texte ou d'images étaient publiquement accessibles[14],[15].

Génération de texte[modifier | modifier le code]

Chaîne de pensée[modifier | modifier le code]

Une des techniques les plus connues est celle de la chaîne de pensée. Elle consiste à inciter les grands modèles de langage à aborder un problème pas à pas, avant de fournir la réponse finale[16]. La chaîne de pensée améliore les capacités de raisonnement d'un modèle en le poussant à résoudre un problème de façon plus progressive. Il permet aux grands modèles de langage de surmonter les difficultés liées à certaines tâches de raisonnement qui nécessitent une réflexion logique et plusieurs étapes à résoudre, comme les problèmes arithmétiques[17],[18],[19].

Par exemple, étant donné la question « Q : La cafétéria avait 23 pommes. S'ils en utilisaient 20 pour préparer le déjeuner et en achetaient 6 de plus, combien de pommes ont-ils ? », un prompt pourrait inciter le grand modèle de langage à répondre « A : La cafétéria avaient 23 pommes à l'origine. Ils en utilisaient 20 pour préparer le déjeuner. Ils en avaient donc 23 - 20 = 3. Ils ont acheté 6 pommes de plus, donc ils ont 3 + 6 = 9. La réponse est 9."[12]

La méthode initialement proposée[12] consistait à inclure dans le prompt quelques exemples de questions et de réponses, où les réponses contenaient des détails de raisonnement pour inciter le modèle à faire de même. Cependant, le simple fait d'ajouter les mots Let's think step-by-step (« Réfléchissons étape par étape ») s'est également révélé efficace. Cela rend la méthode plus facile à appliquer, puisqu'il n'y a plus besoin de fournir des exemples spécifiques de questions et de réponses[20].

Inciter à divulguer l’incertitude[modifier | modifier le code]

Par défaut, les résultats des modèles de langage n'indiquent pas forcément leur incertitude. Le modèle peut produire un texte qui semble confiant, bien que les prédictions sous-jacentes de mots (ou plus exactement de tokens) aient des scores de probabilité faibles. Les grands modèles de langage comme GPT-4 peuvent avoir des scores de vraisemblance calibrés avec précision dans leurs prédictions de mots suivants[21].

Génération d'images[modifier | modifier le code]

En 2022, des modèles des modèles de génération d'images comme DALL-E 2, Stable Diffusion et Midjourney ont été rendus public[22]. Ces modèles prennent en entrée des prompts, et les utilisent pour générer des images artistiques IA. Ces modèles n'ont pas forcément la même compréhension de la grammaire et de la structure des phrases que les grands modèles de langage[23].

Une prompt comprend de génération d'images contient généralement une description du sujet de l'art (par exemple, des coquelicots orange vif ), le support souhaité (comme une peinture ou une photographie numérique ), le style (hyperréalisme ou encore pop-art ), l'éclairage (éclairage du bord, ou rayons crépusculaires ), la couleur et la texture[24].

La documentation de Midjourney encourage les invites courts et descriptifs : au lieu de « Montre-moi une photo de nombreux coquelicots de Californie en fleurs, rend-les orange vif et vibrants, et dessinez-les dans un style illustré avec des crayons de couleur », un prompt efficace pourrait être « Coquelicots orange vif de Californie dessinés aux crayons de couleur »[23].

Injection de prompt[modifier | modifier le code]

L'injection de prompt consiste à manipuler le prompt pour qui pousse le modèle produise du contenu qu'il est censé ne pas produire[25].

Il y a plusieurs types d'injection de prompt, notamment :

  • Le jailbreaking (« débridage »), qui désinhibe le modèle. Par exemple avec un prompt qui demande au modèle de jouer le rôle d'un caractère fictif[26].
  • Le prompt leaking (« fuite de prompt »), dans lequel un utilisateur persuade le modèle de divulguer son pre-prompt, qui est un texte en général caché des utilisateurs, et automatiquement ajouté au début du prompt pour indiquer au modèle comment se comporter[26].

Références[modifier | modifier le code]

  1. a et b Bastien L, « Prompt Engineer : tout savoir sur ce nouveau métier de l’IA, incontournable pour le futur », sur lebigdata.fr, (consulté le )
  2. (en) Mohamad Diab, Julian Herrera et Bob Chernow, « Stable Diffusion Prompt Book », (consulté le ) : « "Prompt engineering is the process of structuring words that can be interpreted and understood by a text-to-image model. Think of it as the language you need to speak in order to tell an AI model what to draw." »
  3. (en) « Introducing ChatGPT », sur OpenAI Blog, (consulté le ) : « "what is the fermat's little theorem" »
  4. a et b (en) Reid Robinson, « How to write an effective GPT-3 or GPT-4 prompt », sur Zapier, (consulté le ) : « "Basic prompt: 'Write a poem about leaves falling.' Better prompt: 'Write a poem in the style of Edgar Allan Poe about leaves falling.' »
  5. (en) Natasha Gouws-Stewart, « The ultimate guide to prompt engineering your GPT-3.5-Turbo model », sur masterofcode.com,
  6. (en) Laura Greenberg, J., « How to Prime and Prompt ChatGPT for More Reliable Contract Drafting Support », sur contractnerds.com, (consulté le )
  7. (en) Shivam Garg, Dimitris Tsipras et Percy Liang, « What Can Transformers Learn In-Context? A Case Study of Simple Function Classes », .
  8. (en) « Language models are few-shot learners », Advances in Neural Information Processing Systems,‎ (arXiv 2005.14165)
  9. (en) Will Douglas Heaven, « This horse-riding astronaut is a milestone on AI's long road towards understanding », sur MIT Technology Review, (consulté le )
  10. (en) Kyle Wiggers, « Meta open sources an AI-powered music generator », sur TechCrunch, (consulté le ) : « Next, I gave a more complicated prompt to attempt to throw MusicGen for a loop: "Lo-fi slow BPM electro chill with organic samples." »
  11. (en) Victor Sanh, Albert Webson, Colin Raffel, Stephen H. Bach, Lintang Sutawika et al., « Multitask Prompted Training Enables Zero-Shot Task Generalization », .
  12. a b et c (en) Jason Wei et Xuezhi Wang « Chain-of-Thought Prompting Elicits Reasoning in Large Language Models » () (arXiv 2201.11903, lire en ligne)
    Advances in Neural Information Processing Systems (NeurIPS 2022)
  13. (en) Wei et Zhou, « Language Models Perform Reasoning via Chain of Thought », ai.googleblog.com, (consulté le )
  14. Chen, « How to Turn Your Chatbot Into a Life Coach », The New York Times,
  15. (en) Brian X. Chen, « Get the Best From ChatGPT With These Golden Prompts », The New York Times,‎ (ISSN 0362-4331, lire en ligne, consulté le )
  16. (en) McAuliffe, « Google's Latest AI Model Can Be Taught How to Solve Problems », CNET (consulté le ) : « "'Chain-of-thought prompting allows us to describe multistep problems as a series of intermediate steps,' Google CEO Sundar Pichai" »
  17. Dang, « Harnessing the power of GPT-3 in scientific research », VentureBeat, (consulté le )
  18. (en) Montti, « Google's Chain of Thought Prompting Can Boost Today's Best Algorithms », Search Engine Journal, (consulté le )
  19. (en) Ray, « Amazon's Alexa scientists demonstrate bigger AI isn't always better », ZDNET (consulté le )
  20. Dickson, « LLMs have not learned our language — we're trying to learn theirs », VentureBeat, (consulté le )
  21. (en) OpenAI, « GPT-4 Technical Report », . [cf. Figure 8]
  22. (en) Jim Clyde Monge, « Dall-E2 VS Stable Diffusion: Same Prompt, Different Results », sur MLearning.ai, (consulté le )
  23. a et b « Prompts » (consulté le )
  24. (en) « Stable Diffusion prompt: a definitive guide », sur Stable Diffusion Art, (consulté le )
  25. Edward Back, « « Prompt injection » : quelle est cette nouvelle attaque contre les IA ? », sur Futura (consulté le )
  26. a et b (en) « Learn Prompting: Your Guide to Communicating with AI », sur learnprompting.org (consulté le )