Ajuster les invites à l’aide de variantes dans Azure AI Studio
Important
Les éléments marqués (préversion) dans cet article sont actuellement en préversion publique. Cette préversion est fournie sans contrat de niveau de service, nous la déconseillons dans des charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.
Dans cet article, vous apprenez à utiliser des variantes pour ajuster les invites et évaluer les performances des différentes variantes.
La création d’un bon prompt est une tâche difficile qui nécessite beaucoup de créativité, de clarté et de pertinence. Une bonne invite peut procurer le résultat attendu à partir d’un modèle de langage pré-entraîné, tandis qu’une mauvaise invite peut entraîner des résultats inexacts, non pertinents ou aberrants. Par conséquent, il est nécessaire de paramétrer les invites pour optimiser leurs performances et leur robustesse pour différents domaines et différentes tâches.
Les variantes peuvent vous aider à tester le comportement du modèle dans différentes conditions qui dépendent, par exemple, de la formulation, de la mise en forme, du contexte, de la température ou du top-k. Vous pouvez faire des comparaisons et trouver le meilleur prompt ainsi que la configuration qui optimise l’exactitude, la diversité ou la cohérence du modèle.
Variantes dans le flux d’invite
Avec le flux d’invite, vous pouvez utiliser des variantes pour ajuster votre invite. Une variante fait référence à une version spécifique d’un nœud d’outil qui présente des paramètres distincts. Actuellement, les variantes sont prises en charge uniquement dans l’outil LLM. Par exemple, dans l’outil LLM, une nouvelle variante peut représenter un contenu d’invite différent ou des paramètres de connexion différents.
Supposons que vous souhaitiez générer un résumé d’un article d’actualité. Vous pouvez définir différentes variantes d’invites et de paramètres comme suit :
Variantes | Prompt | Paramètres de connexion |
---|---|---|
Variante 0 | Summary: {{input sentences}} |
Température = 1 |
Variant 1 | Summary: {{input sentences}} |
Température = 0,7 |
Variante 2 | What is the main point of this article? {{input sentences}} |
Température = 1 |
Variant 3 | What is the main point of this article? {{input sentences}} |
Température = 0,7 |
En utilisant différentes variantes d’invites et différents paramètres, vous pouvez explorer la façon dont le modèle répond aux différentes entrées et sorties, ce qui vous permet de découvrir la combinaison la plus adaptée à vos besoins.
Voici quelques avantages de l’utilisation de variantes :
- Améliorez la qualité de votre génération LLM : En créant plusieurs variantes du même nœud LLM avec diverses invites et configurations, vous pouvez identifier la combinaison optimale qui produit un contenu de haute qualité répondant à vos besoins.
- Économisez du temps et des efforts : des modifications, même légères, sur un prompt peuvent produire des résultats différents. Il est essentiel de suivre et de comparer les performances de chaque version d’invite. Avec les variantes, vous pouvez facilement gérer les versions historiques de vos nœuds LLM, ce qui facilite les mises à jour basées sur n’importe quelle variante sans risquer d’oublier les itérations précédentes. Les variantes vous font économiser du temps et des efforts dans la gestion de l’historique d’ajustement des invites.
- Améliorez la productivité : Les variantes simplifient le processus d’optimisation des nœuds LLM, ce qui simplifie la création et la gestion de plusieurs variantes. Vous pouvez obtenir des résultats améliorés en moins de temps, et ainsi augmenter votre productivité globale.
- Facilitez la comparaison : Vous pouvez facilement comparer les résultats obtenus à partir de différentes variantes mises côte à côte. Cela vous permet de prendre des décisions basées sur des données vis-à-vis de la variante qui génère les meilleurs résultats.
Comment paramétrer les invites à l’aide de variantes ?
Dans cet article, nous utilisons l’exemple de flux Classification web.
- Ouvrez l’exemple de flux et supprimez le nœud prepare_examples comme point de départ.
- Sous Outils sélectionnez Flux d’invite.
- Sélectionnez Créer pour ouvrir l’assistant de création de flux.
- Dans la galerie de flux sous Explorer la galerie dans la zone « Classification web », sélectionnez Cloner.
- Dans l’onglet Flux, supprimez le nœud prepare_examples.
- Utilisez l’invite suivante comme invite de référence dans le nœud classify_with_llm.
Your task is to classify a given url into one of the following types:
Movie, App, Academic, Channel, Profile, PDF or None based on the text content information.
The classification will be based on the url, the webpage text content summary, or both.
For a given URL : {{url}}, and text content: {{text_content}}.
Classify above url to complete the category and indicate evidence.
The output shoule be in this format: {"category": "App", "evidence": "Both"}
OUTPUT:
Plusieurs façons d’optimiser ce flux existent, et voici deux directions :
Pour le nœud classify_with_llm : j’ai appris de la communauté et des publications qu’une température plus basse donne une meilleure précision, mais moins de créativité et de surprise, de sorte qu’une température inférieure conviendra aux tâches de classification et que les invites à quelques exemples pourront augmenter les performances du LLM. J’aimerais donc tester le comportement de mon flux lorsque la température passe de 1 à 0, et quand l’invite s’applique à quelques exemples.
Pour le nœud summarize_text_content : je souhaite également tester le comportement de mon flux lorsque je passe de résumé de 100 mots à 300, pour voir si plus de contenu texte peut aider à améliorer les performances.
Créer des variantes
- Sélectionnez le bouton Afficher les variantes en haut à droite du nœud LLM. Le nœud LLM existant est variant_0 et est la variante par défaut.
- Définissez le bouton Cloner sur variant_0 pour générer variant_1, puis vous pouvez configurer les paramètres sur différentes valeurs ou mettre à jour l’invite sur variant_1.
- Répéter l’étape pour créer plus de variantes.
- Sélectionnez Masquer les variantes pour arrêter d’ajouter d’autres variantes. Toutes les variantes sont pliées. La variante par défaut s’affiche pour le nœud.
Pour le nœud classify_with_llm, en fonction de variant_0 :
- Créez variant_1 où la température passe de 1 à 0.
- Créez variant_2 où la température est de 0. Vous pouvez utiliser l’invite suivante, incluant des exemples en quelques coups.
Your task is to classify a given url into one of the following types:
Movie, App, Academic, Channel, Profile, PDF or None based on the text content information.
The classification will be based on the url, the webpage text content summary, or both.
Here are a few examples:
URL: https://play.google.com/store/apps/details?id=com.spotify.music
Text content: Spotify is a free music and podcast streaming app with millions of songs, albums, and original podcasts. It also offers audiobooks, so users can enjoy thousands of stories. It has a variety of features such as creating and sharing music playlists, discovering new music, and listening to popular and exclusive podcasts. It also has a Premium subscription option which allows users to download and listen offline, and access ad-free music. It is available on all devices and has a variety of genres and artists to choose from.
OUTPUT: {"category": "App", "evidence": "Both"}
URL: https://www.youtube.com/channel/UC_x5XG1OV2P6uZZ5FSM9Ttw
Text content: NFL Sunday Ticket is a service offered by Google LLC that allows users to watch NFL games on YouTube. It is available in 2023 and is subject to the terms and privacy policy of Google LLC. It is also subject to YouTube's terms of use and any applicable laws.
OUTPUT: {"category": "Channel", "evidence": "URL"}
URL: https://arxiv.org/abs/2303.04671
Text content: Visual ChatGPT is a system that enables users to interact with ChatGPT by sending and receiving not only languages but also images, providing complex visual questions or visual editing instructions, and providing feedback and asking for corrected results. It incorporates different Visual Foundation Models and is publicly available. Experiments show that Visual ChatGPT opens the door to investigating the visual roles of ChatGPT with the help of Visual Foundation Models.
OUTPUT: {"category": "Academic", "evidence": "Text content"}
URL: https://ab.politiaromana.ro/
Text content: There is no content available for this text.
OUTPUT: {"category": "None", "evidence": "None"}
For a given URL : {{url}}, and text content: {{text_content}}.
Classify above url to complete the category and indicate evidence.
OUTPUT:
Pour le nœud summarize_text_content, en fonction de variant_0, vous pouvez créer variant_1 où 100 words
mots sont remplacés par 300
mots dans l’invite.
À présent, le flux se présente comme suit : 2 variantes pour le nœud summarize_text_content et 3 pour le nœud classify_with_llm.
Exécuter toutes les variantes avec une seule ligne de données et vérifier les résultats
Pour vous assurer que toutes les variantes peuvent s’exécuter correctement et fonctionner comme attendu, vous pouvez exécuter le flux avec une seule ligne de données à tester.
Notes
À chaque fois, vous ne pouvez sélectionner qu’un seul nœud LLM avec des variantes à exécuter, tandis que les autres nœuds LLM utiliseront la variante par défaut.
Dans cet exemple, nous configurons des variantes pour le nœud summarize_text_content et le nœud classify_with_llm. Vous devez donc exécuter deux fois pour tester toutes les variantes.
- Sélectionnez le bouton Exécuter dans le coin supérieur droit.
- Sélectionnez un nœud LLM avec des variantes. Les autres nœuds LLM utilisent la variante par défaut.
- Envoyez l’exécution de flux.
- Une fois l’exécution de flux terminée, vous pouvez vérifier le résultat correspondant pour chaque variante.
- Soumettez une autre exécution de flux avec l’autre nœud LLM comportant les variantes et vérifiez les résultats.
- Vous pouvez modifier d’autres données d’entrée (par exemple, utiliser l’URL d’une page Wikipédia) et répéter les étapes ci-dessus pour tester des variantes pour différentes données.
Évaluer les variantes
Quand vous exécutez les variantes avec un petit nombre de données et que vous vérifiez les résultats à l’œil nu, vous ne pouvez pas visualiser la complexité et la diversité des données réelles, et comme le résultat n’est pas mesurable, il est difficile de comparer l’efficacité des différentes variantes pour choisir la meilleure.
Vous pouvez soumettre une exécution par lot, qui vous permet de tester les variantes avec une grande quantité de données et de les évaluer avec des métriques, pour vous aider à trouver le meilleur ajustement.
Vous devez tout d’abord préparer un jeu de données suffisamment représentatif du problème réel que vous souhaitez résoudre avec le flux d’invite. Dans cet exemple, il s’agit d’une liste d’URL et de leur classification effective. Nous utilisons l’exactitude pour évaluer les performances des variantes.
Sélectionnez Évaluer en haut à droite de la page.
Un Assistant pour Exécuter et évaluer par lot s’ouvre. La première étape consiste à sélectionner un nœud pour exécuter toutes ses variantes.
Pour tester le fonctionnement des différentes variantes pour chaque nœud d’un flux, vous devez exécuter une exécution par lots pour chaque nœud avec des variantes une par une. Cela vous permet d’éviter l’influence des variantes d’autres nœuds et de vous concentrer sur les résultats des variantes de ce nœud. Cela suit la règle de l’expérience contrôlée, qui signifie que vous ne changez qu’une seule chose à la fois et conservez tout le reste identique.
Par exemple, vous pouvez sélectionner le nœud classify_with_llm pour exécuter toutes les variantes, le nœud summarize_text_content utilise la variante par défaut pour cette exécution par lots.
Ensuite, dans Paramètres d’exécution par lot, vous pouvez définir le nom de l’exécution par lot, choisir un runtime et charger les données préparées.
Ensuite, dans Paramètres d’évaluation, sélectionnez une méthode d’évaluation.
Ce flux étant destiné à la classification, vous pouvez sélectionner la méthode Évaluation de la précision de la classification pour évaluer la précision.
La précision est calculée en comparant les étiquettes prédites affectées par le flux (prédiction) aux étiquettes réelles des données (vérité terrain) et en comptant le nombre d’étiquettes qui correspondent.
Dans la section Mappage des entrées d’évaluation, vous devez spécifier que la vérité terrain provient de la colonne de catégorie du jeu de données d’entrée, et la prédiction provient de l’une des sorties du flux : catégorie.
Après avoir vérifié tous les paramètres, vous pouvez soumettre l’exécution par lot.
Une fois l’exécution envoyée, sélectionner le lien, puis accéder à la page des détails de l’exécution.
Remarque
L’exécution peut durer quelques minutes.
Visualiser les sorties
- Une fois l’exécution par lot et l’exécution de l’évaluation terminées, dans la page des détails de l’exécution, sélectionnez les exécutions par lot pour chaque variante, puis sélectionnez Visualiser les sorties. Les métriques de 3 variantes pour le nœud classify_with_llm et les sorties prédites par le LLM pour chaque enregistrement de données s’affichent.
- Une fois que vous avez identifié la meilleure variante, vous pouvez revenir à la page de création de flux et définir cette variante comme variante par défaut du nœud
- Vous pouvez aussi répéter les étapes ci-dessus pour évaluer les variantes du nœud summarize_text_content.
Vous avez maintenant terminé le processus de paramétrage des invites à l’aide de variantes. Vous pouvez appliquer cette technique à votre propre flux d’invite pour trouver la meilleure variante pour le nœud LLM.