Avec l’essor de ChatGPT, vous êtes sans doute déjà tombé sur les multiples guides et vidéos promettant de vous dévoiler les secrets du « prompting ». Certains experts auto-proclamés vont jusqu’à se faire appeler « prompt engineer » sur Linkedin, suggérant qu’ils seraient parvenus à élever cette discipline au rang de science.
Si on peut légitimement en rire, je crains que cette terminologie ne finisse par créer une forme d’auto-censure chez les débutants, en laissant croire que dialoguer avec les IA est une compétence difficile à acquérir et réservée aux spécialistes. Derrière ces titres ronflants se cache pourtant une compétence a priori à la portée de tous : être capable de formuler à une IA des consignes, requêtes et instructions – le fameux prompt – dans votre langue maternelle pour engager un dialogue avec elle.
Pour ma part, je reste convaincu que ce qu’on appelle pompeusement « l’art du prompting » se résume en réalité à un petit nombre de conseils pratiques très utiles mais relativement simples à assimiler, en particulier si vous avez déjà au préalable fait l’effort de comprendre comment fonctionnent les grands modèles de langage. C’est précisément l’objet du présent article, qui se concentrera sur les techniques qui font consensus et ont fait leur preuve empiriquement pour la génération de textes.
En revanche, gardez à l’esprit qu’il ne s’agit que d’un point de départ : rien ne remplacera la pratique et les meilleurs spécialistes estiment qu’une dizaine d’heures de dialogue avec les IA génératives est nécessaire pour en tirer pleinement parti.
Travailler avec l'IA est étrange et ne vient pas avec un manuel d'instructions. La seule façon de devenir bon dans l'utilisation de l'IA est donc de l'utiliser. Ma règle générale est qu'il faut 10 heures d'utilisation avant de commencer à comprendre ces outils et leurs particularités.
Ethan Mollick, professeur à la Wharton
Contextualiser la requête
La première chose à garder en tête dans vos interactions avec l’IA est qu’elle a besoin d’un contexte aussi précis que possible pour vous apporter une réponse utile.
Cela s’explique par le mode de fonctionnement des grands modèles de langage (LLM), qui possèdent une représentation extrêmement riche de notre langue et de nos représentations, acquise grâce à un entraînement approfondi sur d'immenses volumes de textes. Pour construire une réponse pertinente à votre demande, l'IA doit donc pouvoir naviguer dans un vaste océan sémantique – et elle dispose pour unique boussole de votre requête. Si cette dernière n’est pas assez précise, le modèle risque de construire sa réponse en se fondant sur des suppositions génériques ou des interprétations très différentes de la vôtre.
Parfois, même une simple virgule…
…peut tout changer !
Concrètement, comment faire pour guider l’IA ?
Un excellent moyen pour commencer consiste souvent à donner une identité au modèle (ex : « Tu es journaliste à Libération », « Tu es un enseignant au lycée, etc.) afin de l’aider à adopter un positionnement et un vocabulaire adaptés.
Illustration : comment donner un rôle à l’IA peut permettre d’améliorer sa réponse
Pour le reste, il est en revanche difficile de systématiser, car chaque cas est différent. Ceux qui sont intimidés par l’angoisse de la page blanche et ne savent pas quels sont les éléments de contexte pertinents à indiquer peuvent néanmoins essayer une technique assez facile à mettre en œuvre : demander conseil à l’IA !
Interroger l’IA pour contextualiser sa requête : deux exemples concrets
Définir aussi précisément que possible la réponse attendue
Au-delà du contexte de votre requête, il est également très utile de préciser la réponse attendue de la part de l’IA. Vous pouvez par exemple préciser la taille (ex : nombre de mots ou de paragraphes), le niveau de langue (ex : style pédagogique ou journalistique, langage soutenu ou familier, etc.), le mode de communication attendu (ex : utiliser des exemples concrets ou des métaphores), le plan à suivre, etc. En parallèle, il est tout aussi pertinent de préciser ce que vous ne voulez pas (ex : pas de termes trop familiers).
Si vous avez besoin d’une réponse structurée d’une certaine manière pour pouvoir l’exploiter plus facilement, il est également possible de l’indiquer au modèle en langage naturel.
Si votre modèle est capable de générer des fichiers, à l’image de la version payante de ChatGPT, vous pouvez même aller encore plus loin dans la personnalisation du format de sortie, par exemple en demandant à l’IA de créer un tableau Excel en réponse à votre requête.
Il vous suffit ensuite de le télécharger pour l’exploiter.
Multiplier les réponses
Pour les requêtes visant à vous aider dans une tâche créative, il ne faut pas hésiter à demander à l’IA plusieurs réponses alternatives, afin d’élargir le champ des possibles. Puisque vous disposez avec l’IA d’un « super‑stagiaire » inépuisable et corvéable à merci, ce serait quand même dommage de ne pas en profiter !
Lorsque je sollicite l’IA pour m’aider à trouver un titre ou à réécrire un paragraphe, j’ai ainsi pris l’habitude de demander systématiquement cinq ou dix propositions. Vous maximisez ainsi les chances d’avoir une réponse pertinente et de pouvoir croiser différentes approches.
Fournir des exemples pour illustrer vos consignes
En complément de la définition abstraite du format de la réponse, il est très utile de donner à l’IA des exemples concrets. Si vous demandez à ChatGPT de trouver un titre à votre article de blog, n’hésitez pas à lui fournir des exemples de titres que vous trouvez particulièrement réussis dans votre prompt, pour qu’il puisse s’en inspirer.
Pour une tâche consistant à résumer en une phrase le contenu d’un amendement parlementaire, il a par exemple suffit de donner sept exemples au modèle dans la consigne initiale pour accroître significativement la qualité des résumés :
Si ce conseil peut paraître trivial, plusieurs études ont montré qu’il s’agit d’une technique précieuse pour orienter l'IA vers le résultat attendu pour les tâches complexes. Lorsqu'un utilisateur présente plusieurs exemples de requêtes et de réponses correspondantes, l'IA utilise ainsi ces informations pour « ajuster » temporairement son mode de réponse dans le contexte de la conversation en cours.
Prenons un autre exemple pour illustrer l’intérêt de cette technique. Depuis quelques mois, ChatGPT permet à ses usagers de créer des images à l’aide du générateur d’images DALL-E. Lorsque vous demandez à ChatGPT de « commander » la création d’une image à DALL-E 3, il est toutefois tenu de respecter des consignes complémentaires expressément fixées par l’entreprise OpenAI, que des internautes ont réussi à « exfiltrer » du système. On y trouve notamment une règle interdisant à l’IA de générer une image « dans le style » d’un artiste dont la dernière œuvre a été créée il y a moins de 100 ans, afin de respecter les droits d’auteur :
// 4. Il est interdit de créer des images dans le style d'artistes dont la dernière œuvre a été réalisée au cours des 100 dernières années (par exemple : Picasso, Kahlo). Les artistes dont la dernière œuvre date de plus de 100 ans (par exemple : Van Gogh, Klimt) ne sont pas concernés par cette interdiction.
Traduction de l’auteur à partir du prompt exfiltré
Comme vous le voyez, OpenAI ne se contente pas d’indiquer la règle de manière abstraite mais donne des exemples concrets en complément, pour aider le modèle à appliquer cette consigne rigoureusement.
Permettre au modèle de développer son “raisonnement”
Même si ce n’est pas intuitif, il est également possible d’améliorer considérablement la qualité des réponses en précisant dans le prompt qu’on souhaite que le modèle procède « étape par étape » pour élaborer sa réplique.
Cette technique est particulièrement utile pour les consignes impliquant des raisonnements logiques ou mathématiques. On peut illustrer son efficacité pour la réalisation de tâches a priori très simples comme l’inversion des lettres d’un mot, que même certains modèles assez avancés comme GPT 3.5, qui équipe la version gratuite de ChatGPT, ont du mal à exécuter.
Dans cet exemple, demander au modèle de procéder « étape par étape » permet d’éviter l’erreur :
Empiriquement, une récente étude a montré que plus le nombre d’étapes est élevé, meilleure est la réponse. Par ailleurs, plus la tâche est complexe, plus la technique est performante. En pratique, l’efficacité de cette technique tient au fait qu’une même puissance de calcul est déployée par le modèle pour produire chaque mot et que celui-ci tient compte de l’ensemble de la conversation pour élaborer la suite de sa réponse. Lorsqu'on demande à un modèle d'avoir un « monologue interne », on bénéficie ainsi d’une plus grande puissance de calcul et d’un contexte enrichi permettant à ce dernier de mieux traiter la question et d'offrir une réponse plus complète et précise. Comme le résume Andrej Karpathy d’Open AI : « models need tokens to think ».
Découper en étapes sa requête
Pour les tâches complexes, il est également recommandé de découper en étapes sa demande.
Concrètement, il s’agit de de décomposer une requête en plusieurs actions successives, afin que l'IA suive un processus de traitement préétabli. Il peut être noté que cette technique n’est pas réservée à l’analyse de données ou à la résolution de problèmes mais est également très utile pour toutes les tâches impliquant des interactions avec l’utilisateur.
En la matière, il ne faut pas avoir peur de rédiger des requêtes assez longues, les modèles les plus avancés étant aujourd’hui parfaitement capables de suivre de multiples instructions. Les requêtes rédigées par OpenIA, qui viennent s’ajouter à votre propre consigne, sont d’ailleurs très étoffées.
À titre d’illustration, voici un prompt permettant de transformer l’IA en professeur particulier de Python, capable de vous aider dans votre apprentissage quel que soit votre objectif ou votre niveau de départ.
Instructions de PythonHelper, un professeur particulier qui vous aide à progresser en Python
Tu es un professeur particulier de Python sympathique et bienveillant.
// Début de la leçon
Le cours commence de la façon suivante :
- tu dois d'abord te présenter et demander quelle notion de Python ou quel objectif pratique l'utilisateur souhaite aborder dans la leçon, ainsi que le temps dont il dispose ;
- tu lui proposes ensuite un plan de cours permettant à la fin de maîtriser la notion ou d'atteindre l'objectif pratique dans le temps imparti, en lui demandant si ça lui convient ;
- si le plan ne convient pas à l'utilisateur, tu proposes des adaptations ;
- une fois que l'utilisateur valide le plan de cours, tu commences tes explications.
// Déroulement du cours
Pour chaque étape du plan de cours :
- tu dois commencer par présenter simplement et concrètement les concepts abordés, en illustrant avec des exemples pratiques et en étant très pédagogique ;
- tu dois ensuite proposer plusieurs exercices pratiques successifs à l'utilisateur pour vérifier qu'il a bien compris les concepts, avec un niveau de difficulté croissant ;
-> attention : chaque exercice pratique doit être proposé séparément et doit être différent de celui que tu as utilisé pour expliquer le concept ;
- pour chaque exercice, tu dois lui demander de partager son code, attendre la réponse de l'utilisateur et l'aider si tu vois qu'il n'y arrive pas ;
- tu dois ensuite l'accompagner pour qu'il corrige ses erreurs mais sans jamais révéler la solution de l'exercice, sauf si l'utilisateur te le demande expressément ;
- à la fin de chaque exercice, tu dois demander à l'utilisateur s'il a besoin d'explications complémentaires ou s'il veut un autre exercice plus difficile pour s'entraîner davantage avant de passer au point suivant.
Procède étape par étape.
Cette technique peut avantageusement être combinée avec la précédente en terminant le prompt par « Procède étape par étape », comme dans l’exemple ci-dessus.
Le résultat est assez bluffant !
Ceux qui disposent d’un abonnement payant à ChatGPT Plus peuvent tester l’efficacité de ce prompt directement en ligne.
Interagir avec le modèle
Si les techniques précédentes permettront de maximiser vos chances d’obtenir une première réponse satisfaisante de la part de l’IA, l’importance du prompt initial ne doit pas être surestimée car vous pouvez toujours interagir avec le modèle pour obtenir des réponses plus pertinentes.
Ainsi, il ne faut jamais considérer votre prompt comme un aboutissement mais plutôt comme le point de départ d’une conversation qui va vous permettre de préciser votre demande et d’inviter l’IA à se corriger. N’hésitez pas à verbaliser vos critiques comme vous le feriez dans la vie réelle !
Pour les tâches les plus complexes, il peut toutefois être intéressant de prévoir un « retour intermédiaire » dès le prompt initial, en particulier lorsque vos demandes impliquent plusieurs étapes successives.
Cette technique est particulièrement utile pour l’analyse de données. Dans l’exemple ci-dessous, la consigne initiale impliquait pour l’IA de croiser les données sur les économies avancées issues de deux fichiers Excel et d’effectuer plusieurs calculs pour arriver à générer un troisième fichier. Le prompt invitait toutefois l’IA à effectuer le calcul pour un seul pays au départ – les États-Unis – et de renvoyer le résultat pour validation, avant de généraliser à l’ensemble des économies avancées.
Il s’agit en pratique d’un excellent moyen d’éviter que l’IA ne parte dans une mauvaise direction et de repérer des erreurs de raisonnement.
Sauvegarder votre prompt
Reste enfin un dernier conseil avant de passer à la pratique : quand vous êtes amenés à effectuer des tâches répétitives, pensez à sauvegarder vos instructions afin de pouvoir les réutiliser, les améliorer au fil du temps… et les partager !
Si vous disposez de la version payante de ChatGPT, vous pouvez même facilement créer une version personnalisée du chatbot – un « GPT » – qui suivra une consigne pré-enregistrée par vous.
Exemple réel d’un « GPT » créé dans le but de vous aider à progresser en Python
Vous savez désormais tout ce qui me paraît essentiel pour bien interagir avec les grands modèles de langage. N’hésitez pas à partager dans les commentaires vos propres conseils ainsi que vos requêtes les plus efficaces !