IA générative : les dix bonnes pratiques pour rédiger ses prompts
Poser les bonnes questions est essentiel pour utiliser efficacement l’IA générative. Découvrez 10 conseils pour rédiger des prompts clairs et utiles, et apprenez les erreurs communes à éviter ainsi que des conseils pour la génération d’images.
Depuis quelques mois, l’IA générative s’impose comme un outil de recherche, d’apprentissage, d’automatisation, de créativité et d’interaction.
Le mode d’accès le plus simple à un grand modèle de langage ou de diffusion n’est autre que le prompt.
Exprimé en langage naturel, un prompt n’est qu’une question à laquelle doit répondre le modèle ou une instruction qu’il doit suivre.
Or, l’IA a ses limites. Un système d’IA n’est pas conçu pour percevoir les intentions sous-jacentes d’un humain. Les prompts doivent donc être formulés avec soin, être correctement formatés et contenir des détails clairs.
Cette bonne manipulation des prompts s’apprend ou s’expérimente en profondeur.
Qu’est-ce qu’un prompt et le prompt engineering ?
Un prompt peut exprimer un questionnement ou une instruction simple. Par exemple, « En quelle année s’est déroulée la bataille de Marignan ? » ou « traduis ce texte en français ».
Les prompts peuvent cependant servir à effectuer des demandes beaucoup plus complexes et détaillées.
Il peut s’agir de réaliser un rapport de mission à partir de notes, de fournir une fiche produit, de rédiger un modèle d’offre d’emploi en respectant les méthodologies d’une entreprise, de générer une image originale, d’automatiser la création de messages dans un SI ou encore d’établir un planning. Ces prompts détaillés sont plus précis et donc plus longs à confectionner.
L’interface du système d’IA (le front-end) décompose l’invite en paramètres, puis exploite ces éléments pour accéder aux données et effectuer des tâches qui répondent à la demande de l’usager dans les limites des modèles et de l’ensemble de données sous-jacents du système.
Qu’est le rôle d’un prompt engineer ?
De prime abord, le concept de prompt est simple à comprendre. De nombreux utilisateurs ont pu tester ChatGPT et d’autres interfaces conversationnelles dissimulant un LLM.
Cependant, le niveau de complexité des prompts les plus efficaces réclame souvent l’expertise d’un professionnel, d’ores et déjà nommé « prompt engineer ».
Un ingénieur en prompt présente les compétences suivantes :
- Un savoir pratique de l’architecture du modèle sous-jacent ;
- Une compréhension du contenu et des limites des données d’apprentissage ;
- Les capacités pour agrandir le champ d’informations accessible au LLM pour affiner les résultats ;
- Une connaissance détaillée des mécanismes de l’interface du système d’IA, y compris les méthodologies de formatage et d’analyse.
Prétendre à ce niveau d’expertise n’est pas donné à tout le monde. C’est d’autant plus difficile que les modèles les plus performants, dont GPT-4 d’OpenAI et Claude 2 d’Anthropic, sont des « boîtes noires ». Seuls quelques-uns des procédés de fabrication sont publics.
Dix conseils pour améliorer ses prompts
Quel que soit votre niveau d’expérience en matière de data science, les dix conseils qui suivent peuvent vous aider à améliorer les résultats de vos instructions à un LLM ou à un modèle de diffusion.
1. Comprendre le résultat souhaité
La réussite d’une phase de prompt engineering dépend en grande partie de la connaissance des questions à poser et de la manière de les poser efficacement. Mais cela ne sert à rien si l’usager ne sait pas d’abord ce qu’il veut.
Avant qu’un utilisateur n’interagisse avec un outil d’IA, il est important de définir les objectifs et d’élaborer à l’avance un aperçu clair des résultats escomptés. En clair, une bonne planification s’impose.
2. La forme compte
Les systèmes d’IA peuvent traiter de simples demandes directes, formulées en langage courant. Mais les demandes complexes bénéficieront de requêtes détaillées et soigneusement structurées qui respectent une forme ou un format cohérent avec la conception interne du système.
Ce type de connaissances est essentiel pour les prompts engineers. La forme et le format peuvent différer pour chaque modèle, et certains outils, tels que les générateurs d’images, peuvent avoir une structure privilégiée qui implique l’utilisation de mots-clés à des endroits prévisibles. Par exemple, la société Kajabi recommande de format d’invite similaire pour son assistant d’IA conversationnel, Ama :
« Agis comme » + « et écris un » + « pour accomplir cet objectif » + « dans ce format imposé ».
Une entreprise pourrait souhaiter aider ses conseillers à produire plus rapidement le compte rendu d’une discussion téléphonique enregistrée, puis reportée en texte à l’aide d’un algorithme de « speech to text » afin d’envoyer un mail de suivi ou pour effectuer un court rapport.
Dans ce contexte, la requête ci-dessous permettrait d’obtenir un résultat convenable avec Ama.
« Agis comme un conseiller clientèle rédigeant un courriel de suivi à son client concernant cette conversation [insérer la transcription ici] en incluant les formes de politesse adaptées et une liste de points qui résume les questions posées, les réponses apportées et les actions envisagées ».
Sans la transcription, cette requête sert à produire un modèle type de courrier. La rejouer doit permettre d’obtenir plusieurs « templates ».
3. Formuler des demandes claires et précises
L’IA n’est ni psychique ni télépathique. Elle n’est pas votre meilleure amie et ne vous connaît pas depuis l’école primaire. Le système ne peut agir qu’en fonction de ce qu’il peut interpréter à partir d’un message donné.
Formulez des demandes claires, explicites et exploitables. Comprenez le résultat souhaité, puis décrivez la tâche à accomplir ou formulez la question à laquelle il faut répondre.
En injectant la transcription à l’exemple précédent, le brouillon obtenu permet ensuite au conseiller en chair et en os d’affiner les réponses apportées. Une version plus évoluée de ce prompt pourrait inclure l’historique des conversations antérieures avec le client, son profil ou les résumés préalablement produits. Ces détails supplémentaires assureraient une plus grande précision de la réponse.
4. Attention à la longueur
Les prompts peuvent être soumis à un nombre de caractères minimum et maximum. Plusieurs interfaces d’intelligence artificielle ne renseignent pas de limite stricte, mais les prompts extrêmement longs peuvent être difficiles à gérer pour les systèmes d’intelligence artificielle.
L’explication est simple. Un modèle de langage est une machine à prédire qui tente de prendre en compte l’interaction entre l’ensemble des mots à sa disposition pour fournir un résultat. Plus le texte s’étire, plus les notions sont complexes, plus la réponse sera longue à produire, et, dans le pire des cas de piètre qualité.
Le travail du prompt engineer ou de n’importe quelle personne qui souhaiterait exploiter un modèle d’IA générative est d’organiser, de prioriser les éléments essentiels dans un prompt afin d’obtenir une réponse satisfaisante.
Le premier indicateur à prendre en compte est la longueur de la fenêtre de contexte. Celle-ci renseigne le nombre de tokens – et donc de mots – qu’un modèle peut ingérer. Attention, car ce paramètre est partagé avec l’historique des conversations quand un LLM propulse un agent conversationnel. Cet avertissement ne s’applique pas à un utilisateur qui passerait par l’API d’un service NLG. Un modèle comme GPT-4 peut encaisser par défaut 8 000 tokens, environ 6 000 mots en anglais. La version la plus capacitaire du modèle d’OpenAI prend en charge 32 000 tokens, soit 24 000 mots en anglais. A contrario, ChatGPT pourrait assimiler 4 000 tokens, approximativement 3 000 mots.
5. Choisir ses mots avec soin
Comme tout système informatique, les outils d’IA peuvent réclamer un niveau de précision élevé et ne pas comprendre certaines instructions ou certains langages, suivant leurs jeux de données de préentraînement et d’entraînement.
De manière générale, les prompts les plus efficaces sont formulés de manière claire et directe. Évitez l’ambiguïté, les métaphores et l’argot, qui peuvent tous générer des sorties imprédictibles et indésirables.
Toutefois, l’ambiguïté et d’autres formes de style déconseillées peuvent parfois être employées dans le but délibéré de provoquer des résultats inattendus ou imprévisibles de la part d’un modèle. Cela peut produire des résultats intéressants, car la complexité de nombreux systèmes d’IA rend leurs processus de prise de décision opaques pour l’usager.
C’est aussi (et surtout) un moyen de mener des attaques par exemple contradictoires. Cette technique est utilisée pour trouver les prompts qui déclenchent des résultats biaisés, toxiques ou dangereux, et y remédier.
6. Poser des questions ou des demandes ouvertes
L’IA générative est conçue pour créer – c’est son but. La recherche de sorties binaires de type « oui ou non » est limitative et produira probablement de courts résultats inintéressants.
Poser des questions ouvertes permet d’obtenir des résultats beaucoup plus souples. Par exemple, une question simple telle que « La guerre de Sécession était-elle une question de droits des États ? ». En revanche, une question plus ouverte, telle que « Décrivez les facteurs sociaux, économiques et politiques qui ont conduit au déclenchement de la guerre de Sécession », est beaucoup plus susceptible de susciter une réponse complète et détaillée.
7. Inclure le contexte
Un outil d’IA générative peut calibrer ses résultats à un large éventail d’objectifs et d’attentes, qu’il s’agisse de résumés courts et généraux ou de rapports longs et détaillés. Pour tirer parti de cette polyvalence, les prompts biens conçus incluent souvent un contexte qui aide le système d’IA à adapter ses sorties au public visé par l’usager.
Plus haut, nous avons évoqué la mise en contexte des prompts pour répondre à un client ayant contacté un service clientèle. Dans un agent conversationnel, ce contexte peut correspondre aux informations que cherche à obtenir un utilisateur. Par exemple, un usager pourrait demander les horaires d’ouverture d’une chaîne de magasins. Une enseigne peut spécifier ces informations dans un préprompt. Il est possible de tester ce cas d’usage avec ChatGPT à l’aide des « customs instructions » qui permettent de nourrir le modèle d’éléments supplémentaires en 3 000 signes maximum.
Il y a d’autres formes de contexte. Un prompt engineer ou un utilisateur peut préciser la tonalité d’un modèle suivant l’audience cible (un jeune de 18-24 ans, une catégorie socioprofessionnelle, etc.) ou encore le niveau de langage souhaité.
8. Établir des barrières pour limiter la longueur des résultats
Bien que l’IA générative soit conçue pour être créative, il est souvent judicieux d’introduire des garde-fous sur des facteurs tels que la longueur des résultats. Les éléments de contexte dans les invites peuvent inclure la demande d’une réponse simplifiée et concise par rapport à une réponse longue et détaillée, par exemple.
Il faut toutefois garder à l’esprit que les outils d’IA générative ne peuvent généralement pas respecter des limites précises de mots ou de caractères. En effet, les modèles de traitement du langage naturel tels que le GPT-3 sont formés pour prédire les mots sur la base de modèles linguistiques, et non de leur nombre. Ainsi, les LLM peuvent suivre des indications approximatives telles que « Fournis une réponse de deux ou trois phrases », mais ils ont du mal à quantifier les caractères ou les mots.
9. Éviter les termes contradictoires
De longues invites complexes comportent parfois des termes ambigus ou divergents. Par exemple, un prompt qui contient à la fois les mots « détaillé » et « résumé » peut donner au modèle des informations contradictoires sur le niveau de détail attendu et la longueur du résultat. Les prompts engineers prennent soin de revoir la formation du prompt et de s’assurer que tous les termes sont cohérents.
La plupart des modèles de langage nécessitent d’utiliser des termes positifs. Avec ceux-là, une bonne règle empirique est la suivante : écrivez plutôt « fais » que « ne fais pas ».
10. Utiliser la ponctuation pour clarifier les messages complexes
Tout comme les humains se fient à la ponctuation pour analyser un texte, les messages d’IA peuvent également bénéficier d’une utilisation judicieuse des virgules, des guillemets et des retours à la ligne pour aider le système à analyser un message complexe et à l’exploiter.
Prenons l’exemple simple de la grammaire de l’école élémentaire : « Mangeons grand-mère » contre « Mangeons, grand-mère ». Les prompts engineers doivent être au fait des spécificités des modèles et des interfaces qu’ils emploient. Les fournisseurs de LLM et des interfaces effectuent des recommandations en matière de signe de ponctuation.
Conseils supplémentaires pour générer des images
Les 10 conseils mentionnés ci-dessus sont principalement associés aux LLM, tels que ChatGPT. Cependant, un nombre croissant de plateformes de génération d’images démergent et peuvent utiliser des éléments ou des paramètres d’invite supplémentaires dans les requêtes.
Lorsque vous travaillez en particulier avec des outils comme Midjourney et Stable Diffusion, gardez à l’esprit les sept indications suivantes :
- Décrire l’image. Donnez quelques détails sur la scène – un paysage urbain, un champ ou une forêt – ainsi que des informations spécifiques sur le sujet. Lorsque vous représentez des personnes en tant que sujets, soyez explicite sur les caractéristiques physiques pertinentes, telles que la couleur de peau, l’âge et le sexe.
- Décrire l’ambiance. Incluez des descriptions d’actions, d’expressions et d’environnements.
- Décrire l’esthétique. Déterminez le style général souhaité pour l’image résultante, comme l’aquarelle, la sculpture, l’art numérique ou la peinture à l’huile. Vous pouvez même dépeindre des techniques ou des styles artistiques, comme l’impressionnisme, ou un exemple d’artiste, comme Monet.
- Décrire le cadrage. Définissez la manière dont la scène et le sujet doivent être cadrés : grand angle, gros plan, plan américain, etc.
- Décrire l’éclairage. Décrivez comment la scène doit être éclairée en utilisant des termes tels que matin, lumière du jour, soirée, obscurité, lumière du feu et lampe de poche. Tous ces facteurs peuvent influer sur la lumière et les ombres.
- Décrire la coloration. Indiquez comment la scène doit être colorée à l’aide de descripteurs tels que saturé ou feutré.
- Décrire le niveau de réalisme. Les rendus artistiques d’IA peuvent aller de l’abstrait à la caricature en passant par le photoréalisme. Veillez à indiquer le niveau de réalisme souhaité pour l’image résultante.
Précisons que le neuvième conseil s’applique avant tout au grand modèle de langage. Les modèles de diffusion peuvent exploiter des prompts négatifs. Les interfaces des modèles de génération d’images embarquent un moyen de signifier les éléments que l’on souhaite éviter dans le contenu à créer. Aberrations chromatiques, déformations d’un visage ou d’un corps, style grossier, pixels visibles, rendu non souhaité, watermarks… Un ensemble d’instructions permettent d’affiner le résultat. Midjourney n’a pas d’UI pour pointer ces negative prompts au modèle. Pour autant, la commande « --no » suivi de l’élément ou du concept à éviter sert la même fonction. À l’inverse, il est possible d’indiquer par des parenthèses, des valeurs comprises entre -1 et 1 (-2 et 2 avec Midjourney) des concepts plus importants ou moins importants dans une image. Par exemple, l’on peut vouloir mettre l’accent sur le détail apporté à la génération du cheval plutôt qu’à son cavalier, vu de dos.
Éviter les erreurs courantes
Pour l’heure, l’élaboration de prompts relève plus de l’art que de la science. Des différences subtiles dans le format, la structure et le contenu des invites peuvent avoir des effets profonds sur les réponses de l’IA. Même des nuances dans la manière dont les modèles d’IA sont entraînés peuvent aboutir à des résultats différents. Il est toutefois possible de jouer sur le paramètre de la température d’un LLM ou d’un modèle de diffusion.
Il existe plusieurs erreurs courantes à éviter en matière de prompts engineering :
- N’ayez pas peur de tester et de modifier. Trouver le bon prompt du premier coup n’est pas chose aisée. Si ce n’est pas impossible, les modèles d’IA générative demandent généralement une grande attention aux détails. Il faut donc procéder par itération afin de trouver les prompts obtenant les réponses les plus satisfaisantes.
- Ne cherchez pas (forcément) de réponses courtes. L’IA générative est conçue pour être créative, il faut donc formuler des invites qui exploitent au mieux les capacités du système d’IA. Il est possible d’obtenir des réponses courtes en renseignant des données en préprompt (les customs instructions de ChatGPT permettent de tester cette fonctionnalité), mais l’IA générative est bien plus utile lorsque les invites sont ouvertes.
- Ne vous en tenez pas à la température par défaut. De nombreux outils d’IA générative intègrent un paramètre de « température » qui, en termes simples, contrôle la créativité de l’IA. En fonction de votre requête spécifique, essayez d’ajuster les paramètres souvent compris entre 0 et 1. Réglé sur 0, ce paramètre favorisera la consistance des réponses. Sur 1, les résultats seront bien plus variés, aléatoires, voire inconstants.
- N’utilisez pas la même séquence dans chaque prompt. Les invites peuvent être des requêtes complexes comportant de nombreux éléments différents. L’ordre dans lequel les instructions et les informations sont assemblées dans un prompt peut affecter le résultat en changeant la façon dont l’IA l’analyse et l’interprète. Essayez de modifier la structure de vos invites pour obtenir des réponses diverses.
- N’adoptez pas la même approche pour chaque système d’IA. Les modèles ayant des objectifs et des domaines d’expertise différents, le fait de poser la même question à différents outils d’IA peut produire des résultats sensiblement distincts. Adaptez vos prompts aux forces uniques du modèle avec lequel vous travaillez. Dans certains cas, une phase d’entraînement supplémentaire, telle que l’introduction de nouvelles données ou un retour d’information plus ciblé, peut s’avérer nécessaire pour affiner les réponses de l’IA.
- N’oubliez pas que l’IA peut se tromper. Le célèbre axiome informatique « garbage in, garbage out » s’applique parfaitement aux sorties d’un LLM. Les réponses du modèle peuvent être erronées, incomplètes ou tout simplement inventées, un phénomène souvent appelé hallucination. Il convient de toujours vérifier les faits pour s’assurer que les résultats de l’IA ne contiennent pas d’informations inexactes, trompeuses, biaisées ou plausibles, mais incorrectes.