• Génération IA
  • Posts
  • ChatGPT Réinventé: comment le faire philosopher pour améliorer ses résultats

ChatGPT Réinventé: comment le faire philosopher pour améliorer ses résultats

Ou comment apprendre la technique du "step back prompting" avec notre ami l'escargot...

Alors, les tokens, l'autorégressivité et le fine-tuning etc.. c'est bien gentil. Mais, d'après vos retours enthousiastes (un grand merci !), la véritable vedette du précédent article, c'était bel et bien notre cher escargot ! Net et sans bavure (ah ah).

DALL·E 3 qui a toujours quelques problèmes d’orthographe à résoudre

À travers lui, nous avons cherché à illustrer certaines caractéristiques des Large Language Models (LLM, grand modèles de langage) et certaines de leurs limites.

Tout comme un écolier peut réciter “par coeur“ une leçon ou un poème sans en comprendre le sens, ChatGPT (qui s’appuie sur les LLM) peut “résoudre“ un problème logique en récitant bêtement une solution mémorisée lors de son entraînement. Déviez un peu du problème classique, modifiez-en les données, et il trébuche.

Trébuchement brillament exposé dans cet exemple :

J’avais pas pensé à tester cette hypothèse :-)

Si vous n’avez pas lu le précédent article (pas bieeeen), je vous invite à le faire. Vous aurez alors une meilleure compréhension de comment fonctionne ChatGPT, Claude et les autres. Revenez ensuite ici pour la suite.

Notre but ne se limitait pas à souligner les limites de ChatGPT. Nous souhaitions montrer qu'avec les directives appropriées, le modèle peut être guidé vers la réponse adéquate. Sa capacité à "réfléchir" découle directement de la séquence de mots qu'il produit. Les bons prompts, en exploitant notamment cette caractéristique, amènent ChatGPT vers les réponses souhaitées. Comme calculer précisément le nombre de jours que l'escargot prendra pour sortir du puits.

Dans le précédent article nous avions posé un problème à résoudre à ChatGPT. Nous avions laissé notre escargot dans un puits de 3 mètres, et comme il grimpe de 3 mètres par jour, en théorie il pouvait donc sortir de son puits en une seule journée. Mais ChatGPT ne voyait pas les choses ainsi :

Il faudra 2 jours à l’escargot pour sortir du puits

ChatGPT

J’avais, alors, fait appel à votre créativité pour aider ChatGPT à trouver la bonne réponse. Et autant j’ai vu défiler nombre d’exemples de sa “bêtise”, les prompts qui le conduisaient vers la solution, se sont faits plutôt rares. A vrai dire, j’en ai vu aucun (sauf erreur). Ah bah bravo ! C’est vrai que c’est plus marrant de se moquer de ChatGPT. Mais pensez un peu à l’escargot. Le pauvre, il en bave lui dans son puits.

Il était temps d’intervenir.

Mouais, j’ai pas oublié que tu as mangé tous mes plants de salade !

Je m’y colle. Voici un prompt, plutôt une séquence de deux prompts qui fonctionne :

Un escargot est au fond d'un puits de 3 mètres. Chaque jour, il grimpe 3 mètres, mais chaque nuit, pendant qu'il dort, il glisse de 2 mètres vers le bas. La question est : combien de jours lui faudra-t-il pour sortir du puits ? Ne réponds pas à la question, mais décris moi le raisonnement, la logique pour trouver la bonne réponse.

Admirez la justesse du raisonnement. Pas mal pour un perroquet.

Merci. réponds à la question maintenant.

Clap ! Clap ! Clap ! (en français)
Bave ! Bave ! Bave ! (en mollusquien)

Cette technique a un nom. Ou du moins elle s’apparente à une technique qui a un nom : le Step Back Prompting. Elle a été introduite par des chercheurs de Google Deepmind dans un papier publié il y a quelques semaines.

En quoi consiste-t-elle ?

