Introduction à l’ingénierie d’invite

Les modèles GPT-3, GPT-3.5 et GPT-4 d’OpenAI sont basés sur des invites. Dans le cas d’un modèle basé sur des invites, l’utilisateur interagit avec le modèle en entrant une invite de texte, à laquelle le modèle répond par une saisie semi-automatique. Cette saisie semi-automatique est la continuation du texte d’entrée par le modèle.

Bien que ces modèles soient extrêmement puissants, leur comportement est également très sensible à l’invite. La construction de l’invite est dès lors une compétence importante à développer.

La construction de l’invite peut être difficile. Dans la pratique, l’invite agit pour configurer les pondérations du modèle pour accomplir la tâche souhaitée. Il s’agit toutefois plus d’un art que d’une science, qui nécessite souvent de l’expérience et de l’intuition pour créer une invite réussie. Cet article visé à vous aider à vous familiariser avec ce processus d’entraînement. Il tente de présenter les concepts généraux et les modèles qui s’appliquent à tous les modèles GPT. Toutefois, il est important de comprendre que chaque modèle se comporte d’une manière qui lui est propre, de sorte que les entraînements peuvent ne pas s’appliquer de la même façon à tous les modèles.

Concepts de base

Cette section décrit les concepts et les éléments de base des invites GPT.

Les invites de texte sont la façon dont les utilisateurs interagissent avec les modèles GPT. À l’instar de tous les modèles linguistiques génératifs, les modèles GPT essaient de produire la série de mots qui sont le plus susceptibles de suivre le texte précédent. C’est comme si l’on disait « Quelle est la première chose qui vous vient à l’esprit quand je dis <prompt> ? ». Les exemples ci-dessous illustrent ce comportement. Quand il rencontre les premiers mots d’un contenu célèbre, le modèle est en mesure de poursuivre le texte avec précision.

Prompt Completion
Il y a quatre-vingt-sept ans, nos pères donnèrent naissance sur ce continent à une nouvelle nation conçue dans la liberté et vouée à la thèse selon laquelle tous les hommes sont créés égaux. […]
« Appelons-moi Ismaël. » « Il y a quelque temps - le nombre exact des années n’a aucune importance -, n’ayant que peu ou point d’argent en poche, et rien qui me retînt spécialement à terre, l’idée me vint et l’envie me prit de naviguer quelque peu et de m’en aller visitant les étendues marines de ce monde. » [...]

À mesure que vous développez des invites plus complexes, il est utile de garder ce comportement fondamental à l’esprit. Quelle que soit l’invite fournie, le modèle répond simplement avec le contenu qui est, selon lui, le plus probable (compte tenu de ses données et de ses cibles d’entraînement). Si vous posez une question dans votre invite, le modèle ne suit pas un chemin de code de type « Q&A » distinct, il répond plutôt à la question, car une réponse est le type de réaction le plus probable pour la question donnée en tant qu’entrée.

Composants d’invite

Lorsque vous utilisez l’API Completion alors qu’il n’existe aucune différenciation entre les différentes parties de l’invite, il peut toujours être utile, à des fins d’apprentissage et de discussion, d’identifier les composants d’invite sous-jacents. Avec l’API Chat Completion, il existe des sections distinctes de l’invite qui sont envoyées à l’API sous la forme d’un tableau de dictionnaires avec des rôles associés : système, utilisateur et assistant. Ce guide se concentre plus généralement sur la façon d’envisager la construction des invites plutôt que de fournir des conseils prescriptifs spécifiques à une API plutôt qu’à une autre.

Il est également important de comprendre que, bien qu’il puisse y avoir d’autres moyens valides de disséquer les invites, l’objectif de cette décomposition est de fournir un moyen relativement simple d’envisager la construction des invites. Avec l’API Completion, tous les composants sont facultatifs, mais au moins un doit être présent et la plupart des invites incluent plusieurs composants. Il peut également y avoir une zone grise entre les composants. L’ordre présenté ci-dessous correspond approximativement à la fréquence d’utilisation de chaque composant, du plus fréquent au moins fréquent.

Instructions

Les instructions sont probablement le composant d’invite le plus couramment utilisé. Elles indiquent simplement au modèle ce qu’il faut faire. Ce concept est simple, mais, dans la pratique, les instructions peuvent être complexes. Le tableau ci-dessous illustre ce principe en montrant des instructions simples et plus complexes, sous deux formes différentes.

