- Génération IA
- Posts
- L'ingénierie de prompt : une recherche de programmes vectoriels ?
L'ingénierie de prompt : une recherche de programmes vectoriels ?
Selon François Chollet, de chez Google, un modèle de langage (comme GPT-4) peut être vu comme bien plus qu'une simple compilation d'informations. Il s'apparente aussi à une bibliothèque de "programmes" prêts à être activés.
Le 4 octobre dernier, un tweet de François Chollet a retenu mon attention. Il y exposait sa vision du Prompt Engineering, c’est à dire l’art de donner des instructions à des modèles d’IA comme ChatGPT.
Pour ceux qui ne sont pas familiers avec ce nom, petite introduction : François Chollet est un ingénieur et chercheur chez Google. Il est le créateur de Keras, une bibliothèque de deep learning (une technique d’intelligence artificielle) bien connue des développeurs. Il a également écrit le livre Deep Learning with Python. Bref, c'est du lourd.
Maintenant que les présentations sont faites, plongeons dans le vif du sujet. Pas de panique si vous ne comprenez pas. Voici ce que @fchollet a tweeté :
Le tweet de @fchollet
Heuuuu, vous êtes toujours là ? Bien, relisons la première phrase histoire de.
A LLM is a repository of many (millions) of vector programs mined from human-generated data, learned implicitly as a by-product of language compression. A "vector program" is just a very non-linear function that maps part of the latent space unto itself
Et là vous vous dîtes : ”mais oui bien sûr, c’est tout à fait ça, j’aurais pas dit mieux”. Ah, j’oubliais, certains parmi vous ne lisent pas l’anglais. Deepl, tu traduis s’il te plaît ?
Un LLM est un référentiel de plusieurs (millions) de programmes vectoriels extraits de données générées par l'homme, appris implicitement en tant que sous-produit de la compression du langage. Un "programme vectoriel" est simplement une fonction très non linéaire qui cartographie une partie de l'espace latent en elle-même
Hm, hmmm …
Vous n’avez rien compris ? Pas de panique
Mode Traduction : ON
Allez, on arrête de plaisanter et on se met au travail. Promis, ce n’est pas aussi compliqué que ça en a l’air.
Tout d’abord, un LLM est un grand modèle de langage. C’est le modèle d’IA derrière des outils comme ChatGPT ou Bard.
Selon François Chollet, un LLM peut être vu comme bien plus qu'une simple compilation d'informations. Il s'apparente aussi à une bibliothèque de "programmes" prêts à être activés. L'art du prompting réside dans la capacité à sélectionner le programme adéquat.
Imaginez que le LLM stocke en son sein une multitude de programmes : un pour répondre à des questions, un pour traduire, un pour raconter une histoire… Quand vous écrivez un prompt, vous cherchez et activez l’un de ces “programmes”.
Reprenons son exemple : “Réécris ce texte à la manière de Shakespeare”.
Ici, “Réécris Y à la manière de X” serait la recherche faite dans le LLM pour trouver le programme de “Réécriture“.
“Shakespeare” et le texte lui-même, eux, seraient les paramètres passés au programme. (X étant Shakespeare et Y, le texte).
Petite parenthèse : en programmation, on utilise des fonctions, des sortes de mini-programmes. Vous leur donnez des données (les entrées), elles effectuent une série d'instructions définies et vous renvoient un résultat (la sortie). Par exemple, imaginez une fonction qui additionne deux nombres. Si vous lui donnez "3" et "4" comme entrées, elle vous renverra "7" en sortie.
En code Python, cela ressemblerait à (voir image ci-dessous) :
Avec les LLMs, bien que la nature des “programmes” soit complètement différente, le principe reste le même : on fournit les données en entrée, on récupère le texte de sortie après l’exécution du programme.
Sur Google, quand vous n’êtes pas satisfaits des résultats de recherche, vous faites quoi ? Vous testez différents termes jusqu'à obtenir des résultats pertinents. Le prompt engineering ? Pareil. Ajustez et peaufinez empiriquement vos instructions jusqu'à ce que le LLM utilise le programme le plus efficace.
Le reste, dit-il, de l'anthropomorphisme qui n'a pas lieu d'être. Vous ne dialoguez pas avec une entité qui comprend le langage comme vous. Alors, arrêtez de faire comme si c'était le cas.
Gardez en tête que envisager un LLM comme un moteur de recherche de "programmes" est une manière simplifiée de voir les choses. Mais cette analogie peut vous aider à formuler des prompts efficaces.
Je ne sais pas si la manière dont François Chollet aborde l’ingénierie de prompt et les LLMs vous parle. A moi, oui ! Mon côté développeur, peut-être. Je ne sais pas, vous me direz.
Si elle fonctionne au moins pour certains d’entre vous, alors mission accomplie :-)
Pour les curieux : depuis son tweet, Chollet a publié l’article How I think about LLM prompt engineering dans lequel il développe sa pensée.