Bien qu'il n'existe pas de méthode correcte ou incorrecte pour concevoir une requête, il existe des stratégies courantes que vous pouvez utiliser pour affecter les réponses du modèle. Des tests et une évaluation rigoureux restent essentiels pour optimiser les performances du modèle.
Les grands modèles de langage (LLM) sont entraînés sur de grandes quantités de données textuelles pour apprendre les schémas et les relations entre les unités de langage. Lorsqu'ils reçoivent un texte (la requête), les modèles de langage peuvent prédire ce qui est le plus susceptible de suivre, à la manière d'un outil de saisie semi-automatique très sophistiqué. Par conséquent, lorsque vous concevez des requêtes, prenez en compte les différents facteurs susceptibles d'influencer les prédictions du modèle.
Workflow de prompt engineering
Le prompt engineering est un processus itératif basé sur les tests qui peut améliorer les performances du modèle. Lorsque vous créez des requêtes, il est important de définir clairement les objectifs et les résultats attendus pour chaque requête, puis de les tester systématiquement afin d'identifier les domaines à améliorer.
Le schéma suivant illustre le workflow de prompt engineering :
Créer une requête efficace
À terme, deux aspects d'une requête affectent son efficacité : le contenu et la structure.
- Content:
Pour effectuer une tâche, le modèle a besoin de toutes les informations pertinentes qui lui sont associées. Ces informations peuvent inclure des instructions, des exemples, des informations contextuelles, etc. Pour en savoir plus, consultez la section Composants d'une requête.
- Structure :
Même lorsque toutes les informations requises sont fournies dans la requête, la structure des informations aide le modèle à les analyser. La qualité des réponses peut être affectée par des éléments tels que l'ordre, le libellé et l'utilisation de délimiteurs. Pour obtenir un exemple de structure de requête, consultez la section Exemple de modèle de requête.
Composants d'une requête
Le tableau suivant présente les composants essentiels et facultatifs d'une requête :
Composant | Description | Exemple |
---|---|---|
Objectif | Objectif du modèle. Soyez précis et incluez tous les objectifs généraux. Également appelé "mission" ou "objectif". | Votre objectif est d'aider les élèves à résoudre des problèmes de mathématiques sans leur donner directement la réponse. |
Instructions | Instructions détaillées sur la façon d'effectuer la tâche en question. Également appelés "tâche", "étapes" ou "directives". |
|
Composants facultatifs | ||
Instructions système | Directives techniques ou environnementales pouvant impliquer le contrôle ou la modification du comportement du modèle pour un ensemble de tâches. Pour de nombreuses API de modèle, les instructions système sont spécifiées dans un paramètre dédié. Les instructions système ne sont disponibles que dans Gemini 1.5 Pro. |
Vous êtes un expert en codage spécialisé dans le rendu de code pour les interfaces frontend. Lorsque je décris un composant d'un site Web que je souhaite créer, veuillez renvoyer le code HTML et CSS nécessaire. Ne fournissez pas d'explications sur ce code. Proposez également des suggestions de conception d'interface utilisateur. |
Persona | En tant que qui ou quoi le modèle agit. Également appelé "rôle" ou "vision". | Vous êtes professeur de mathématiques et vous aidez les élèves à faire leurs devoirs. |
Contraintes | Restrictions auxquelles le modèle doit se conformer lors de la génération d'une réponse, y compris ce qu'il peut et ne peut pas faire. Également appelé "garde-corps", "limites" ou "contrôles". | Ne donnez pas directement la réponse à l'élève. Donnez plutôt des indications sur la prochaine étape à suivre pour résoudre le problème. Si l'élève est complètement perdu, donnez-lui les étapes détaillées permettant de résoudre le problème. |
Ton | Ton de la réponse. Vous pouvez également influencer le style et le ton en spécifiant un persona. Également appelé "style", "voix" ou "humeur". | Répondez de manière informelle et technique. |
Contexte | Toute information à laquelle le modèle doit se référer pour effectuer la tâche en cours. Également appelés "arrière-plan", "documents" ou "données d'entrée". | Copie des plans de cours de mathématiques de l'élève. |
Exemples de reconnaissance de quelques images | Exemples de réponse à une requête donnée. Également appelés "exemplaires" ou "échantillons". | input: J'essaie de calculer combien de balles de golf peuvent tenir dans un cadre d'un volume d'un mètre cube. J'ai converti un mètre cube en centimètres cubes et je l'ai divisé par le volume d'une balle de golf en centimètres cubes, mais le système indique que ma réponse est fausse.output: Les balles de golf sont des sphères et ne peuvent pas être empilées de manière parfaitement efficace. Vos calculs tiennent compte de l'efficacité maximale d'empaquetage des sphères. |
Étapes de raisonnement | Demandez au modèle d'expliquer son raisonnement. Cela peut parfois améliorer la capacité de raisonnement du modèle. Également appelé "étape de réflexion". | Expliquez votre raisonnement étape par étape. |
Format de réponse | Format de la réponse. Par exemple, vous pouvez demander au modèle de générer la réponse au format JSON, tableau, Markdown, paragraphe, liste à puces, mots clés, elevator pitch, etc. Également appelée "structure", "présentation" ou "mise en page". | Mettez en forme votre réponse en Markdown. |
Récapitulatif | Répétez brièvement les points clés de la requête, en particulier les contraintes et le format de réponse, à la fin de la requête. | Ne donnez pas la réponse et donnez-lui des indications. Mettez toujours en forme votre réponse au format Markdown. |
Sauvegardes | Ancre les questions à la mission du bot. On les appelle également "règles de sécurité". | N/A |
En fonction des tâches spécifiques à effectuer, vous pouvez choisir d'inclure ou d'exclure certains composants facultatifs. Vous pouvez également ajuster l'ordre des composants et vérifier l'impact que cela peut avoir sur la réponse.
Exemple de modèle de requête
Le modèle de requête suivant montre un exemple de requête bien structurée :
<OBJECTIVE_AND_PERSONA> You are a [insert a persona, such as a "math teacher" or "automotive expert"]. Your task is to... </OBJECTIVE_AND_PERSONA> <INSTRUCTIONS> To complete the task, you need to follow these steps: 1. 2. ... </INSTRUCTIONS> ------------- Optional Components ------------ <CONSTRAINTS> Dos and don'ts for the following aspects 1. Dos 2. Don'ts </CONSTRAINTS> <CONTEXT> The provided context </CONTEXT> <OUTPUT_FORMAT> The output format must be 1. 2. ... </OUTPUT_FORMAT> <FEW_SHOT_EXAMPLES> Here we provide some examples: 1. Example #1 Input: Thoughts: Output: ... </FEW_SHOT_EXAMPLES> <RECAP> Re-emphasize the key aspects of the prompt, especially the constraints, output format, etc. </RECAP> |
Bonnes pratiques
Les bonnes pratiques de conception de requêtes sont les suivantes :
- Donnez des instructions claires et spécifiques
- Inclure des exemples few-shot
- Attribuez un rôle
- Ajouter des informations contextuelles
- Utiliser les instructions système
- Structurer les requêtes
- Demander au modèle d'expliquer son raisonnement
- Décomposer les tâches complexes
- Tester les valeurs de paramètres
- Stratégies d'itération des requêtes
Étapes suivantes
- Découvrez des exemples de requêtes dans la galerie de requêtes.
- Découvrez comment optimiser les invites pour les utiliser avec les modèles Google à l'aide de l'optimiseur d'invites Vertex AI (version preview).
- Découvrez les bonnes pratiques d'IA responsable et les filtres de sécurité de Vertex AI.