Type d’instruction Prompt Completion
Instructions simples Rédiger une introduction pour un bulletin d’informations hebdomadaire. Bienvenue dans notre bulletin d’informations hebdomadaire. Cette semaine, nous allons mettre l’accent sur la productivité. Nous allons partager des conseils et des astuces permettant d’améliorer votre productivité dans tous les secteurs de votre vie. Nous espérons qu’ils vous seront utiles. N’hésitez pas à les partager avec vos amis !
Instructions complexes Rédiger une introduction pour un bulletin d’informations hebdomadaire à mon entreprise nommée Contoso. Elle doit mentionner la grande réunion que nous avons eue la semaine dernière et remercier l’équipe de son travail acharné au cours de ces derniers mois. Bienvenue dans le bulletin d’informations hebdomadaire de Contoso ! La semaine dernière, nous avons eu une grande réunion et j’en profite pour remercier l’équipe de son travail acharné au cours de ces derniers mois. Notre avenir est radieux et je suis convaincu que nous réaliserons de grandes choses grâce au dévouement et à l’engagement de notre équipe. Je vous remercie de faire partie de notre équipe et j’ai hâte de travailler avec vous dans les semaines et les mois à venir. Cordialement, [Votre nom].
Instructions complexes Rédiger une introduction pour un bulletin d’informations hebdomadaire, qui contient les éléments suivants :
- Mon entreprise s’appelle Contoso
- Salutations grandioses
- Remerciements à l’équipe pour son travail acharné pendant ces derniers mois difficiles
- Perspectives positives pour le trimestre à venir
- Signature de la direction
Bonjour à tous les membres de l’équipe Contoso ! Je tenais à vous remercier de tout le travail que vous avez accompli au cours de ces derniers mois. Cette période a été difficile, mais vous avez tous fait un travail incroyable. Je suis très fier de chacun de vous. À l’approche du prochain trimestre, je suis empli de confiance. Je pense sincèrement que nous allons réaliser de grandes choses. Merci encore, la direction.

Contenu principal

Le contenu principal désigne du texte traité ou transformé par le modèle. Il est généralement utilisé avec des instructions. La traduction dans une autre langue est un exemple simple. Dans l’exemple ci-dessous, le texte anglais est considéré comme le contenu principal, tandis que « Traduire en français : » est une instruction.

Demander Completion
Can you please tell me how to get to the museum?
Traduire en français :
Pouvez-vous s'il vous plaît me dire comment aller au musée?

Le contenu principal peut également être beaucoup plus long. Dans l’exemple suivant, le contenu principal est la section d’introduction de l’entrée Wikipédia sur la complexité temporelle (en anglais), qui contient près de 300 mots. Ce contenu a été abrégé dans le tableau pour en faciliter l’affichage.

Prompt Completion
In computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by [...]
Résumer le texte précédent en quelques phrases :
Time complexity is a measure of how long an algorithm takes to run. It is typically expressed as a function of the size of the input. The most common measure is worst-case time complexity, which is the maximum amount of time required for inputs of a given size.
In computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by [...]
TL;DR (Trop long, pas lu)
The time complexity of an algorithm is the amount of time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations performed by the algorithm, supposing that each elementary operation takes a fixed amount of time to perform. The time complexity is generally expressed as a function of the size of the input.

Les modèles GPT peuvent également gérer du contenu principal structuré. Dans l’exemple ci-dessous, un fichier TSV sur les bières belges (abrégé à des fins d’affichage dans cet article) est transmis au modèle dans le cadre de l’invite. Il est capable d’interpréter correctement le contenu et de répondre aux questions sur les données.

Prompt Completion
Belgian Beer Brands
Beer name Beer style color ABV Brewery
"Chimay Gold: ""Doree""" trappist pale ale gold 4.80% Chimay Brewery (official trappist)
"Chimay Blue: ""Grande Reserve""" trappist dark ale dark 9.00%
[…]
En référence au tableau ci-dessus, combien de bières ont un degré d’alcool inférieur à 6 % ?
Dans le tableau, il y a 10 bières dont le degré d’alcool est inférieur à 6 %.

Exemples

Les invites réussies s’appuient souvent sur la pratique de l’apprentissage « en un coup » ou « en quelques coups ». Ce principe fait référence à l’inclusion d’un ou de plusieurs exemples du comportement souhaité du modèle, généralement en incluant des paires d’entrée et de sortie. Il ne s’agit pas d’un apprentissage dans le sens où le modèle est modifié de façon permanente. En lieu et place, les exemples conditionnent le modèle à répondre comme souhaité uniquement pour l’inférence actuelle. L’utilisation d’invites sans exemples est parfois appelée apprentissage « zéro coup ». Avec l’API Chat Completion, les exemples d’apprentissage en quelques coups sont généralement ajoutés au tableau de messages sous la forme d’exemples d’interactions utilisateur/assistant après le message système initial.

