Tutoriels de Pythonia
Guides, IA, tutos et newsletter pour devenir une bête en programmation

Mis à jour le Feb. 8, 2024, 8:55 a.m.
L'ère de l'intelligence artificielle (IA) et du machine learning (ML) a ouvert des horizons sans précédent dans le monde technologique, modifiant radicalement la manière dont nous interagissons avec les machines et les données. Au cœur de cette transformation réside une composante souvent sous-estimée mais cruciale : le Prompt Engineering. Cette discipline, relativement nouvelle, joue un rôle pivot dans l'optimisation de l'efficacité des modèles d'IA, en les guidant pour générer des réponses plus précises et pertinentes à partir de données brutes ou de requêtes utilisateur.
Le prompt engineering consiste à formuler des instructions ou des questions (prompts) de manière stratégique afin de provoquer les meilleures réponses possibles de la part d'un système d'IA. Dans un monde où l'interaction homme-machine devient de plus en plus naturelle et intuitive, maîtriser l'art du prompt devient une compétence inestimable pour les développeurs, les chercheurs et les praticiens de l'IA.
Dans cet article, nous plongerons dans les fondements du prompt engineering, explorant sa définition, son importance et comment il s'inscrit dans le développement de l'IA et du ML.
Si vous souhaitez passer directement à la pratique et éviter la théorie, rendez-vous directement sur les techniques.
Qu'est-ce que le prompt engineering?
Pourquoi le prompt engineering est-il Important ?
Principes Fondamentaux du prompt engineering
Techniques de bases du prompt engineering
Les éléments nécessaires à un bon prompt
Zero-shot prompting
Les techniques de prompts avancées
One-shot or few-shot prompting
Chain of Thought
Zero-Shot chain of thought
Défis et Limitations du prompt engineering
Conclusion
FAQ
Le prompt engineering, situé à l'intersection de l'informatique et de l'intelligence artificielle, est l'art de formuler des instructions ou des questions — les prompts — de manière à guider les modèles de langage basés sur l'IA vers la production de réponses ou d'actions spécifiques. Ces modèles, entraînés sur de vastes ensembles de données textuelles, ont la capacité de générer du texte, de répondre à des questions, ou même de créer du contenu en se basant sur les directives fournies par les prompts.
L'efficacité du prompt engineering réside dans sa capacité à transformer des requêtes souvent imprécises en commandes précises et ciblées, ce qui permet d'optimiser les résultats obtenus. Cette discipline exige une compréhension profonde du fonctionnement des modèles d'IA et de leur manière d'interpréter les données d'entrée. Les ingénieurs en prompt utilisent cette connaissance pour élaborer des prompts qui interagissent efficacement avec l'IA, en guidant ou en exploitant sa capacité de création selon les besoins.
Avec l'avancement rapide des modèles de langage, tels que les différentes versions du GPT (Generative Pre-trained Transformer) d'OpenAI, le prompt engineering est devenu de plus en plus crucial. Des prompts bien conçus peuvent améliorer la pertinence et la précision des réponses de l'IA, réduisant le besoin de cycles d'entraînement supplémentaires ou d'interventions manuelles.
En somme, le prompt engineering est une compétence clé pour ceux qui travaillent avec des technologies d'IA conversationnelle, offrant une nouvelle couche de contrôle et d'optimisation dans les interactions entre l'homme et la machine.
Le prompt engineering joue un rôle crucial dans le domaine de l'intelligence artificielle, particulièrement dans les applications impliquant le traitement du langage naturel et les modèles de langage génératif. Cette importance découle de plusieurs facteurs clés qui influencent directement l'efficacité et l'utilité des systèmes d'IA :
Le prompt engineering repose sur plusieurs principes fondamentaux qui guident les ingénieurs et les développeurs dans la création de prompts efficaces pour interagir avec les modèles d'IA. Ces principes sont essentiels pour tirer le meilleur parti des capacités des systèmes d'intelligence artificielle :
Rappel: un prompt correspond à l'entrée textuelle que les utilisateurs fournissent pour orienter la sortie du modèle. Les prompts incluent généralement des instructions, des questions, des données d'entrée et des exemples. En pratique, pour obtenir une réponse souhaitée d'un modèle d'IA, un prompt doit contenir soit des instructions soit des questions, les autres éléments étant optionnels.
Les prompts de base dans les modèles de langage peuvent être aussi simples que de poser une question directe ou de fournir des instructions pour une tâche spécifique. Les prompts avancés impliquent des structures plus complexes, comme le "chain of thought" (chaîne de pensée) prompting, où le modèle est guidé pour suivre un processus de raisonnement logique afin d'arriver à une réponse. Nous allons voir dans cette partie les éléments essentiels d'un bon prompt et quelques techniques plus avancées.
Donner des instructions claires
Résume cet article en trois phrases. Assure-toi de couvrir le thème principal,
les points clés et la conclusion.
Cette instruction est directe et spécifie exactement ce que l'utilisateur attend du modèle : un résumé en trois phrases qui couvre des aspects précis de l'article.
Être clair et concis
Traduis 'Bonjour, comment ça va ?' en espagnol.
Cet exemple est simple et va droit au but, sans ajouter d'informations superflues qui pourraient prêter à confusion.
Mettre le chatbot dans un role (role-prompting)
Imagine que tu es un guide touristique spécialisé dans l'histoire romaine.
Quels sites recommanderais-tu de visiter à Rome pour en apprendre davantage sur
l'histoire de la ville ?"
Ici, le prompt attribue un rôle spécifique au modèle, ce qui aide à contextualiser les réponses attendues et à guider le modèle pour qu'il fournisse des informations pertinentes selon le rôle assigné.
Utilisation de triple guillemets (""" Comme cela """)
""" Écris une courte histoire qui commence par : "Sous le ciel étoilé,
elle tenait la carte au trésor à l'envers."
Assure-toi que l'histoire soit aventureuse et captivante. """
Essayer plusieurs fois le même prompt
Première tentative :
"Liste cinq idées de cadeaux pour un amateur de science-fiction."
Deuxième tentative, légèrement modifiée pour obtenir des réponses
différentes ou plus précises :
"Cette fois, donne-moi cinq idées de cadeaux uniques pour un
fan de science-fiction qui aime aussi la technologie."
Répéter ou légèrement modifier le même prompt peut aider à affiner les réponses du modèle et à explorer différentes nuances ou angles d'une question. Cela peut être particulièrement utile pour obtenir des informations plus diversifiées ou créatives.
Ces exemples montrent comment structurer efficacement vos prompts pour améliorer la qualité et la pertinence des réponses obtenues, en tenant compte de la clarté, de la concision, du contexte, et de la manière dont vous engagez le modèle de langage.
Pourquoi faut il faire tout ça? Car les LLMs ont leur limites, à savoir qu'ils représentent une catégorie spécifique de réseaux neuronaux profonds qui mettent généralement en œuvre une variante de l'architecture Transformer. Les LLMs sont pré-entraînés pour prédire le prochain token (ou la prochaine syllabe/mot si vous préférez). Après le pré-entraînement, il est possible d'améliorer les LLMs de différentes manières pour en augmenter la performance (par exemple, en utilisant l'apprentissage par renforcement avec intervention humaine, le RLFH), mais ces modèles présentent toujours certaines limitations fondamentales, notamment :
Le "Zero-Shot Prompting" est une technique utilisée avec les modèles de langage artificiel, comme GPT (Generative Pretrained Transformer), où le modèle est sollicité pour répondre à une question ou accomplir une tâche sans avoir reçu d'exemples spécifiques lors de son entraînement pour cette tâche particulière. Cela signifie que le modèle doit s'appuyer uniquement sur ses connaissances préalables, acquises pendant la phase de pré-entraînement, pour générer une réponse pertinente. Voici comment cela fonctionne, illustré par un exemple :
Expliquez la différence entre un mammifère et un reptile
Dans ce cas, le modèle n'a pas été spécifiquement entraîné sur des exemples qui expliquent les différences entre mammifères et reptiles. Cependant, grâce à son entraînement général sur un large éventail de textes, le modèle a acquis des connaissances sur les caractéristiques des mammifères et des reptiles. Le modèle utilise alors ces connaissances pour générer une réponse qui pourrait inclure des points tels que les mammifères ayant des poils et allaitant leurs petits, tandis que les reptiles pondent des œufs et ont la peau couverte d'écailles.
Un autre exemple pourrait être:
Classe moi ces phrases selon ce qu'elles representent d'un point de vue émotionnel:
positif, negatif ou neutre.
Voici les phrases:
"J'ai trouvé ce film complètement pourri même si certains aspect étaient drôle"
"Je m'ennuie"
"Je suis super content d'aller à cette soirée"
"Je vais encore devoir parler à Lucas pour lui dire de freiner sur ses remarques
un peu rudes"
Le "Zero-Shot Prompting" exploite la capacité d'un modèle de langage à comprendre des concepts comme le "sentiment" sans nécessiter d'exemples spécifiques, illustrant ainsi ses compétences en zero-shot. L'ajustement par instructions et le renforcement par feedback humain (RLHF) améliorent cette capacité, en affinant les modèles pour qu'ils correspondent mieux aux préférences humaines, une technique qui sous-tend des innovations comme ChatGPT. Lorsque le zero-shot ne suffit pas, passer au "few-shot prompting" en fournissant des exemples spécifiques dans le prompt peut s'avérer efficace, une stratégie que nous explorerons plus en détail.
Comme nous l'avons vu précédemment, les modèles de langage de grande taille (LLM) montrent des capacités remarquables en zero-shot, c'est-à-dire leur aptitude à accomplir des tâches sans avoir été explicitement entraînés sur des exemples spécifiques de ces tâches. Cependant, leur performance peut être limitée pour des tâches plus complexes en utilisant uniquement le zero-shot. Le few-shot prompting est une technique qui permet un apprentissage contextuel en fournissant des exemples directement dans le prompt, améliorant ainsi la performance du modèle. Ces exemples conditionnent le modèle et le guide pour la génération de sa réponse.
Exemple de few-shot prompting:
Situation : "Je n'arrive pas à me concentrer sur mes études."
Conseil 1 : "Essayez de créer un espace de travail dédié, exempt de distractions,
pour améliorer votre concentration."
Conseil 2 : "Définissez des objectifs d'étude clairs et des pauses régulières pour
maintenir votre motivation."
Situation : "Je me sens toujours fatigué pendant la journée."
Conseil 1 : "Assurez-vous de dormir suffisamment chaque nuit et
d'établir une routine de sommeil régulière."
Conseil 2 : "Considérez l'introduction d'une activité physique régulière dans
votre routine pour améliorer l a qualité de votre sommeil et votre énergie globale."
Tâche : Donnez des conseils pour quelqu'un qui dit : "J'ai du mal à économiser de l'argent."
Réponse attendue (sans la fournir au modèle) : "Établissez un budget mensuel pour suivre vos dépenses et identifiez les domaines où vous pouvez réduire les coûts. Considérez également de mettre en place une petite somme d'épargne automatique dès la réception de votre salaire."
Dans cet exemple de few-shot prompting, les démonstrations fournies au modèle montrent comment aborder des situations problématiques courantes en offrant des conseils pratiques. En fournissant des exemples spécifiques de situations et de conseils correspondants, le modèle apprend à générer des réponses utiles et pertinentes pour une nouvelle situation présentée
Voyons ce que cela donne en pratique. Imaginons une tâche où le modèle doit créer des titres accrocheurs pour des articles de blog basés sur leur contenu, en utilisant la technique du few-shot prompting pour guider sa création. Voici comment cela pourrait se présenter :
Dans la technique du "chain of thought" (chaîne de pensée) prompting, on encourage explicitement le modèle à être factuel et correct en le forçant à suivre une série d'étapes dans son "raisonnement". Dans les exemples présentés dans les figures 4 et 5, nous utilisons des prompts structurés de la manière suivante :
"Question originale ?
Utilisez ce format :
Q : <répéter_la_question>
A : Réfléchissons étape par étape. <donner_le_raisonnement> Donc,
la réponse est <réponse_finale>."
Cette méthode guide le modèle à travers un processus de réflexion structuré, l'aidant à décomposer le problème et à construire sa réponse de manière logique et étape par étape.
Voici un exemple concret de prompt de ce style:
Un frigo contient des pommes, des oranges et des bananes.
Si je mange toutes les oranges, que reste-t-il dans le frigo ?
Utilisons une chaîne de pensée.
Q: Que reste-t-il dans le frigo ?
A: Réfléchissons étape par étape. Initialement, il y a des pommes,
des oranges et des bananes.
Si toutes les oranges sont mangées, il reste les pommes et les bananes.
Donc, la réponse est des pommes et des bananes
Voici un exemple avec le prompt que j'ai donné à chatgpt et sa réponse:
Cette technique combine le zero-shot(capacité d'un modèle d'intelligence artificielle à traiter une tâche sans exemples préalables spécifiques) vue précedemment, avec la CoT (Chain of thought) c'est à dire une méthode de 'raisonnement' étape par étape. Cette méthode est particulièrement utile pour guider les modèles de langage avancés, comme GPT, dans la résolution de problèmes complexes ou la génération de réponses à des questions nécessitant un raisonnement détaillé, même lorsqu'ils n'ont pas été explicitement entraînés pour ces tâches spécifiques.
Dans un scénario "Zero-Shot Chain of Thought", le modèle est invité à résoudre un problème ou à répondre à une question en décomposant intuitivement le processus de pensée nécessaire pour arriver à la solution, sans s'appuyer sur des exemples d'entraînement spécifiques pour cette tâche. Cela permet au modèle d'appliquer ses connaissances générales et sa compréhension du monde pour naviguer à travers le problème de manière logique et structurée.
Question : "Si une personne achète 3 pommes chaque jour pendant 5 jours,
combien de pommes aura-t-elle au total ?"
Réponse Zero-Shot Chain of Thought :
Identification de la tâche : Calculer le total des pommes achetées sur 5 jours.
Raisonnement : Si une personne achète 3 pommes chaque jour, alors en un jour,
elle aura 3 pommes.
Calcul : Pour 5 jours, elle achètera 3 pommes * 5 jours = 15 pommes.
Conclusion : Donc, au total, elle aura 15 pommes après 5 jours.
Cette approche ne se contente pas de fournir une réponse directe mais guide le modèle (et l'utilisateur) à travers le processus de pensée, rendant le raisonnement transparent et compréhensible. Le "Zero-Shot Chain of Thought" est particulièrement précieux pour les tâches où la logique, le raisonnement mathématique, ou la compréhension contextuelle profonde sont nécessaires pour générer une réponse correcte et justifiée.
Exemple concret de prompt :
Imaginez que vous avez un sac contenant uniquement des billes rouges, bleues et vertes.
Si le sac contient 15 billes rouges, deux fois plus de billes bleues que de billes rouges, et
le nombre de billes vertes est égal à la somme du nombre de billes rouges et bleues,
combien y a-t-il de billes au total dans le sac ?
Utilisons une chaîne de pensée pour résoudre
ce problème.
Malgré les avancées significatives et les possibilités enthousiasmantes qu'offre le prompt engineering dans le domaine de l'intelligence artificielle, il est important de reconnaître les défis et limitations inhérents à cette approche. La formulation précise des prompts requiert une compréhension approfondie du modèle et de ses capacités, ainsi qu'une capacité à anticiper comment différentes formulations peuvent influencer les réponses générées. De plus, les modèles de langage, même les plus avancés, peuvent parfois produire des réponses imprécises ou biaisées, reflétant les limitations des données sur lesquelles ils ont été entraînés. Ces défis soulignent l'importance d'une exploration continue et d'une expérimentation rigoureuse dans le prompt engineering, ainsi que le développement de techniques plus sophistiquées pour améliorer la fiabilité et la pertinence des réponses générées. En abordant ces défis de front, nous pouvons continuer à repousser les frontières de ce que les technologies d'IA peuvent accomplir, tout en restant conscients de leurs limites actuelles.
C'est pour cela que l'on peut utiliser les LLMs avec des RAG.Ou encore des agents (il y a des techniques de prompt engineering spécifiques aux agents), chainer tout ça etc. Plein de sujets que nous verrons dans les prochains tutoriels.
En conclusion, le prompt engineering ouvre des horizons fascinants dans le vaste univers de l'intelligence artificielle, offrant des outils puissants pour enrichir et affiner nos interactions avec les technologies de pointe. Comme nous l'avons vu, une maîtrise approfondie de cette discipline peut transformer la manière dont nous concevons et utilisons les modèles de langage, promettant des avancées significatives dans de nombreux domaines d'application.
Il existe un monde de possibilités encore plus avancées à explorer. Pour vous assurer de ne rien manquer des dernières innovations et des techniques de pointe en IA, nous vous invitons à vous inscrire à notre newsletter. En faisant partie de notre communauté, vous serez toujours à la page des dernières tendances, des tutoriels détaillés, et des conseils d'experts qui vous aideront à rester en avant-garde de la technologie.
Q : C'est quoi un prompt en informatique ?
R : En informatique, un prompt est une instruction donnée à un modèle d'IA pour générer une sortie spécifique. Il sert à guider le modèle dans la production de réponses ou d'actions en réponse à une entrée donnée.
Q : Qu'est-ce que le prompt engineering en lien avec l'IA ?
R : Le Prompt Engineering est une discipline qui se concentre sur la conception, le test et l'optimisation des prompts pour améliorer les réponses des modèles d'IA. Il est crucial dans le développement d'applications d'IA performantes, notamment pour le traitement automatique du langage naturel.
Q : Comment devenir prompt engineer ?
R : Devenir prompt engineer nécessite une formation solide en informatique et en IA, une expérience pratique avec des modèles d'IA, et une capacité à optimiser les interactions entre l'IA et les utilisateurs à travers des prompts efficaces.
Q : Les assertions sont-elles importantes pour le déploiement en production ?
R : Bien que le contexte de cette question soit différent du prompt engineering, il est bon de noter que dans le développement logiciel en général, les assertions sont souvent désactivées en production pour éviter des ralentissements. Toutefois, pour le prompt engineering spécifiquement, l'optimisation des prompts pour la production dépend plutôt de tests rigoureux et d'une évaluation de la performance des modèles d'IA dans des conditions réelles.
Chen, B., Zhang, Z., Langrené, N., & Zhu, S. (Oct 2023). Unleashing the potential of prompt engineering in large language models: A comprehensive review. Guangdong Provincial Key Laboratory of Interdisciplinary Research and Application for Data Science, BNU-HKBU United International College. Zhuhai 519087, China: Research Center for Mathematics, Beijing Normal University, No.18, Jingfeng Road, Zhuhai 519087, Guangdong, China.
White, J., Fu, Q., Hays, S., Sandborn, M., Olea, C., Gilbert, H., Elnashar, A., Spencer-Smith, J., & Schmidt, D. C. (Feb 2023). A prompt pattern catalog to enhance prompt engineering with ChatGPT. Department of Computer Science, Vanderbilt University. Nashville, TN, USA.
Amatriain, X. (2024, January 31). Prompt design and engineering: Introduction and advanced methods.
Oppenlaender, J., Linder, R., & Silvennoinen, J. (Date de publication). Prompting AI art: An investigation into the creative skill of prompt engineering. Elisa Corporation, Finland; University of Tennessee, United States; University of Jyväskylä, Finland.
https://platform.openai.com/docs/guides/prompt-engineering/strategy-write-clear-instructions
Nicaise - 04 Jan 2025 21:06
Envoyez le guide svp
Alex - 13 Mar 2025 10:44
Rentrez simplement votre email et vous le recevrez. Bonne journée