Techniques d’ingénierie d’invite
Les modèles GPT-3, GPT-3.5, GPT-4 et GPT-4o 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. |
Aide spécifique relative au scénario
Bien que les principes de l’ingénierie d’invite puissent être généralisés sur de nombreux types de modèles différents, certains modèles s’attendent à une structure d’invite spécialisée. Pour les modèles GPT Azure OpenAI, il existe actuellement deux API distinctes où l’ingénierie d’invite entre en jeu :
- API de saisie semi-automatique de conversation.
- API d’achèvement.
Chaque API nécessite une mise en forme différente des données d’entrée, ce qui a un impact sur la conception globale de l’invite. L’API Chat Completion prend en charge les modèles GPT-35-Turbo et GPT-4. Ces modèles sont conçus pour prendre en charge une entrée mise en forme dans une transcription de type conversation spécifique stockée dans un tableau de dictionnaires.
L’API d’achèvement de conversation prend en charge les anciens modèles GPT-3 et a des exigences d’entrée beaucoup plus flexibles puisqu’elle accepte une chaîne de texte sans règles de format spécifiques.
Les techniques de cette section vous enseignent des stratégies pour augmenter la précision et la base des réponses que vous générez avec un modèle LLM (Large Language Model). Toutefois, il est important de se rappeler que même lorsque vous utilisez efficacement l’ingénierie d’invite, vous devez toujours valider les réponses générées par les modèles. Le simple fait qu’une invite soigneusement conçue fonctionne bien pour un scénario particulier ne signifie pas nécessairement qu’elle s’adaptera de manière plus généralisée à certains cas d’usage. Il est tout aussi important de comprendre les limitations des LLM que de comprendre comment tirer parti de leurs atouts.
Ce guide ne passe pas en profondeur à la mécanique derrière la structure des messages pour les achèvements de conversation. Si vous n’êtes pas familiarisé avec les modèles d’achèvement de conversation par programmation, nous vous recommandons de lire notre guide pratique sur l’API Chat Completions.
Remarque
Tous les exemples de cette section du guide ont été testés sur un modèle GPT-4 de base en anglais. Si vous lisez une version localisée de cet article dans une autre langue, les réponses représentent une traduction localisée des résultats en anglais. Pour en savoir plus sur les limitations potentielles en fonction de la langue que vous utilisez pour l’invite du modèle, consultez notre note de transparence d’une IA responsable.
Apprentissage en quelques essais
Une façon courante d’adapter les modèles de langage aux nouvelles tâches consiste à utiliser l’apprentissage en quelques essais. Dans l’apprentissage en quelques essais, un ensemble d’exemples d’entraînement est fourni dans le cadre de l’invite pour donner davantage de contexte au modèle.
Lors de l’utilisation de l’API d’achèvement de conversation, une série de messages entre l’utilisateur et l’assistant (écrits dans le nouveau format d’invite) peuvent servir d’exemples pour l’apprentissage en quelques essais. Ces exemples peuvent être utilisés pour préparer le modèle à répondre d’une certaine manière, émuler des comportements particuliers et amorcer des réponses à des questions courantes.
Message système | Exemples d’apprentissage en quelques essais |
---|---|
L’assistant est un chatbot intelligent conçu pour aider les utilisateurs à répondre à leurs questions fiscales. Instructions - Réponds uniquement aux questions concernant les impôts. - Si tu n’es pas sûr d’une réponse, tu peux répondre "Je ne sais pas" ou "Je ne suis pas sûr" et recommander aux utilisateurs de se rendre sur le site web de l’IRS pour plus d’informations. |
Utilisateur : "Quand dois-je déclarer mes impôts ?" Assistant - « En 2023, vous devrez déposer vos taxes d’ici le 18 avril. La date tombe après l’échéance habituelle du 15 avril, car le 15 avril tombe un samedi en 2023. Pour plus d’informations, consultez la page https://www.irs.gov/filing/individuals/when-to-file." Utilisateur : "Comment puis-je vérifier l’état de mon remboursement d’impôt ?" Assistant : "Vous pouvez vérifier l’état de votre remboursement d’impôt en consultant la page https://www.irs.gov/refunds." |
Le tableau ci-dessus décrit la structure d’invite de base, mais pour une explication détaillée du format d’invite exact, vous devez faire référence au guide de saisie semi-automatique de conversation.
Scénarios non conversationnels
Bien que l’API d’achèvement de conversation soit optimisée pour fonctionner avec des conversations à plusieurs répliques, elle peut également être utilisée pour des scénarios non conversationnels. Par exemple, pour un scénario d’extraction d’entités, vous pouvez utiliser cette invite :
Message système | Utilisateur | Assistant |
---|---|---|
Vous êtes un assistant conçu pour analyser les sentiments à partir de données vocales. Les utilisateurs collent une chaîne de texte et vous répondez avec une évaluation de la réponse de l’orateur. L’évaluation se fait sur une échelle de 1 à 10 (10 étant l’évaluation la plus élevée). Explique la raison de cette évaluation. | bonjour merci d’avoir appelé la pharmacie contoso à qui ai-je le plaisir de parler je comprends votre frustration mary pouvez-vous me dire ce que vous voulez exactement d’accord je vérifierai ça pour vous avec plaisir un moment s’il vous plaît je vois ici que vous utilisiez une forme générique de lipitor c’est bien ça d’accord donc je vois que votre médecin a arrêté de vous prescrire ce médicament en 2021 d’accord oui je serais heureux de vérifier ça pour vous parce que parfois il y a un écart dans le système et ce n’est pas signalé alors laissez-moi jeter un coup d’œil juste un moment alors je vois ici que votre médecin vous a prescrit ces médicaments de 2012 à 2021 d’accord oui d’après les derniers dossiers fournis par le cabinet du médecin vous prenez maintenant un autre médicament metformine si vous souhaitez nous pouvons vous renouveler cette prescription et vous pouvez venir chercher votre metformine 500 mg avec plaisir mary y a-t-il autre chose que je puisse faire pour vous aider aujourd’hui. | Évaluation des sentiments : 8 L’orateur dans ce texte semble poli, serviable et patient tout en répondant aux préoccupations du client. Il prend le temps de vérifier les informations, de fournir des explications claires et de proposer son aide. Toutefois, l’évaluation n’est pas un 10, car il existe toujours un indice d’incertitude dans certaines parties de la conversation, ce qui peut ne pas transmettre une confiance totale au client. |
Commencer par des instructions claires
Les informations de séquence s’affichent dans l’invite. En effet, les modèles de style GPT sont générés d’une certaine manière qui définit la façon dont ils traitent l’entrée. Notre recherche suggère que le fait de dire au modèle la tâche que vous souhaitez qu’il effectue au début de l’invite, avant de partager des informations contextuelles ou des exemples supplémentaires, peut aider à produire des sorties de meilleure qualité.
Notes
Bien que l’application de cette technique reste généralement recommandée, contrairement aux versions de modèle précédentes (GPT-3 et versions antérieures), nos tests ont montré que la réponse avec les modèles ChatGPT et GPT-4 était la même, peu importe la technique utilisée. Dans l’exemple ci-dessous, nous constatons que l’ajout de l’instruction "Plusieurs sources … importante" au début ou à la fin de l’invite n’a pas entraîné de modification dans la réponse finale du modèle.
Message système | Utilisateur | Assistant |
---|---|---|
Vous êtes un assistant IA qui aide les personnes à trouver des informations. | Ta tâche consiste à vérifier si l’énoncé "Plusieurs sources mentionnent le risque d’une autre éruption importante" est confirmé par une citation spécifique parmi les extraits suivants. --- EXTRAITS [1] 14 pour cent de chances de méga-séisme à Seattle, les experts affirment SEATTLE - Il y a 14 pour cent de chances qu’un séisme de magnitude 9 en provenance de la zone de Cascadia frappe Seattle dans les 50 prochaines années, estime l’Institut d'études géologiques des États-Unis. « Malheureusement, nous ne pouvons pas... [2] Les experts en séisme ont exposé les dernières perspectives quant au vrai "Big One" qui pourrait frapper Seattle "Il y a environ 14 % de chances qu’un autre séisme de magnitude 9 se produise dans les 50 prochaines années", a déclaré un géophysicien de l’Université de Washington... --- L’énoncé "Plusieurs sources mentionnent le risque d’une autre éruption importante" est-il directement suggéré ou affirmé dans les extraits ? |
Non, l’instruction n’est pas directement implicite ou indiquée par les extraits de code. Les extraits de code mentionnent une chance d’un « mégaquake » et d’un « séisme de magnitude 9 Cascadia » qui frappe Seattle au cours des 50 prochaines années, mais ne mentionnent pas une chance d’une autre éruption importante. |
Répéter les instructions à la fin
Les modèles peuvent être sensibles à un biais de récence, ce qui, dans ce contexte, signifie que les informations placées à la fin de l’invite peuvent avoir une influence plus significative sur la sortie que les informations placées au début de l’invite. Par conséquent, il est utile de répéter les instructions à la fin de l’invite et d’évaluer l’impact sur la réponse générée.
Préparer la sortie
Cela fait référence à l’inclusion de quelques mots ou phrases à la fin de l’invite afin d’obtenir du modèle une réponse qui suit la forme souhaitée. Par exemple, l’utilisation d’une indication telle que “Here’s a bulleted list of key points:\n- ”
permet de s’assurer que la sortie est mise en forme en tant que liste de puces.
Message système | Utilisateur | Assistant |
---|---|---|
Vous êtes un assistant IA qui aide les personnes à trouver des informations. Réponds en utilisant le moins de mots possible. | John Smith est marié à Lucy Smith. Ils ont cinq enfants et il travaille comme ingénieur logiciel chez Microsoft. Quelles requêtes de recherche dois-je effectuer pour vérifier cela ? ## L’une des requêtes de recherche possibles est la suivante : | "John Smith marié à Lucy Smith cinq enfants ingénieur logiciel Microsoft" |
Dans l’invite ci-dessus, le texte L’une des requêtes de recherche possibles est la suivante : demande au modèle de produire une seule sortie. Sans cette indication, le modèle produit plusieurs requêtes de recherche.
Ajouter une syntaxe claire
L’utilisation d’une syntaxe claire pour votre invite (y compris la ponctuation, les en-têtes et les marqueurs de section) permet de communiquer l’intention et facilite souvent l’analyse des sorties.
Dans l’exemple ci-dessous, des séparateurs (---
dans ce cas) ont été ajoutés entre différentes sources d’informations ou étapes. Cela permet d’utiliser ---
comme condition d’arrêt pour la génération. En outre, les en-têtes de section ou les variables spéciales sont présentés en majuscules pour les différencier.
Message système | Utilisateur | Assistant |
---|---|---|
Vous êtes un assistant IA qui aide les personnes à trouver des informations. | Vous allez lire un paragraphe, puis émettre des requêtes sur un moteur de recherche afin de le vérifier en fait. Explique également les requêtes. --- PARAGRAPHE John Smith est marié à Lucy Smith. Ils ont cinq enfants et il travaille comme ingénieur logiciel chez Microsoft. Quelles requêtes de recherche dois-je effectuer pour vérifier cela ? --- QUERIES |
1. "John Smith Microsoft" : pour vérifier si John Smith est effectivement employé chez Microsoft. 2. "John Smith Lucy Smith" : pour vérifier si John Smith est marié à Lucy Smith. 3. "John Smith enfants" : pour vérifier si John Smith a cinq enfants. |
Si vous ne savez pas quelle syntaxe utiliser, envisagez d’utiliser Markdown ou XML. Les modèles ont été formés sur un contenu web volumineux en XML et Markdown, ce qui peut fournir de meilleurs résultats.
Décomposer la tâche
Les modèles de langage volumineux (LLM) fonctionnent souvent mieux si la tâche est décomposée en étapes plus petites. Par exemple, dans l’invite de requête de recherche référencée précédemment, l’invite peut être structurée de manière différente afin que le modèle soit d’abord chargé d’extraire les faits pertinents, puis de générer des requêtes de recherche pouvant être utilisées pour vérifier ces faits.
Message système | Utilisateur | Assistant |
---|---|---|
Vous êtes un assistant IA qui aide les personnes à trouver des informations. | Vous allez lire un paragraphe, puis émettre des requêtes sur un moteur de recherche afin de le vérifier en fait. --- PARAGRAPHE John Smith est marié à Lucy Smith. Ils ont cinq enfants et il travaille comme ingénieur logiciel chez Microsoft. Quelles requêtes de recherche dois-je effectuer pour vérifier cela ? --- Vous allez maintenant extraire des revendications factuelles et émettre des requêtes pour les vérifier. Lors de la formulation d’une requête, utilisez la fonction RECHERCHE("requête") AFFIRMATIONS FACTUELLES |
1. John Smith est marié à Lucy Smith 2. Ils ont cinq enfants 3. Il travaille en tant qu’ingénieur logiciel chez Microsoft QUERIES RECHERCHE("John Smith marié Lucy Smith") RECHERCHE("John Smith nombre enfants") RECHERCHE("John Smith ingénieur logiciel Microsoft") |
Notez l’utilisation d’une syntaxe claire pour différencier les sections et préparer la sortie. Dans cet exemple simple, la rupture de la tâche d’une à deux étapes n’est pas très dramatique, mais lorsque vous essayez de le faire pour une plus grande partie du texte avec de nombreuses revendications factuelles, la décomposition de la tâche peut faire une différence significative.
Utiliser des affordances
Parfois, nous pouvons faire en sorte que le modèle utilise une affordance au lieu de s’appuyer sur ses propres paramètres pour obtenir des informations et des réponses. La recherche, par exemple, peut être une affordance pour aider à diminuer les réponses fabriquées et à obtenir des informations à jour.
Une façon simple d’utiliser une affordance consiste à arrêter la génération une fois que les appels d’affordance sont générés par le modèle, puis à coller les résultats dans l’invite. Vous trouverez ci-dessous un exemple d’appel de suivi possible après avoir effectué les appels RECHERCHE ci-dessus. Notez comment nous avons collé les résultats de la recherche dans l’invite et remplacé les appels RECHERCHE précédents.
Message système | Utilisateur | Assistant |
---|---|---|
Vous êtes un assistant IA qui aide les personnes à trouver des informations. | Vous allez lire un paragraphe, extraire des revendications factuelles, puis utiliser les résultats du moteur de recherche pour les vérifier. --- PARAGRAPHE John Smith est marié à Lucy Smith. Ils ont cinq enfants et il travaille comme ingénieur logiciel chez Microsoft. Quelles requêtes de recherche dois-je effectuer pour vérifier cela ? --- AFFIRMATIONS FACTUELLES - John Smith est marié à Lucy Smith - John et Lucy ont cinq enfants - John travaille en tant qu’ingénieur logiciel chez Microsoft --- Voici différentes requêtes de recherche émises pour vérifier les affirmations ci-dessus : REQUÊTES DE RECHERCHE - John Smith marié à Lucy Smith - John Smith nombre d’enfants - John Smith ingénieur logiciel Microsoft --- Voici des extraits des résultats de la recherche : EXTRAITS : [1] … Le mariage de John Smith a eu lieu le 25 septembre 2012 … [2] … John Smith était accompagné de sa femme Lucy à une fête [3] John est allé au match de football en compagnie de ses deux filles et trois fils [4] … Après avoir passé 10 ans chez Microsoft, Smith a fondé sa propre start-up, Tailspin Toys [5] John M est le forgeron de la ville, et il a épousé Fiona. Ils ont une fille nommée Lucy --- Compte tenu des extraits, vérifie chacune des affirmations factuelles ci-dessus : |
- John Smith est marié à Lucy Smith : Confirmé. Les extraits [1] et [2] mentionnent que la femme de John Smith s’appelle Lucy. - John et Lucy ont cinq enfants : Confirmé. L’extrait [3] mentionne que John était accompagné de ses deux filles et de ses trois fils. - John travaille en tant qu’ingénieur logiciel chez Microsoft : Partiellement confirmé. L’extrait de code [4] mentionne que John a passé 10 ans chez Microsoft, mais il n’indique pas explicitement qu’il y travaille actuellement. D’autres recherches pourraient être nécessaires pour confirmer son statut actuel d’emploi. |
Invites en chaîne de pensée
Il s’agit d’une variante de la technique de décomposition de la tâche. Au lieu de fractionner une tâche en étapes plus petites, dans cette approche, il est demandé à la réponse du modèle de procéder pas à pas et de présenter toutes les étapes impliquées. Cela réduit le risque d’inexactitude des résultats et facilite l’évaluation de la réponse du modèle.
Message système | Utilisateur | Assistant |
---|---|---|
Vous êtes un assistant IA qui aide les personnes à trouver des informations. | Qui a été l’athlète individuel le plus médaillé (maximum de médailles) aux Jeux olympiques qui ont eu lieu à Sydney ? Réponds en suivant une approche pas à pas, cite les sources et argumente avant de donner la réponse finale au format ci-dessous : la RÉPONSE est : <name> |
Étape 1 : Déterminer l’année des Jeux Olympiques de Sydney. Les Jeux olympiques de Sydney ont eu lieu en l’an 2000. Étape 2 : Trouver la liste des athlètes individuels qui ont remporté plusieurs médailles aux Jeux olympiques de Sydney en l’an 2000. Selon le site officiel des Jeux olympiques, plusieurs athlètes individuels ont remporté plusieurs médailles aux Jeux olympiques de Sydney en l’an 2000. Voici quelques-uns des noms notables : • Ian Thorpe (Australie) : 3 médailles d’or, 2 médailles d’argent, 0 médailles de bronze • Pieter van den Hoogenband (Pays-Bas) : 2 médailles d’or, 0 médailles d’argent, 2 médailles de bronze • Lenny Krayzelburg (États-Unis) : 3 médailles d’or, 0 médailles d’argent, 0 médailles de bronze • Inge de Bruijn (Pays-Bas) : 3 médailles d’or, 1 médaille d’argent, 0 médailles de bronze Étape 3 : Déterminer l’athlète qui a remporté le plus de médailles. Après avoir examiné la liste des athlètes individuels qui ont remporté plusieurs médailles aux Jeux olympiques de Sydney en l’an 2000, on peut voir que l’athlète ayant obtenu le plus de médailles est l’Australien Ian Thorpe, qui a remporté un total de 5 médailles (3 médailles d’or et 2 médailles d’argent). Par conséquent, la RÉPONSE est : Ian Thorpe. |
Spécification de la structure de sortie
L’utilisation de votre invite pour spécifier la structure de la sortie peut avoir un effet significatif sur la nature et la qualité des résultats. Parfois, les entrées de message système comme « écrivent uniquement des faits vrais » ou « ne fabriquent pas d’informations » peuvent ne pas être des atténuations adéquates. Au lieu de cela, en demandant à la réponse du modèle d’inclure également des citations, il est possible de réduire la prévalence de réponses incorrectes.
Si vous demandez au modèle de citer le matériel source lorsqu’il formule un énoncé, les énoncés sont beaucoup plus susceptibles de s’appuyer sur des fondements. Le fait de demander des citations fait en sorte que le modèle effectue deux erreurs chaque fois qu’il génère une réponse : la première erreur est la réponse fabriquée et la seconde, la citation incorrecte. Notez que plus la citation est proche du texte qu’elle supporte, plus la distance nécessaire au modèle pour anticiper la citation est courte, ce qui suggère que l’inclusion de citations fournit de meilleures atténuations pour la génération de faux contenu que les citations à la fin du contenu.
De même, si vous demandez au modèle d’extraire des énoncés factuels d’un paragraphe, il peut extraire des instructions composées telles que « X effectue Y AND Z » (ce qui peut être plus difficile à vérifier). Cela peut être évité en spécifiant une structure de sortie telle que (entité1, relation, entité2).
Les exemples ci-dessous montrent l’utilisation de citations et l’ajustement de la réponse du modèle à une structure définie.
Message système | Utilisateur | Assistant |
---|---|---|
Vous êtes un assistant IA qui aide les personnes à trouver des informations | Répertorie les différents comportements présentés par l’agent de support technique dans la conversation suivante. --- bonjour merci d’avoir appelé la pharmacie contoso à qui ai-je le plaisir de parler je comprends votre frustration mary pouvez-vous me dire ce que vous voulez exactement d’accord je vérifierai ça pour vous avec plaisir un moment s’il vous plaît je vois ici que vous utilisiez une forme générique de lipitor c’est bien ça d’accord donc je vois que votre médecin a arrêté de vous prescrire ce médicament en 2021 d’accord oui je serais heureux de vérifier ça pour vous parce que parfois il y a un écart dans le système et ce n’est pas signalé alors laissez-moi jeter un coup d’œil juste un moment alors je vois ici que votre médecin vous a prescrit ces médicaments de 2012 à 2021 d’accord oui d’après les derniers dossiers fournis par le cabinet du médecin vous prenez maintenant un autre médicament metformine si vous souhaitez nous pouvons vous renouveler cette prescription et vous pouvez venir chercher votre metformine 500 mg avec plaisir mary y a-t-il autre chose que je puisse faire pour vous aider aujourd’hui. --- Comment la réponse de l’agent du support technique a-t-elle été ? Classifie et répertorie ses différents comportements et cite la raison de la classification, en utilisant le format COMPORTEMENT("raison") |
1. Accueil poli, COMPORTEMENT("L’agent démarre la conversation par une formule de salutation polie et demande le nom de la personne qui appelle") 2. Empathique, COMPORTEMENT("L’agent reconnaît la frustration de Mary et tente de comprendre ses inquiétudes") 3. Attentif, COMPORTEMENT("L’agent écoute le problème du client et demande plus de détails") 4. Proactif, COMPORTEMENT("L’agent propose de vérifier le problème pour le client") 5. Informatif, COMPORTEMENT("L’agent fournit les informations pertinentes sur l’historique des ordonnances du client") 6. Rigoureux, COMPORTEMENT("L’agent recherche les lacunes possibles dans le système et fournit une réponse complète") 7. Corroborant, COMPORTEMENT("L’agent confirme le médicament actuel avec le client") 8. Orienté solution, COMPORTEMENT("L’agent propose de remplir la nouvelle prescription pour le client") 9. Courtois, COMPORTEMENT("L’agent remercie le client et offre une assistance supplémentaire si nécessaire") |
Message système | Utilisateur | Assistant |
---|---|---|
Vous êtes un assistant IA qui aide les personnes à trouver des informations. | Regroupe les titres d’actualités suivants par catégorie de sujet en fonction des tendances retrouvées dans le texte. Expose aussi le raisonnement qui se cache derrière la façon dont ces catégories ont été définies. Format de sortie : { "NOM_SUJET": "", "TITRES": [], "RAISONNEMENT": "" } Titres d’actualités d’entrée : 1. "Des livres aux présentations en 10 s avec AR + ML" 2. "Démonstration de 1993 de Yann LeCun, 32 ans, montrant le premier réseau convolutif au monde pour la reconnaissance de texte" 3. "First Order Motion Model appliqué à l’animation des peintures" 4. "Robinhood et d’autres courtiers qui bloquent l’achat de $GME, $NOK, $BB, $AMC autorisent les ventes" 5. "L’action United Airlines a baissé de plus de 5 % avant l’ouverture du marché" Sortie : |
{ "INTELLIGENCE_ARTIFICIELLE": { "TITRES": [ "Des livres aux présentations en 10 s avec AR + ML", "Démonstration de 1993 de Yann LeCun, 32 ans, montrant le premier réseau convolutif au monde pour la reconnaissance de texte", "First Order Motion Model appliqué à l’animation des peintures" ], "RAISONNEMENT": "Ces titres sont liés à l’intelligence artificielle, au Machine Learning et à leurs applications dans divers domaines." }, "MARCHÉS_FINANCIERS": { "TITRES": [ "Robinhood et d’autres courtiers qui bloquent l’achat de $GME, $NOK, $BB, $AMC autorisent les ventes", "L’action United Airlines a baissé de plus de 5 % avant l’ouverture du marché", "Le bitcoin a approché les 20 000 $ il y a un an aujourd’hui" ], "RAISONNEMENT": "Ces titres concernent les marchés financiers, les actions, les crypto-monnaies et les plateformes de négociation." } } |
Paramètres de température et Top_p
La modification du paramètre de température modifie la sortie du modèle. Le paramètre de température peut être défini entre 0 et 2. Une valeur plus élevée, par exemple 0,7, rend la sortie plus aléatoire et produit des réponses plus divergentes, tandis qu’une valeur inférieure, comme. 0.2, rend la sortie plus ciblée et plus concrète. Une histoire fictive pourrait être générée à l’aide d’une température plus élevée. Au contraire, pour générer un document juridique, il est recommandé d’utiliser une température beaucoup plus basse. Top_probability est un autre paramètre similaire à la température, car il contrôle également le caractère aléatoire de la réponse du modèle, mais il le fait d’une manière différente. La recommandation générale est de modifier l’un de ces deux paramètres à la fois, et non les deux.
Fournir un contexte de base
L’un des moyens les plus efficaces pour fournir des réponses fiables consiste à fournir au modèle des données à partir desquelles il peut concevoir ses réponses (données de base). Si votre cas d’usage repose sur des informations fiables et à jour et n’est pas un scénario purement créatif, nous vous recommandons vivement de fournir des données de base. En général, plus vous pouvez obtenir votre matériel source à la forme finale de la réponse souhaitée, moins le modèle doit faire, ce qui signifie qu’il y a moins d’opportunités d’erreur. Voici un exemple où le système est fourni un blog récent décrivant le lancement de GPT-4 dans Azure OpenAI Service, et demandé de nommer certains de ses premiers clients.
Message système | Utilisateur | Assistant |
---|---|---|
Vous êtes un assistant IA qui aide les personnes à trouver des informations. Vous fournirez des réponses exclusivement à partir du texte ci-dessous et répondez en 100 mots ou moins : « Chez Microsoft, nous découvrons constamment de nouvelles façons de libérer de la créativité, de déverrouiller la productivité et des compétences de niveau supérieur afin que plus de personnes puissent tirer parti de l’IA. Cela permet à nos clients de ... … réduisant ainsi la probabilité que le modèle génère une réponse néfaste. »1 Réponds en 100 mots ou moins. Utilise des listes à puces dans la mesure du possible. |
Qui sont les premiers clients des modèles GPT-4 de Azure OpenAI Service ? | Voici quelques-uns des premiers clients des modèles GPT-4 de Azure OpenAI Service : - Epic Healthcare : Ils prévoient d’utiliser GPT-4 pour aider les médecins et les infirmières à consacrer moins de temps à la saisie et à l’investigation des données. - Coursera : Ils utilisent Azure OpenAI Service avec GPT-4 pour créer une expérience d’apprentissage basée sur l’IA sur leur plateforme. - Coca-Cola : Ils utilisent Azure OpenAI pour créer un hub de connaissances et planifier l’utilisation des capacités modales de GPT-4 pour le marketing, la publicité, les relations publiques et les relations client. - D’autres entreprises de toutes tailles utilisent Azure AI pour améliorer l’expérience client, résumer les contenus longs, aider à écrire des logiciels et réduire les risques en prédisant les données fiscales appropriées. |
1 Texte du blog de lancement de GPT-4 d’Azure OpenAI.
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.
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.
Contenu connexe
- En savoir plus sur Azure OpenAI.
- Familiarisez-vous avec le modèle ChatGPT en consultant la page Démarrage rapide : commencer à utiliser ChatGPT avec Azure OpenAI Service.
- Consultez le référentiel GitHub Azure OpenAI samples (uniquement disponible en anglais) pour découvrir d’autres exemples.