Type d’apprentissage Prompt Completion
Zéro coup Titre : Le coach confiant que la blessure ne perturbera pas les Warriors
Rubrique :
Le coach est confiant que la blessure ne perturbera pas la saison des Warriors. L’équipe reste concentrée sur ses objectifs et continuera à travailler dur pour les atteindre.
Quelques coups Titre : Correa des Twins va faire appel à un agent libre
Rubrique : Baseball
Titre : Des zones de dégrisement prévues à la Coupe du monde au Qatar
Rubrique : Football
Titre : Yates : Actualité Fantasy Football - Semaine 6
Rubrique : Football américain
Titre : Le coach confiant que la blessure ne perturbera pas les Warriors
Rubrique :
Basket

L’exemple ci-dessus illustre l’utilité de l’apprentissage en quelques coups. Sans les exemples, le modèle semble deviner le comportement souhaité, tandis que les exemples montrent clairement au modèle comment procéder. Cela illustre également la puissance du modèle, qui peut déduire la catégorie d’étiquette souhaitée, même sans étiquette « basket » dans les exemples.

Signal

Les signaux servent de « coup d’envoi » pour la sortie du modèle, ce qui permet de diriger le modèle vers la sortie souhaitée. Il s’agit souvent d’un préfixe qui sert de base au modèle. Dans l’exemple ci-dessous, nous montrons le signal qui dirige l’histoire pour inclure des éléments clés. Les signaux sont souvent, mais pas toujours, utilisés avec des instructions. Dans les exemples ci-dessous, le modèle est utilisé pour résumer un long courrier d’annonce. Un indicateur est utilisé dans un cas pour vous aider à cibler la sortie du modèle et à suggérer un format de sortie spécifique (puces) dans l’autre.

Dans le contexte de l’API Chat Completion, les instructions prennent la forme du message système, et des exemples en quelques coups sont indiqués en fournissant une série d’exemples d’interactions utilisateur/assistant pour aider à amorcer le modèle.

Nombre d’indicateurs Prompt Completion
0 Les évaluations des performances sont un composant essentiel de l’approche Performances et développement de Contoso. […]
Résumer le courrier ci-dessus :
L’objectif de cet e-mail est d’informer les employés des modifications récentes apportées à l’évaluation des performances, qui fait partie de l’approche Performances et développement de Contoso. Les modifications incluent une structure améliorée, une expérience utilisateur dans l’outil mise à niveau et des invites ciblées. De plus, il existe désormais une section de déclencheurs de conversation facultative qui permet aux employés de signaler les sujets dont ils souhaitent discuter avec leurs responsables.
1 Les évaluations des performances sont un composant essentiel de l’approche Performances et développement de Contoso. […]
Résumer le courrier ci-dessus :
Les informations principales du message sont
que Contoso améliore l’expérience d’évaluation des performances en la rendant plus axée sur les priorités, les attentes et l’impact. De plus, l’expérience utilisateur dans l’outil est mis à niveau avec des conseils, des ressources et des instructions. Enfin, le message contient des instructions sur l’activation des priorités fondamentales à l’échelle de l’entreprise.
2 Les évaluations des performances sont un composant essentiel de l’approche Performances et développement de Contoso. […]
Résumer le courrier ci-dessus :
Points essentiels :
Contoso introduit des modifications dans l’expérience d’évaluation des performances à la suite des commentaires des employés.
• Les modifications incluent une nouvelle perspective sur les priorités, les attentes et l’impact, une expérience utilisateur mise à niveau et de nouvelles instructions sur les priorités fondamentales à l’échelle de l’entreprise.
• L’évaluation des performances est le moment de réfléchir aux performances passées et à l’apprentissage, ainsi que de planifier les priorités et les opportunités de croissance à venir.
• Les employés et les responsables doivent rédiger leurs commentaires avant la réunion d’évaluation des performances.
• Il devrait y avoir au moins deux évaluations des performances par an.
• Le temps consacré à chaque évaluation doit rester identique.

Contenu de support

Le contenu de support désigne les informations que le modèle peut utiliser pour influencer la sortie d’une manière ou d’une autre. Il diffère du contenu principal en ce qu’il ne s’agit pas de la cible principale de la tâche, mais qu’il est généralement utilisé avec le contenu principal. Les exemples courants incluent les informations contextuelles telles que la date du jour, le nom et les préférences de l’utilisateur, etc. L’exemple ci-dessous utilise du contenu de support pour aider à organiser un ensemble d’ateliers planifiés pour l’utilisateur. Sans le contenu de support (rubriques importantes), le modèle répertorie simplement les ateliers (tronqués pour l’affichage). Quand il est informé des rubriques importantes, le modèle est en mesure de regrouper les réunions avec précision.

