Comment fonctionne l’ingénierie des invites
En raison de la façon dont les modèles OpenAI sont entraînés, certains formats d’invite fonctionnent particulièrement bien et produisent des résultats de modèle plus utiles. Le guide officiel d’ingénierie des invites d’OpenAI est généralement le meilleur point de départ pour obtenir des conseils sur les invites.
Ci-dessous, nous présentons plusieurs formats d’invite qui, selon nous, fonctionnent bien, mais n’hésitez pas à explorer d’autres formats qui pourraient mieux convenir à votre tâche.
Règles générales et exemples
Remarque : « {text input here} » est un espace réservé au texte ou au contexte réel
1. Utiliser le modèle le plus récent
Pour obtenir les meilleurs résultats, nous recommandons généralement d’utiliser les modèles les plus récents et les plus performants. Les modèles plus récents ont tendance à être plus faciles à optimiser par l’ingénierie des invites.
Remarque : Il y a certaines différences à prendre en compte entre l’invite d’un modèle de raisonnement et celle d’un modèle GPT. Plus de détails ici.
2. Placer les consignes au début de l’invite et utiliser ### ou """ pour séparer les consignes du contexte
Moins efficace ❌ :
Résume le texte ci-dessous sous forme de liste à puces des points les plus importants.
{text input here}Mieux ✅ :
Résume le texte ci-dessous sous forme de liste à puces des points les plus importants.
Texte : """
{text input here}
"""3. Être précis, descriptif et aussi détaillé que possible à propos du contexte, du résultat, de la longueur, du format, du style souhaités, etc.
Soyez précis à propos du contexte, du résultat, de la longueur, du format, du style, etc.
Moins efficace ❌ :
Écris un poème sur OpenAI. Mieux ✅ :
Écris un court poème inspirant sur OpenAI, en mettant l’accent sur le récent lancement du produit DALL-E (DALL-E est un modèle de ML texte-image), dans le style de {famous poet}4. Exprimer le format de sortie souhaité à l’aide d’exemples
Moins efficace ❌ :
Extrais les entités mentionnées dans le texte ci-dessous. Extrais les 4 types d’entités suivants : noms d’entreprise, noms de personnes, sujets précis et thèmes.
Texte : {text}Montrez et expliquez : les modèles répondent mieux lorsqu’on leur montre des exigences de format précises. Cela facilite aussi l’analyse fiable de plusieurs sorties par programmation.
Mieux ✅ :
Extrais les entités importantes mentionnées dans le texte ci-dessous. Extrais d’abord tous les noms d’entreprise, puis tous les noms de personnes, ensuite les sujets précis qui correspondent au contenu et enfin les thèmes généraux dominants
Format souhaité :
Noms d’entreprise : <liste_de_noms_d’entreprise_séparés_par_des_virgules>
Noms de personnes : -||-
Sujets précis : -||-
Thèmes généraux : -||-
Texte : {text}5. Commencer par le zero-shot, puis le few-shot; si aucun ne fonctionne, passer au fine-tuning
✅ Zero-shot
Extrais des mots-clés du texte ci-dessous.
Texte : {text}
Mots-clés :✅ Few-shot - fournir quelques exemples
Extrais des mots-clés des textes correspondants ci-dessous.
Texte 1 : Stripe fournit des API que les développeurs Web peuvent utiliser pour intégrer le traitement des paiements à leurs sites Web et applications mobiles.
Mots-clés 1 : Stripe, traitement des paiements, API, développeurs Web, sites Web, applications mobiles
##
Texte 2 : OpenAI a entraîné des modèles de langage de pointe qui excellent à comprendre et à générer du texte. Notre API donne accès à ces modèles et peut être utilisée pour résoudre pratiquement toute tâche qui implique le traitement du langage.
Mots-clés 2 : OpenAI, modèles de langage, traitement du texte, API.
##
Texte 3 : {text}
Mots-clés 3 :✅ Fine-tuning : consultez les bonnes pratiques de fine-tuning ici.
6. Réduire les descriptions « vagues » et imprécises
Moins efficace ❌ :
La description de ce produit devrait être assez courte, quelques phrases seulement, et pas beaucoup plus.Mieux ✅ :
Utilisez un paragraphe de 3 à 5 phrases pour décrire ce produit.7. Au lieu de dire seulement quoi ne pas faire, dites plutôt quoi faire
Moins efficace ❌ :
Ce qui suit est une conversation entre un agent et un client. NE DEMANDE PAS LE NOM D’UTILISATEUR NI LE MOT DE PASSE. NE RÉPÈTE PAS.
Client : Je n’arrive pas à me connecter à mon compte.
Agent :Mieux ✅ :
Ce qui suit est une conversation entre un agent et un client. L’agent tentera de diagnostiquer le problème et de suggérer une solution, tout en s’abstenant de poser des questions liées aux renseignements personnels. Au lieu de demander des renseignements personnels, comme un nom d’utilisateur ou un mot de passe, dirigez l’utilisateur vers l’article d’aide www.samplewebsite.com/help/faq
Client : Je n’arrive pas à me connecter à mon compte.
Agent :8. Spécifique à la génération de code : utiliser des « mots d’amorce » pour orienter le modèle vers un schéma particulier
Moins efficace ❌ :
# Écris une fonction Python simple qui
# 1. Me demande un nombre en miles
# 2. Convertit les miles en kilomètresDans l’exemple de code ci-dessous, l’ajout de « import » indique au modèle qu’il devrait commencer à écrire en Python. (De même, « SELECT » est un bon indice pour le début d’une instruction SQL.)
Mieux ✅ :
# Écris une fonction Python simple qui
# 1. Me demande un nombre en miles
# 2. Convertit les miles en kilomètres
import9. Utiliser la fonctionnalité Générer n’importe quoi
Les développeurs peuvent utiliser la fonctionnalité « Générer n’importe quoi » pour décrire une tâche ou le résultat attendu en langage naturel et recevoir une invite adaptée.
En savoir plus sur l’utilisation de la fonctionnalité « Générer n’importe quoi ».
Paramètres
En général, nous constatons que `model` et `temperature` sont les paramètres les plus couramment utilisés pour modifier la sortie du modèle.
`model` - Les modèles plus performants sont généralement plus coûteux et peuvent avoir une latence plus élevée.
`temperature` - Une mesure de la fréquence à laquelle le modèle produit un token moins probable. Plus la
temperatureest élevée, plus la sortie est aléatoire (et généralement créative). Cependant, ce n’est pas la même chose que la « véracité ». Pour la plupart des cas d’utilisation factuels, comme l’extraction de données et les questions-réponses véridiques, unetemperaturede 0 est préférable.`max_completion_tokens` (longueur maximale) - Ne contrôle pas la longueur de la sortie, mais définit une limite stricte pour la génération de tokens. Idéalement, vous n’atteindrez pas souvent cette limite, car votre modèle s’arrêtera soit lorsqu’il pense avoir terminé, soit lorsqu’il atteint une séquence d’arrêt que vous avez définie.
`stop` (séquences d’arrêt) - Un ensemble de caractères (tokens) qui, une fois générés, entraînent l’arrêt de la génération de texte.
Pour d’autres descriptions de paramètres, consultez la référence de l’API.
