Écrire des invites plus efficaces
Les modèles Azure OpenAI sont capables de générer des réponses aux requêtes en langage naturel avec une précision remarquable. Toutefois, la qualité des réponses dépend en grande partie de la façon dont l’invite est écrite. Les développeurs peuvent optimiser les performances des modèles Azure OpenAI en utilisant différentes techniques dans leurs invites, entraînant des réponses plus précises et pertinentes.
Fournir des instructions claires
Demander clairement au modèle Azure OpenAI ce que vous souhaitez est un moyen d’obtenir les résultats souhaités. En étant aussi descriptif que possible, le modèle peut générer une réponse qui correspond le plus étroitement à ce que vous recherchez.
Par exemple, supposons que vous souhaitez créer une description de produit pour une nouvelle bouteille d’eau. Considérez la réponse associée à chaque question :
invite
Write a product description for a new water bottle
Réponse
Introducing the latest addition to our product line - the innovative and eco-friendly water bottle.
Made from high-quality, BPA-free materials, this bottle is designed to keep your beverages at the
perfect temperature for hours. Its sleek and stylish design makes it the perfect accessory for any
outdoor activity or workout session. With its convenient carrying handle and leak-proof lid, you
can take it with you wherever you go, without worrying about spills or leaks. Plus, its easy-to-clean
design ensures that you can use it again and again, making it the perfect choice for anyone looking
for a reliable and sustainable water bottle.
Comparé à une invite similaire, avec des instructions claires.
invite de commande
Write a product description for a new water bottle that is 100% recycled. Be sure to include that
it comes in natural colors with no dyes, and each purchase removes 10 pounds of plastic from our
oceans
Réponse
Introducing our newest water bottle, the eco-friendly choice for the conscious consumer. Made from
100% recycled materials and available in natural colors with no dyes, this bottle is not only
stylish but also sustainable. Each purchase of this bottle removes 10 pounds of plastic from
our oceans, making it a responsible choice for those who care about the environment. Its durable
and leak-proof design makes it perfect for outdoor activities, while its easy-to-carry handle
makes it convenient to take on the go. Join us in our mission to reduce plastic waste and choose
this eco-friendly water bottle for your daily hydration needs.
L’inclusion de spécificités qui doivent être incluses permet au modèle de savoir quelles informations ajouter à la description, ce qui le rend plus précis pour le nouveau produit.
Cette méthode peut être extrapillée pour inclure des instructions complexes, telles qu’une liste à puces de détails à inclure, une longueur de réponse ou des formats souhaités à inclure dans la sortie. Essayez de demander exactement ce que vous voulez voir dans le résultat, et vous serez peut-être surpris de la façon dont le modèle satisfait votre demande.
Format des instructions
La façon dont les instructions sont mises en forme peut avoir un impact sur la façon dont le modèle interprète l’invite. Le biais de récurrence peut affecter les modèles, où les informations situées vers la fin de l’invite peuvent avoir plus d’influence sur la sortie que les informations au début. Vous pouvez obtenir de meilleures réponses en répétant les instructions à la fin de l’invite et en évaluant comment cela affecte la réponse générée.
Ce biais de récurrence peut également entrer en jeu lors de l’utilisation de ChatCompletion
dans un scénario de conversation, où les messages plus récents dans la conversation inclus dans l’invite ont un impact plus important sur la réponse. L’unité suivante va plus en détail sur l’utilisation de conversations pour améliorer la qualité de la réponse, mais mettre des informations importantes plus près de la fin de l’invite peut entraîner une meilleure réponse.
Utiliser des marqueurs de section
Une technique spécifique pour la mise en forme des instructions consiste à fractionner ces instructions au début ou à la fin de l’invite, et à placer le contenu utilisateur dans les blocs ---
ou ###
. Ces balises permettent au modèle de différencier plus clairement les instructions et le contenu. Par exemple:
Translate the text into French
---
What's the weather going to be like today?
---
Note
Les meilleures pratiques pour les marqueurs de section peuvent changer avec les futures versions.
Contenu principal, de prise en charge et de base
Inclure du contenu que le modèle utilisera pour répondre permet d'augmenter la précision des réponses. Ce contenu peut être pensé de deux façons : contenu principal et de prise en charge.
Le contenu principal fait référence au contenu qui est l’objet de la requête, tel qu’une phrase à traduire ou un article à synthétiser. Ce contenu est souvent inclus au début ou à la fin de l’invite (en tant qu’instruction et différenciés par des blocs ---
), avec des instructions expliquant ce qu’il faut faire avec elles.
Par exemple, supposons que nous avons un long article que nous voulons résumer. Nous pourrions le placer dans un bloc ---
de l’invite, puis terminer par l'instruction.
---
<insert full article here, as primary content>
---
Summarize this article and identify three takeaways in a bulleted list
Le contenu de soutien est le contenu qui peut modifier la réponse, mais qui n'est pas le centre ou l'objet de l'invite. Les exemples de contenu de prise en charge incluent des éléments tels que les noms, les préférences, la date future à inclure dans la réponse, et ainsi de suite. Fournir du contenu de prise en charge permet au modèle de répondre plus complètement, avec précision et d’être plus susceptible d’inclure les informations souhaitées.
Par exemple, étant donné un e-mail promotionnel très long, le modèle est en mesure d’extraire des informations clés. Si vous ajoutez ensuite du contenu de prise en charge à l’invite spécifiant un élément spécifique que vous recherchez, le modèle peut fournir une réponse plus utile. Dans ce cas, l’e-mail est le contenu principal, avec les détails de ce qui vous intéresse en tant que contenu complémentaire.
---
<insert full email here, as primary content>
---
<the next line is the supporting content>
Topics I'm very interested in: AI, webinar dates, submission deadlines
Extract the key points from the above email, and put them in a bulleted list:
Le contenu de base permet au modèle de fournir des réponses fiables en lui offrant une source d'informations pour construire ses réponses. Le contenu de base peut être un essai ou un article sur lequel vous posez ensuite des questions sur, un document FAQ d’entreprise ou des informations plus récentes que les données sur lesquelles le modèle a été formé. Si vous avez besoin de réponses plus fiables et actuelles, ou si vous devez référencer des informations non publiées ou spécifiques, il est vivement recommandé de fonder le contenu sur des bases solides.
Le contenu fondamental diffère du contenu principal, car il est la source d'informations pour répondre à la requête initiale, plutôt qu'un contenu destiné à être utilisé pour des opérations telles que la synthèse ou la traduction. Par exemple, lorsqu’un document de recherche non publié sur l’histoire de l’IA est fourni, il peut ensuite répondre à des questions à l’aide de ce contenu de base.
---
<insert unpublished paper on the history of AI here, as grounding content>
---
Where and when did the field of AI start?
Ces données de base permettent au modèle de fournir des réponses plus précises et informées qui peuvent ne pas faire partie du jeu de données sur lequel il a été formé.
Indices
Les indicateurs sont des mots clés sur lesquels le modèle peut s'appuyer et aident souvent à orienter la réponse dans la bonne direction. Ils sont souvent utilisés avec des instructions, mais ne sont pas toujours utilisés. Les indicateurs sont particulièrement utiles si vous invitez le modèle à la génération de code. Les modèles Azure OpenAI actuels peuvent générer des extraits de code intéressants, mais la génération de code sera traitée plus en détail dans un module futur.
Par exemple, si vous souhaitez vous aider à créer une requête SQL, fournissez des instructions sur ce dont vous avez besoin avec le début de la requête :
Write a join query to get customer names with purchases in the past 30 days between tables named orders and customer on customer ID.
SELECT
La réponse du modèle reprend là où l'invite s'est arrêtée, en continuant en SQL, même si nous n'avions jamais prêté attention à la langue spécifique demandée. D’autres exemples peuvent être utiles pour le code Python, en donnant des commentaires de code sur l’application souhaitée et en incluant import
en tant que mot de début à la fin de l’invite, ou similaire dans votre langue souhaitée.
Un autre exemple, étant donné une grande collection d'avis clients dans une proposition et se terminant par :
Summarize the reviews above:
Most common complaints:
-
Le modèle sait ensuite terminer les instructions en fonction du contexte fourni dans les avis.