Contenu de prise en charge Prompt Completion
Sans Liste des ateliers :
Titre Description
Lancement de l’atelier sur la planification Rejoignez-nous pour le lancement de notre atelier ! Écoutez ce que nos dirigeants disent sur les priorités et les apprentissages intergroupe pour l’année à venir. L’invitation à cet événement a déjà été envoyée à tous les [...]
Résumer les ateliers ci-dessus, regroupés par rubrique :
Liste des ateliers :
Lancement de l’atelier sur la planification
- Résumé de l’atelier sur la planification
- Rencontre principale
- Perspectives orientées client
- Impact et principaux domaines d’intérêt
- Bonnes pratiques
- Accélération de l’adoption des applications [...]
With Liste des ateliers :
Titre Description
Lancement de l’atelier sur la planification Rejoignez-nous pour le lancement de notre atelier ! Écoutez ce que nos dirigeants disent sur les priorités et les apprentissages intergroupe pour l’année à venir. L’invitation à cet événement a déjà été envoyée à tous les [...]
Mes rubriques importantes : ingénierie d’invite, recherche, modèles GPT
Résumez les ateliers ci-dessus, regroupés en fonction de mes rubriques importantes :
1. Ingénierie d’invite :
- Nouveaux conseils sur l’ingénierie d’invite
- L’art de l’ingénierie d’invite
2. Recherche :
- Introduction à la recherche vectorielle avec incorporation
3. Modèles GPT :
- Introduction à GPT-4
- GPT-35-Turbo en détail.

Bonnes pratiques

  • Être précis. Laissez le moins de place possible à l’interprétation. Limitez l’espace opérationnel.
  • Être descriptif. Utilisez des analogies.
  • Se répéter. Il peut parfois arriver que vous deviez vous répéter auprès du modèle. Fournissez des instructions avant et après votre contenu principal, utilisez une instruction et un signal, etc.
  • L’ordre est important. L’ordre dans lequel vous présentez les informations au modèle peut avoir un impact sur la sortie. L’endroit où vous placez les instructions, à savoir avant votre contenu (« Résumer les éléments suivants... ») ou après (« Résumer les éléments ci-dessus... »), peut faire varier la sortie. Même l’ordre des exemples en quelques coups peut avoir de l’importance. C’est ce que l’on appelle le « biais de récence ».
  • Donner au modèle une « porte de sortie ». Il peut parfois être utile de fournir au modèle un autre chemin s’il ne parvient pas à réaliser la tâche attribuée. Par exemple, quand vous posez une question sur un texte, vous pouvez inclure un élément tel que « répondre par “introuvable” si la réponse n’est pas présente ». Cela peut aider le modèle à éviter de générer de fausses réponses.

Optimiser l’espace

Bien que la taille d’entrée augmente avec chaque nouvelle génération de modèles GPT, il continuera d’y avoir des scénarios qui fournissent plus de données que le modèle ne peut en gérer. Les modèles GPT décomposent les mots en « jetons ». Alors que les mots multisyllabiques courants constituent souvent un jeton unique, les mots moins courants sont décomposés en syllabes. Les jetons peuvent parfois être contre-intuitifs, comme le montre l’exemple ci-dessous qui illustre les limites de jetons pour différents formats de date. Dans ce cas, l’affichage du mois entier est plus économe en espace qu’une date entièrement numérique. La plage actuelle de prise en charge des jetons va de 2 000 jetons avec les modèles GPT-3 antérieurs à un maximum de 32 768 jetons avec la version 32k du dernier modèle GPT-4.

Capture d’écran d’une chaîne de texte avec des couleurs mises en surbrillance délimitant les limites des jetons.

Compte tenu de cet espace limité, il est important de l’utiliser de manière aussi efficace que possible.

  • Tableaux : comme illustré dans les exemples de la section précédente, les modèles GPT peuvent comprendre facilement les données sous forme de tableaux. Il peut s’agir d’un moyen économe en espace d’inclure des données, plutôt que de faire précéder chaque champ d’un nom (par exemple, avec JSON).
  • Espace blanc : les espaces blancs consécutifs sont traités comme des jetons distincts, ce qui peut facilement faire perdre de l’espace. En revanche, les espaces qui précèdent un mot sont généralement traités comme faisant partie du même jeton que le mot. Utilisez avec soin les espaces blancs et n’utilisez pas de signes de ponctuation lorsqu’un espace seul suffit.

Étapes suivantes

En savoir plus sur Azure OpenAI.