C'est quoi un prompt ?

Un prompt, c'est le message que tu envoies à un modèle de langage pour obtenir une réponse

Bienvenue dans ce 1er épisode de la série Bien débuter avec ChatGPT et le prompt

L’objectif de cette série :

  • te donner les bases pour exploiter au mieux les modèles de langage (LLMs) comme : ChatGPT, Mistral, Claude ou Gemini.

  • te faire découvrir par la pratique avec des exemples simples et concrets

  • t’expliquer au passage quelques termes et la nature de l'IA générative.

Commençons en douceur par… le commencement : qu'est-ce qu'un prompt ?

C'est quoi un prompt ?

Un prompt (ou “invite“ en français), c'est le message que tu envoies à ChatGPT ou à un autre modèle de langage pour obtenir une réponse.

Il peut inclure :

  • Un contexte

  • Des données

  • Des instructions

  • Des exemples

  • Et plus encore !

Un bon prompt est celui qui te permet d’obtenir une bonne réponse. C’est l’objectif. Et, pour obtenir une bonne réponse, la rêgle, c’est : être clair, direct, précis et exhaustif.

Il faut garder à l'esprit que le modèle ne sait rien de toi. Rien du tout. Le seul moyen pour lui de connaître tes intentions est que TU lui dises. Sans toi, le modèle tâtonne dans le noir.

Tu le verras par la suite, il y a d’autres rêgles à connaître mais c’est déjà un bon début. C’est la base du “Prompt Engineering”. Un terme un peu pompeux, mais en voici une définition que j'aime bien :

L'ingénierie de prompt est l'art de communiquer avec un modèle de langage génératif

Place à la pratique ! Tu en sais maintenant suffisamment pour commencer à “prompter”.

Je te propose de démarrer en douceur avec un exemple tout simple. Mais utile.

Ma veille IA, je la fais principalement sur twitter. J’y suis des ingénieurs, des chercheurs, des développeurs.. tu vois le genre. (si tu es curieus(e), ma liste est visible ici). D’une, c’est assez technique et, de deux, c’est en anglais. Dur.

Tôt ou tard, je tombe toujours sur une nuance qui m'échappe, un acronyme qui m’est inconnu ou une expression qui me laisse perplexe (ceci-dit, ça m’arrive aussi en français).

Ce matin, par exemple, je suis tombé sur “outline-driven”. Pas sûr de mon coup, j'ai préfèré faire un « appel à un ami » :

"""
Compared to articles generated by an outline-
driven retrieval-augmented baseline, more of
STORM’s articles are deemed to be organized
(by a 25% absolute increase) and broad in cov-
erage (by 10%)
"""

Aide-moi à comprendre cette phrase

Tu remarqueras que le prompt est structuré en deux parties distinctes :

  • Les données (le texte à analyser) encadrées par un séparateur : ici des triples guillemets """

  • L'instruction : "Aide-moi à comprendre cette phrase"

On délimite clairement les données des instructions. C’est fondamental.

Les triples guillemets ouvrants ET fermants permettent au modèle de facilement identifier les données comme un seul bloc. Ça évite toute confusion. J'aurais pu utiliser d'autres séparateurs comme des balises XML et remplacer les “““ par <texte> et </texte> (On verra des exemples avec ce genre de balises dans les mails suivants).

Histoire de.. je te copie / colle le début de la réponse de ChatGPT :

Merci ChatGPT, c’est très clair

Petit à petit, cette structure "données + instructions" doit devenir un réflexe dès que tu interagis avec un modèle de langage, que ce soit pour résumer un texte, extraire des informations clés, analyser des sentiments... Bref, pour la plupart des cas d'usage !

Chez moi, c’est devenu tellement systématique que je me surprends à mettre des triples guillemets dans mes échanges sur WhatsApp 🤦.

Autre exemple typique et pratique : répondre à un mail. Imagine que tu doives répondre à un client mécontent (le mail ci-dessous est fictif).

J'ai reçu le message suivant d'un client :
"""
Je suis vraiment déçu par votre service. Ma commande devait arriver il y a deux jours et je n'ai toujours rien reçu ! De plus, j'ai essayé de vous contacter à plusieurs reprises mais personne ne me répond. C'est inadmissible ! Je veux être remboursé immédiatement et vous pouvez être sûr que je ne recommanderai pas votre entreprise !
"""

Aide moi à rédiger une réponse appropriée.

Il faut :
- Présenter mes excuses pour les désagréments
- Expliquer que des retards exceptionnels peuvent survenir mais que nous mettons tout en œuvre pour les résoudre
- Proposer un geste commercial en compensation
- Rassurer le client sur le fait que sa satisfaction est notre priorité et que nous restons à sa disposition

Merci d'adopter un ton professionnel mais chaleureux. La réponse ne doit pas excéder 200 mots.

Comme tu peux le voir, on retrouve bien la structure “données + instructions“ (avec les séparateurs) ET j’ai rajouté un petit élément de contexte en tout début de prompt : “J'ai reçu le message suivant d'un client :“.

Si on veut être précis, ce prompt suit donc une structure en trois parties : contexte + données + instructions. Faut-il toujours introduire le contexte ? Ben, ça dépend... du contexte ! 😄

Plus sérieusement, c'est une bonne pratique, surtout quand la tâche est complexe ou ambiguë. Ça aide le modèle à mieux se situer. Mais pour des tâches simples et directes, on peut s'en passer.

Voilà. Pour cette première, je te propose :
“““
d’en rester là
”””

Après ce petit avant-goût, dans le prochain épisode "Le prompt, histoire d'une collaboration homme-IA", nous nous intéresserons à certaines caractéristiques des modèles de langage (ChatGPT, Claude...) et comment en tirer profit.

Ce qu’il faut retenir :

  • Un prompt, c'est le message que tu envoies à un modèle de langage pour obtenir une réponse

  • Un prompt doit être clair, direct, précis et exhaustif

  • Tu dois utiliser des séparateurs (comme les triples guillemets ou des balises XML) pour clairement délimiter le contexte, les données, les instructions

Aller + loin :