L’art de converser avec les modèles de langage : le prompting

Aujourd’hui, nous pouvons discuter avec l’intelligence artificielle et lui permettre de générer des réponses semblables à celles des humains. Les modèles de langage combinent les informations contenues dans l’ invite (en anglais : le prompt) avec celles intégrées dans le modèle pendant l’entraînement pour générer leurs réponses. Les informations contenues dans l’ invite peuvent être vues comme une forme complémentaire d’ apprentissage limitée au dialogue en cours.

La formulation du prompt est donc déterminante et forme le socle d’ une discipline naissante appelée prompt engineering. Le prompt engineering comprend à la fois des techniques de bases que j’ illustre ici, mais aussi des techniques plus avancées que je couvrirai ultérieurement. Il faut bien noter que toutes ces techniques sont de nature empirique, elles se sont constituées au fil des expérimentations des utilisateurs sur les modèles. Il n’ y a pas de théorie formelle sous-jacente. Dès lors, il est tout à fait possible que de nouvelles approches plus efficaces soient identifiées à l’ avenir.

Plus concrètement, je vous présente dans cet article une méthodologie structurée de construction d’ une invite efficace, applicable à tous les modèles conversationnels actuels (ChatGPT, Bing chat, Claude, Llama 2, Bard…).

1. Structure

Nous allons construire notre prompt suivant une structure en six parties. Ces parties, par ordre d’importance décroissante sont :

  1. La tâche : décrit ce que vous voulez obtenir comme information du modèle. C’est évidement l’information fondamentale;
  2. Le contexte : reprend des informations complémentaires expliquant les circonstances et l’environnement dans lesquels la tâche doit être exécutée;
  3. La guidance : guide le modèle à fournir le contenu de réponse que vous attendez;
  4. La personnalité : décrit la personnalité que le modèle va chercher à incarner dans sa réponse;
  5. Le format : décrit le format de la réponse;
  6. Le ton : décrit l’humeur et la tonalité de la réponse : formelle, humoristique, enthousiaste..

A l’ exception de la tâche, aucune partie n’ est absolument requise mais elles contribuent à la qualité de la réponse en fonction de leur importance respective. L’ ordre dans lequel les différentes parties sont rédigées dans l’ invite peut varier, pour autant que l’ ensemble reste cohérent et mette l’ emphase sur les éléments les plus importants.

Voici une illustration de prompt complet montrant la contribution de chaque partie à l’ ensemble :

Figure 1 : Un prompt complet avec illustration des parties

J’en profite pour faire un lien avec les instructions personnalisées de ChatGPT que j’avais mentionnées dans un article précédent : Il vous est possible de placer certaines des parties de l’invite que vous réutilisez systématiquement dans les Custom Instructions, comme la personnalité, le format, le ton et potentiellement certains élements de contexte.

Voyons maintenant chaque partie plus en détail.

2. Définition de la tâche

La tâche est le coeur de l’ invite: elle indique au modèle ce qu’ il doit faire en retour. Il est essentiel d’ être clair et concis pour garantir que le modèle comprend votre demande.

Quelques verbes typiques de la description d’une tâche : traduis, résume, analyse, trie, classe, rédige, génère, explique, décris, planifie, organise, demande….

Pensez à bien décrire l’ objectif que vous recherchez, et n’ hésitez pas à détailler si nécessaire.

Exemples :

  • simple : Génère un programme d’entraînement approprié pour courir un marathon;
  • complexe : Analyse le retour des abonnées à notre lettre d’information, résume les trois points d’amélioration principaux et catégorise le reste par ordre d’importance décroissante.

3. Définition du contexte

Comme dans toute conversation, plus vous fournissez de contexte lors de la rédaction des invites, plus les résultats d’ un modèle linguistique comme ChatGPT seront pertinents. Votre contexte devrait reprendre des informations sur l’ environnement et des circonstances dans lequel se fait la demande ainsi que la situation des intervenants et leurs objectifs. Si possible, reliez cela à l’ objectif de votre demande et les facteurs de succès qui y sont liés.

Exemples :

  • sportif : Je suis un homme de 54 ans qui court environ 10 kilomètres tous les deux jours. J’ai déjà couru deux marathons il y a environ 15 ans et je voudrais recommencer. Cependant je n’ai plus du tout l’habitude de courir de longues distances. Mon but pour le marathon est de terminer dans le temps imparti (4h30 minutes) pour ne pas être disqualifié.
  • ingéniérie : Nous sommes un bureau d’études en charge de rénover un pont ferroviaire sur la Meuse. Ce pont de 165 mètres de long a été construit dans les années 1970. Il compte cinq piles qui portent six travées et possède un tablier en béton. Le pont montre des signes d’usure et des rénovations sont nécessaires au niveau du béton, des joints étanches sous les voies et des supports entre les tabliers de pont et les piles. Lors de la rénovation, il est essentiel que les passants et les riverains subissent le moins de désagréments possible.

