Dans un monde où les technologies évoluent à une vitesse fulgurante, il est essentiel de comprendre comment les utiliser efficacement. L’intelligence artificielle (IA) générative est désormais omniprésente et intégrée dans de nombreuses applications, notamment au travers des grands modèles de langage (LLM) comme ChatGPT ou Mistral. Chez Matters, nous avons accompagné plusieurs projets exploitant l'IA et avons remarqué un point de blocage récurrent : le Prompt. Ce texte, que vous fournissez au LLM afin d’obtenir une réponse, conditionne directement la qualité des résultats obtenus. Un prompt mal conçu peut produire des réponses inutilisables ou incohérentes. Cet article vise à démystifier le prompt et à vous initier aux bonnes pratiques pour l’optimiser. Que vous utilisiez un chatbot ou que vous intégriez un LLM dans une application, maîtriser l’art du prompt vous permettra d’obtenir de meilleurs résultats.
Un prompt peut remplir plusieurs rôles dans une interaction avec un LLM. Il en existe 3 types principaux :
Avant de structurer un prompt, il est utile de connaître quelques techniques d’optimisation, dîtes de “prompting”. Parmi elles, deux sont particulièrement efficaces :
Le Zero-Shot Prompting repose sur le fait que les LLM sont capables d'accomplir certaines tâches sans avoir besoin d'exemples préalables.
Exemple de prompt :
Exemple de réponse :
Ici, aucune explication n'est nécessaire, car l'IA sait déjà comment additionner des nombres.
Si une tâche est plus complexe, le Few-Shot Prompting permet de fournir des exemples pour guider le LLM.
Le "Few" indique le nombre d'exemples nécessaire pour avoir un résultat satisfaisant, on parle souvent de One-Shot ou Few-shot en fonction du nombre d'exemples donnés. Par exemple, demandons à un LLM de classifier des commentaires selon leur ton :
Prompt en zero-shot:
Ici, un LLM peut hésiter entre neutre ou positif. Il est possible, selon le LLM utilisé, que vous ayez déjà 100% de bonne réponse, car l’exemple reste basique. Ajoutons maintenant des exemples pour améliorer la précision du LLM :
Prompt few-shot:
Réponse :
Le Few-Shot Prompting est particulièrement utile pour les tâches complexes où l’IA pourrait hésiter.
Les LLM sont entraînés à simuler des réponses humaines. Il est donc important de fournir des instructions simples et précises car plus votre prompt sera grand, plus vous augmentez vos chances de perdre votre LLM.
Mauvais prompt :
Bon prompt :
Utiliser une mise en forme claire facilite la compréhension par le LLM. Il est recommandé de placer les instructions en début de prompt et d'utiliser des séparateurs (ex : "####"), des balises (ex : “<article>.....</article>”) ou bien des labels pour favoriser la compréhension du LLM.
Bon prompt :
Ici, on spécifie bien le bloc des instructions et l'input que le LLM doit utiliser. Garder à l'esprit que cet exemple reste simple, mais sur des tâches plus complexes, appliquer ce concept vous permettra d'améliorer la lisibilité de vos prompts et vos résultats.
Demander trop d’actions en une seule requête peut nuire aux résultats. Si votre requête est complexe, il est préférable de proposer une suite de prompts distincts et ainsi, de diviser vos instructions en plusieurs étapes.
Cela vous permettra, dans un premier temps, de séparer la complexité d’un prompt et donc, de faciliter le travail du LLM. Dans un second temps, d'itérer et de faire évoluer vos prompts sans avoir peur d'impacter les performances de l'autre.
Un LLM n’a pas de contexte en dehors de ce que vous lui fournissez (modulo les prompt système qui protège les chats comme chatGPT et autre, et donne un contexte général au LLM). Il est donc important de fournir à votre LLM toutes les informations de contexte nécessaire pour qu’il accomplisse la tâche voulu et éviter les suppositions erronées et ainsi, améliorer la qualité des réponses
Exemple sans contexte :
Exemple avec contexte :
Les LLM génèrent du texte librement, ce qui peut poser problème si vous avez des contraintes spécifiques (longueur, structure, style…). Établir des limites claires et définir le format attendu vous permettra d’améliorer la pertinence des résultats.
Exemple de contrainte de format :
Dans le cas de l'utilisation d'un LLM dans une application, il est aussi possible de demander un format structuré, comme le JSON par exemple.
Exemple de contrainte de format structurée :
Un prompt n’est jamais parfait du premier coup. Testez, analysez les résultats, et ajustez progressivement votre formulation. La ou un prompt trop vague donnera des réponses incohérentes, un prompt trop précis peut être rigide et limiter l’IA. Il vous faut donc trouver le juste niveau de structure et de détails pour obtenir le meilleur résultat.
Approche d’itération :
Pour que l'itération fonctionne, il est important de noter les versions de vos prompts et leurs résultats pour comparer les améliorations. Il est souvent difficile de savoir si une version est nécessairement meilleure qu'une autre, d'où l'intérêt de documenter toutes les versions et de garder une trace des résultats.
Un bon prompt est la clé pour exploiter pleinement les capacités d'un LLM. En appliquant ces techniques, vous optimiserez vos interactions avec l'IA, que ce soit pour un simple chatbot ou une application avancée.
Testez, ajustez et améliorez vos prompts en permanence. Plus vous serez précis, plus l'IA sera efficace pour répondre à vos besoins.
Bonne exploration du prompting !