Le Step Back Prompting incite les modèles à prendre du recul. Plutôt que de répondre immédiatement à une question, ils sont encouragés (via une instruction, c’est à dire un “prompt”, d’où le nom) à formuler une nouvelle question, soit à un niveau d'abstraction plus élevé, soit en la paraphrasant.

Prenons deux exemples pour illustrer.

Une question dans le domaine de la physique :

Question initiale: “Quelle est la vitesse d'un objet lâché d'une hauteur de 10 mètres après 2 secondes?“

Question reformulée: “Comment évolue la vitesse d'un objet en chute libre selon le temps?“

Une question de connaissance générale :

Question initiale: "À quel pays Sokolovsko appartenait-il de 1392 à 1525?"

Question reformulée: "À quels pays Sokolovsko a-t-il appartenu au cours de l'histoire?"

En répondant d'abord à la question reformulée, le modèle enrichit sa compréhension. Il est alors mieux armé pour traiter la question initiale, ce qui le conduit à générer des réponses plus exactes.

Pour ceux qui préfèrent les schémas, en voici un extrait du papier qui résume bien la technique :

Apparté. J'ai donné à ChatGPT l'image ci-dessus. Et je lui ai demandé : "Explique moi en deux phrases le schéma fourni"

Sa réponse : Le schéma illustre le processus "Step-Back Prompting", où face à une question initiale, on formule une question plus abstraite pour comprendre les principes fondamentaux (étape d'abstraction). Après avoir répondu à cette question abstraite, on applique ensuite cette compréhension pour répondre de manière précise à la question originale (étape de raisonnement).

Pas mal, hein ?

Alors, stupides ou intelligents ces modèles ? Ni l’un, ni l’autre. ChatGPT, Claude… ont incontestablement leurs limites. Des limites qui peuvent nous amuser, et aussi nous frustrer.

Néanmoins, avec les techniques de prompts appropriées, leur justesse peut être grandement améliorée. La méthode que nous avons abordée aujourd'hui n'en est qu’une parmi d’autres. J'avais initialement prévu de vous présenter une technique qui implique du code. Ce sera pour une prochaine fois, peut-être.

Il est important de comprendre que le modèle en lui-même ne fait pas tout. Comme pour n'importe quel outil, c'est notre manière de l'utiliser qui fait la différence. A nous de le faire avec discernement et créativité.

Epilogue. Je pensais avoir fini la rédaction de cet article. Et alors que je suis dans ma cuisine, un sac de bonbons à la main (en attendant que les enfants du quartier viennent sonner à la porte), une part en moi me dit : il manque un truc. Et là ... hmm ... et si on posait une question à la c... à ChatGPT et qu'ensuite on lui demandait successivement "Et si on se place à un niveau d'abstraction supérieur ?"

Bien évidemment, moi je suis un peu obligé de poser une question en rapport avec un escargot. Mais vous pouvez jouer le même jeu avec la question qui vous passe par la tête.

C'est parti. Vous pouvez voir l’échange qui en résulte sur ce lien si c’est plus pratique sinon, je le copie-colle ci-dessous. Vous pouvez lire en diagonale.

Qu'est-ce qui régit le déplacement d'un escargot ?

Et si on se place à un niveau d'abstraction supérieur ?

Et si on se place à un niveau d'abstraction supérieur ?

Et si on se place à un niveau d'abstraction supérieur ? (oui, je me répète, mais ça permet d’aller très très haut dans l’abstraction !)

À un niveau d'abstraction encore plus élevé, nous dépassons les frontières de la biologie, de la physique, et même de l'univers observable pour entrer dans le domaine des concepts philosophiques et métaphysiques. À cette échelle, le déplacement de l'escargot peut être perçu comme une représentation de notions universelles et intemporelles

ChatGPT

Pas évident de conclure après ça.

Dans l’article précédent, j’écrivais : “Et ils ne font pas que mémoriser : ils créent également une riche hiérarchie d'abstractions. C'est cette capacité à hiérarchiser et à abstraire qui leur permet de traiter des concepts plus complexes

Il semblerait bien que ce soit effectivement le cas.