Le prompt, histoire d'une collaboration humain-IA

Collaboration humain-IA : stimulez votre créativité en dialoguant avec les modèles de langage par cycles itératifs d'idéation.

Savoir formuler ses prompts, c'est essentiel.

Mais comprendre la nature des modèles de langage comme ChatGPT ou Claude l'est tout autant, voire plus. Sans cette compréhension, on peut suivre des "recettes", mais pas comprendre ce qui fait qu'un bon prompt est un bon prompt.

Deux de leurs caractéristiques, notamment, sont :

  • l'étendue de leurs connaissances

  • leur aptitude à générer du contenu

Remarque : une autre caractéristique clé est leur fonctionnement auto-régressif, mais ce sera pour une prochaine fois.

Ces modèles ont de vastes connaissances :

  • Ils ont absorbé une quantité colossale d'informations provenant de livres, d'articles, de pages web, de code, de publications scientifiques... Tout y passe !

  • Cette "connaissance", bien que davantage basée sur des corrélations mathématiques que sur une réelle compréhension, est impressionnante.

Avec ces modèles, tu as donc accès à une forme "compressée" de connaissances sur une multitude de sujets (attention, tout de même, ces modèles peuvent se tromper).

Pourquoi je te dis ça ? Laisse-moi te montrer avec un exemple, pas le + sexy que tu vas rencontrer, mais qui illustre bien le point que je cherche à démontrer.

Agis comme un correcteur d'orthographe méticuleux et expérimenté.

Lis attentivement ce texte :
<texte>
Je sui alé au restaurent hier soir.
J'ai mangé une délicieuse pizza et un tiramisu en dessert.
Le serveur étai très aimable et le service impécable.
Je recommande vraiment ce restaurant !
</texte>

Corrige toutes les fautes d'orthographe et de grammaire pour que le texte reflète un excellent niveau de français professionnel.

Rien de spécial. On est d’accord. À noter tout de même que :

  • j’ai assigné un rôle au modèle ”Agis comme un correcteur d'orthographe”. C’est un classique du prompting. Optionnel mais classique. Le rôle encourage le modèle à adopter une certaine approche dans sa réponse.

  • j’ai pris soin de séparer les données de l’instruction. Classique aussi MAIS pas optionnel. Ici avec les balises XML : <texte> et </texte>.

Petite remarque sur les balises XML. Il faut une balise de début ET une balise de fin. Respectivement dans mon exemple : <texte> et </texte>. Tu vois le / ? C’est ce qui caractérise la balise de fin. Après, tu peux nommer la balise comme tu le veux, j’ai mis texte mais paragraphe aurait tout aussi bien fait l’affaire. Utilise un mot descriptif par contre.

Sans suprise, le modèle (j’utilise Claude 3 pour cet exemple), me retourne le texte corrigé :

Mais, moi ça me va moyennement, car j’aimerais visualiser en un coup d’oeil les corrections apportées. Je ne veux pas laisser l’IA en mode “pilote automatique”. Sur un texte aussi court, ça va, je pourrais vérifier “à la main”, mais sur un texte beaucoup plus long, ce serait pénible.

J’ai par conséquent ajouté en fin d’instruction une précision sur le format de sortie : “Mets en avant les lignes corrigées comme un diff dans github“ :

Ah, c’est mieux. Oui, je m’extasie devant des lignes rouges et vertes. Chacun son truc !

Préciser le format de sortie est une autre technique courante en prompting : Liste, tableaux, JSON, XML... Cela permet de structurer la réponse du modèle d'une manière qui facilite son exploitation ou sa visualisation.