4. Définition de la guidance

La guidance a pour but d’aider le modèle à fournir une réponse correcte.

L’ approche la plus simple est de recourir à une description du contenu que vous attendez. La guidance vient épauler la définition de la tâche et se confond parfois avec elle. La guidance n’est pas toujours nécessaire, cela dépend du type de tâche demandé par l’utilisateur.

Exemple : dans votre réponse, listez les trois causes les plus probables de la panne de courant et pour chacune, expliquez votre raisonnement en mettant en concordance les causes proposées avec le déroulement des événements.

L’ autre approche est de fournir un ou plusieurs exemples reprenant une séquence questions/réponses qui va offrir un cadre au modèle. Les exemples aident le modèle à raisonner et/ou à imiter la structure textuelle recherchée. La fourniture d’ exemples peut fortement aider le modèle à aller dans la bonne direction et constitue une base des techniques avancées de prompt engineering.

5. Incarnation d’une personnalité

En définissant une personnalité, vous demandez au modèle de répondre selon une perspective particulière, ce qui peut fortement impacter la qualité de la réponse.

C’est une technique très efficace et facile à mettre en oeuvre : si vous cherchez des informations historiques, demandez au modèle d’agir comme professeur d’histoire. Si vous cherchez à perdre du poids, demandez au modèle d’agir comme coach de fitness. Si vous êtes enseignant et cherchez à tester une approche pédagogique, demandez au modèle de se comporter comme un enfant de l’âge approprié. Les possibilités sont presque infinies…

Détail amusant, vous pouvez même demander au modèle d’incarner une personnalité connue, comme Albert Einstein, Winston Churchill, Paul Bocuse ou Albert Camus. Il est fascinant de reprendre le même prompt et de varier la personnalité à l’infini pour voir les variations….

6. Définition du format de la réponse

Ceci consiste à spécifier le format de la réponse. Les modèles sont en effet assez doués pour formatter leur réponse selon un format particulier comme :

  • une table
  • une liste numérotée
  • un email
  • un texte structuré au format Markdown
  • un tweet (n’hésitez pas à demander d’ajouter les hashtags pertinents)
  • un bloc de code informatique : procédure, fonction…
  • un fichier structuré (csv, json, yaml…)

Il suffit de mentionner un texte du style : formate le résultat sous forme de table / de code….
Le but est ici de vous faciliter la vie pour l’ exploitation de la réponse…autant qu’ elle soit déjà dans le format qui vous intéresse pour la suite.

7. Définition du ton de la réponse

Le ton définit l’humeur et le sentiment de la réponse: attendez-vous une réponse structurée et analytique ou une réponse enthousiaste et motivante ? Voulez-vous que le ton soit formel et professionel ou familier et informel ? L’humour ou l’ironie sont-ils acceptables ? Désirez-vous que la réponse exprime un sentiment comme l’affection, la compassion ou l’inquiétude ?

Quelques exemples :

  • Réponds dans un style formel
  • Utilise un style familier dans la réponse
  • Fournis une réponse ironique ou sarcastique
  • Sois enthousiaste dans la réponse
  • Donne une réponse pessimiste

A vous de jouer.

8. Limitations

Soyez toujours conscients des limitations des modèles :

  • Bien que les modèles de langage soient capables de présenter une liste de sources d’apparence plausible, il arrive souvent que ces sources soient inventées. Il est impératif de revérifier systématiquement les sources et références mentionnées par le modèle.
  • Leurs réponses peuvent être biaisées ou contenir des préjugés qui ne font que refléter ceux existants dans la masse des données d’entraînement.
  • Ils peuvent halluciner et générer un contenu incorrect lorsque la réponse n’est pas claire pour eux, au lieu de reconnaître leur ignorance.
  • Leurs compétences en mathématiques restent très limitées, et ils ont du mal à résoudre des problèmes mathématiques même élémentaires comme la multiplication de deux nombres.

Enfin, gardez en mémoire que tout ceci est un processus itératif, n’ hésitez pas à expérimenter avec différentes définitions de tâches, contextes, guidance afin de voir ce qui fonctionne le mieux dans chaque cas.

9. Notes et références