Prompt engineering pour l'IA générative

L'ingénierie des requêtes est l'art de poser la bonne question pour obtenir les meilleurs résultats d'un LLM. Il permet une interaction directe avec le LLM à l'aide de que les requêtes en langage clair.

Auparavant, l'utilisation de modèles de machine learning nécessitait généralement connaissance des ensembles de données, des statistiques et des techniques de modélisation. Aujourd'hui, les LLM peuvent être "programmée" en anglais, ainsi que autres langues.

Être un bon ingénieur de requêtes ne nécessite pas d'expérience en codage. Créativité et la persévérance vous sera très bénéfique tout au long de votre parcours. Poursuivez votre lecture certaines techniques de requête utiles.

Bonnes pratiques concernant les requêtes

  1. Indiquez clairement le contenu ou les informations les plus importants.

  2. Structurez la requête: commencez par définir son rôle, fournissez le contexte/des données d'entrée, puis donnez-lui les instructions.

  3. Utilisez des exemples spécifiques et variés pour aider le modèle à se concentrer des résultats plus précis.

  4. Utilisez des contraintes pour limiter le champ d'application de la sortie du modèle. Cela permet d'éviter se détourner des instructions en inexactitudes factuelles.

  5. Décomposez les tâches complexes en une séquence d'invites plus simples.

  6. Demander au modèle d'évaluer ou de vérifier ses propres réponses avant de produire de l'IA générative. ("Assurez-vous de vous limiter à trois phrases", "Évaluez votre travail sur une échelle de 1 à 10 pour la concision", "Pensez-vous que c'est correct ?").

Et peut-être le plus important:

Soyez créatif ! Plus vous êtes créatif et que vous soyez ouvert d'esprit, meilleurs seront vos résultats. LLM et requêtes l’ingénierie en sont encore à leurs balbutiements et évoluent de jour en jour.

Types de requêtes

Requête directe (Zero-shot)

La requête directe (également appelée "Zero-shot") est le type de requête le plus simple. Il ne fournit aucun exemple au modèle, mais uniquement les instructions. Vous pouvez également formuler les une instruction comme question, ou un "rôle" au modèle, comme vous pouvez le voir dans l'exemple ci-dessous.

Fournissez les informations suivantes:

  1. Instruction
  2. Quelques éléments de contexte

Génération d'idées:

Prompt: Can you give me a list of ideas for blog posts for tourists visiting
New York City for the first time?

Invite de rôle:

Prompt: You are a mighty and powerful prompt-generating robot. You need to
understand my goals and objectives and then design a prompt. The prompt should
include all the relevant information context and data that was provided to you.
You must continue asking questions until you are confident that you can produce
the best prompt for the best outcome. Your final prompt must be optimized for
chat interactions. Start by asking me to describe my goal, then continue with
follow-up questions to design the best prompt.

Organisation des données:

Prompt: Create a four-column spreadsheet of 10 highly-rated science fiction
movies, year of release, average audience rating, and top 3 keywords from
audience reviews.

Make sure to cite the source of the audience rating.

Requêtes avec des exemples (modes one, few et multiple)

La requête one-shot montre au modèle un exemple clair et descriptif de ce que que vous souhaitez imiter.

Génération d'idées à l'aide d'un exemple:

Prompt:

Come up with a list of ideas for blog posts for tourists visiting
New York City for the first time.

1. Fuggedaboutit! Where to Stay in New York City On Your First Visit

Avec les requêtes few-shot et multi-shot, le modèle affiche plus d'exemples de ce que vous souhaitez ce qu'il faut faire. Cette méthode est plus efficace que le modèle zero-shot pour les tâches plus complexes, la réplication, ou lorsque vous souhaitez que la sortie soit structurée spécifique difficile à décrire.

Classification des sentiments few-shot:

Prompt:

Great product, 10/10: Positive
Didn't work very well: Negative
Super helpful, worth it: Positive
It doesn't work!:

Lorsque cette invite est exécutée, la réponse du modèle est de classer travail' comme positif ou négatif, comme indiqué dans les exemples.

Prédicteur de réponse emoji en mode rafale:

Prompt: Predict up to 5 emojis as a response to a text chat message. The output
should only include emojis.

input: The new visual design is blowing my mind 🤯
output: ➕,💘, ❤‍🔥

input: Well that looks great regardless
output: ❤️,🪄

input: Unfortunately this won't work
output: 💔,😔

input: sounds good, I'll look into that
output: 🙏,👍

input: 10hr cut of jeff goldblum laughing URL
output: 😂,💀,⚰️

input: Woo! Launch time!

Même processus ici, mais comme la requête est plus complexe, le modèle a été plus d'exemples à émuler.

Requêtes en chaîne de pensée

Les requêtes de chaîne de pensée (CoT) encouragent le LLM à expliquer son raisonnement. Combinez-le avec les requêtes few-shot pour obtenir de meilleurs résultats sur des tâches plus complexes qui nécessitent un raisonnement avant une réponse.

Prompt:

The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
A: Adding all the odd numbers (9, 15, 1) gives 25. The answer is False.
The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
A:

CoT zero-shot

Pour reprendre la requête zero-shot de tout à l'heure, cette approche prend une approche zero-shot et ajoute l'instruction suivante : "Réfléchissons étape par étape". Le LLM est capable de générer une chaîne de pensée à partir de cette instruction, et généralement une bonne réponse. Il s'agit d'une excellente approche pour que les LLM génèrent des des réponses pour des choses comme des problèmes écrits.

Prompt:

I went to the market and bought 10 apples. I gave 2 apples to the neighbor and
2 to the repairman. I then went and bought 5 more apples and ate 1. How many
apples was I left with?

Let's think step by step.

Stratégies d'itération des invites

Apprends à aimer la réalité des réécritures de plusieurs (voire des dizaines) de requêtes fois. Voici quelques idées pour affiner les requêtes si vous êtes bloqué:

Remarque:Ces stratégies peuvent devenir de moins en moins utiles ou nécessaires au fil du temps, s'améliorent.

  1. Répéter des mots, des expressions ou des idées clés

  2. Spécifiez le format de sortie souhaité (CSV, JSON, etc.).

  3. Mettez toutes les majuscules pour souligner des points ou des instructions importants. Vous pouvez également essayer Exagération ou langage hyperbolique par exemple : « Votre explication doit être absolument impossible à mal interpréter. Chaque mot doit transparaître de façon claire !"

  4. Utilisez des synonymes ou une autre formulation (par exemple, au lieu de "Résumer", essayez Ajout de "tldr" à un texte d'entrée). Intervertir des mots ou des expressions et documentez ceux qui fonctionnent le mieux et ceux qui sont le pire.

  5. Essayez la technique du sandwich avec de longues requêtes: ajoutez la même phrase dans différents endroits.

  6. Inspirez-vous d'une bibliothèque de requêtes. Image héros de l'invite et cette galerie des requêtes sont deux bons points de départ.

Ressources supplémentaires

Bonnes pratiques concernant les requêtes

Découvrir les invites (externe)