Tu peux même demander “diff dans github“ comme format. diff dans github ? Mais de quoi il parle ? Effectivement, si tu n'es pas développeur, peu de chances que tu saches ce qu'est ce diff (un outil pour visualiser les différences entre deux versions d'un fichier).

MAIS, c'est précisément mon point. J'ai pu débloquer cette “fonctionnalité” du modèle, car j’y ai apporté mon “expertise”.

C'est TOI qui détiens la clé pour exploiter les capacités de ces modèles de langage. Et c'est ça aussi l’art du prompt : trouver les bons mots pour débloquer les bonnes connaissances.

leur connaissance + ton expertise = duo de choc 🏆

Ces modèles sont des modèles génératifs.

Qui dit modèle génératif, dit capacité à générer. C’est leur nature profonde, ce qui fait leur défaut et leur qualité.

Il faut tirer profit de cette capacité à générer. Je m’explique…

Sur le groupe WhatsApp de notre formation, récemment, on a abordé les capacités de ChatGPT à jouer aux échecs. Ça m'a (re)fait penser à AlphaZero. AlphaZero, si ce nom te dit rien, c’est le successeur de AlphaGo. Et, AlphaGo, si ce nom te dit rien, c’est la première IA à avoir surpassé les meilleurs joueurs de Go. Le sujet avait fait pas mal de bruit en 2016.

Bref, quand AlphaZero est sorti en 2017. Il est devenu après quelques heures à jouer contre lui-même le meilleur joueur d’échecs au monde. ET SURTOUT avec une manière de jouer bien à elle, avec des stratégies innovantes.

Étonnamnent, j'ai fait le parallèle entre le fonctionnement de AlphaZero et la manière dont je peux interagir avec Claude ou ChatGPT.

AlphaZero fonctionne un peu de cette manière : il génère une liste de coups probables, les évalue, décide d’explorer les meilleurs coups plus en profondeur … et ainsi de suite jusqu’à trouver le meilleur coup possible.

Génération. Evaluation. Exploration.

C'est précisément ce que je fais quand je travaille avec Claude ou ChatGPT :

  1. Je les invite à générer des idées, des suggestions, des pistes de réflexion sur un sujet donné. C'est la phase de génération.

  2. Ensuite, j'évalue ces idées. Certaines sont pertinentes, d'autres moins. Certaines sont créatives, d'autres nulles. C'est la phase d'évaluation.

  3. Enfin, je décide d'explorer plus en profondeur les idées les plus prometteuses. Je demande à Claude ou ChatGPT de développer, d'affiner, de pousser plus loin ces pistes. C'est la phase d'exploration.

Et puis on recommence : génération de nouvelles idées à partir des pistes explorées, évaluation, exploration... C'est un cycle qui se répète... À chaque itération, on progresse vers une meilleure compréhension du sujet, vers des idées plus affûtées, vers une meilleure solution.

Chacun son rôle.

L'IA apporte sa puissance de génération, sa capacité à explorer de vastes espaces d'idées.

Et, moi, j’évalue, j’oriente. Je décide quelles idées valent la peine d'être explorées.

Et, dans ce dialogue, je me surprends même à avoir de bonnes idées, stimulées par celles de l'IA : c'est toute la richesse de cette collaboration.

Petit exemple pour illustrer un peu ce propos. Il y a quelques mois, nous avions partagé la “technique du curseur” :

"""
Hé, les amis, avez-vous déjà entendu parler de cette astuce de dingue pour ChatGPT ?
"""

Sur une échelle de 1 à 10, 1 étant très formel, et 10 trés informel, à combien évalues-tu cette phrase ?

Puis, écris moi cette phrase pour chaque valeur d'évaluation de 1 à 10

Voici la réponse obtenue avec ChatGPT 4 :

Ça nous avait valu quelques critiques d’ailleurs. Du genre, mais non, sacrilège, vous ne pouvez pas demander à l’IA, de mettre une note, d’évaluer..

Mais c’est rater l’essentiel. Le but est de tirer profit des capacités de génération de l’IA en obtenant graduellement différents types de réponse sur un critère donné. Critère qui peut être plus ou moins subjectif selon ce qui est demandé.

La qualité de l'évaluation est secondaire.

TU es l'évaluateur final.

Ce qu'il faut retenir

  • Les modèles de langage ont de vastes connaissances. À toi de mettre à profit ces connaissances grâce à ton expertise.

  • Tire profit de la capacité générative des modèles : génération, évaluation, exploration.

  • Affine tes prompts en précisant le rôle et un format de sortie adapté.

  • L’art du prompt : trouver les bons mots

Aller + loin

  • regarder l’excellent documentaire sur le duel épique de 2016 entre Lee Sedol et AlphaGo AlphaGo - The Movie

  • générer, évaluer et explorer