Événements
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Cet article peut vous aider à résoudre les problèmes courants liés au développement d’une solution à l’aide d’Azure OpenAI Service sur vos données, une fonctionnalité qui vous permet d’utiliser la puissance des modèles OpenAI avec vos propres données. En suivant les meilleures pratiques et les conseils de cet article, vous pouvez optimiser votre sortie avec Azure OpenAI sur vos données et obtenir la meilleure qualité d’IA possible.
Le flux de travail d’Azure OpenAI sur vos données comporte deux parties principales :
Ingestion des données : Il s’agit de l’étape où vous connectez vos données à Azure OpenAI sur vos données. Dans cette phase, les documents utilisateur sont traités et divisés en blocs plus petits, puis indexés. La taille des blocs est de 1024 jetons par défaut, mais d’autres options de segmentation sont disponibles.
Dans cette phase, vous pouvez également choisir un modèle d’incorporation à utiliser pour la création d’incorporations ou le type de recherche préféré. Les incorporations sont des représentations de valeurs ou d’objets (tels que du texte, des images et de l’audio) conçus pour être consommés par des modèles Machine Learning et des algorithmes de recherche sémantique.
La sortie de ce processus est un index qui sera utilisé ultérieurement pour récupérer des documents lors de l’inférence.
Inférence : il s’agit de l’étape où les utilisateurs conversent avec leurs données à l’aide d’un studio, d’une application web déployée ou d’appels d’API directs. Dans cette phase, les utilisateurs peuvent définir différents paramètres de modèle (tels que temperature
et top_P
), ainsi que des paramètres système (tels que strictness
et topNDocuments
).
Considérez l’ingestion comme un processus distinct avant l’inférence. Une fois l’index créé, Azure OpenAI sur vos données passe par les étapes suivantes pour générer une bonne réponse aux questions utilisateur :
strictness
contrôle l’agressivité du filtrage.topNDocuments
de la liste reclassée est inclus dans le prompt envoyé au modèle, avec la question, l’historique des conversations et les informations sur le rôle ou le message système.Lorsque vous voyez une réponse défavorable à une requête, cela peut être le résultat de sorties provenant de différents composants qui ne fonctionnent pas comme prévu. Vous pouvez déboguer les sorties de chaque composant en procédant comme suit.
Utilisez l’API REST pour vérifier si les blocs de documents appropriés sont présents dans les documents récupérés. Dans la réponse de l’API, vérifiez les citations dans le message tool
.
Si les blocs de documents appropriés apparaissent dans les documents récupérés, vous rencontrez probablement un problème avec la génération de contenu. Envisagez d’utiliser un modèle plus puissant à l’aide de l’une des méthodes suivantes :
gpt-35-turbo
, envisagez d’utiliser gpt-4
.gpt-35-turbo-1106
, envisagez d’utiliser gpt-35-turbo-16k
(0613).Vous pouvez également ajuster les aspects plus subtils de la réponse en modifiant les informations de rôle ou le message système.
Si les blocs de documents corrects n’apparaissent pas dans les documents récupérés, vous devez creuser davantage :
Il est possible que le bloc de document correct ait été récupéré, mais qu’il ait été filtré en fonction de la rigueur. Dans ce cas, essayez de réduire le paramètre strictness
.
Il est possible qu’un bloc de document correct ne faisait pas partie du paramètre topNDocuments
. Dans ce cas, augmentez le paramètre .
Il est possible que vos champs d’index ne soient pas correctement mappés, et de ce fait que la récupération ne fonctionne pas correctement. Ce mappage est particulièrement pertinent si vous utilisez une source de données préexistante. (Autrement dit, vous n’avez pas créé l’index à l’aide du studio ou des scripts hors connexion disponibles sur GitHub.) Pour plus d’informations sur le mappage des champs d’index, consultez l’article décrivant la procédure.
Il est possible que l’étape de génération d’intention ne fonctionne pas correctement. Dans la réponse de l’API, vérifiez les champs intents
du message tool
.
Certains modèles ne fonctionnent pas bien pour la génération d’intentions. Par exemple, si vous utilisez la version de modèle GPT-35-turbo-1106
, envisagez d’utiliser un modèle ultérieur, tel que gpt-35-turbo
(0125) ou GPT-4-1106-preview
.
Avez-vous des données semi-structurées dans vos documents, telles que de nombreuses tables ? Il peut y avoir un problème d’ingestion. Vos données peuvent avoir besoin d’une gestion spéciale pendant l’ingestion.
Si le format de fichier est PDF, nous offrons une ingestion optimisée pour les tables utilisant les scripts hors connexion disponibles sur GitHub. Pour utiliser les scripts, vous devez disposer d’une ressource Intelligence documentaire et utiliser le modèle de disposition.
Vous pouvez ajuster votre taille de bloc pour vous assurer qu’un bloc puisse contenir votre plus grande table.
Convertissez-vous un type de données semi-structuré tel que JSON ou XML en document PDF ? Cette conversion peut entraîner un problème d’ingestion, car les informations structurées ont besoin d’une stratégie de segmentation différente du contenu purement textuel.
Si aucun des éléments précédents ne s’applique, vous rencontrerez peut-être un problème de récupération. Envisagez d’utiliser une valeur query_type
plus puissante. En fonction de notre point de référence, semantic
et vectorSemanticHybrid
sont préférés.
Les sections suivantes répertorient les solutions possibles aux problèmes que vous pouvez rencontrer lorsque vous développez une solution à l’aide d’Azure OpenAI Service sur vos données.
Consultez l’étape 3 du processus de débogage précédent.
Consultez le processus de débogage précédent, à partir de l’étape 1.
Assurez-vous que les instructions contenues dans les informations de rôle sont cohérentes avec les Directives pour l’IA responsable. Le modèle ne suivra probablement pas les informations de rôle si celles-ci contredisent ces directives.
Vérifiez que vos informations de rôle suivent les limites établies pour celles-ci. Chaque modèle a une limite de jetons implicite pour les informations de rôle. Au delà de cette limite, les informations sont tronquées.
Utilisez la technique d’ingénierie de prompt qui consiste à répéter une instruction importante à la fin du prompt. Mettre un astérisque double (**
) sur les deux côtés de l’information importante peut également aider.
Effectuez une mise à niveau vers un modèle GPT-4 plus récent, car il est susceptible de mieux suivre vos instructions que GPT-3.5.
Vérifiez que vous utilisez une valeur temperature
faible. Nous vous recommandons de la définir sur 0
.
À l’aide de l’API REST, vérifiez si les intentions de recherche générées sont identiques les deux fois. Si les intentions sont différentes, essayez un modèle plus puissant tel que GPT-4 pour voir si le modèle choisi affecte le problème. Si les intentions sont identiques ou similaires, essayez de réduire strictness
ou d’augmenter topNDocuments
.
Notes
Bien que la question soit la même, l’historique des conversations est ajouté au contexte et affecte la façon dont le modèle répond à la même question pendant une longue session.
Consultez l’étape 3 du processus de débogage précédent.
Si les intentions ne sont pas pertinentes, le problème peut être que l’étape de génération d’intentions manque de contexte. La génération d’intentions prend uniquement en compte la question de l’utilisateur et l’historique des conversations. Elle ne prend pas en compte les informations de rôle ou les blocs de document. Vous pouvez envisager d’ajouter un préfixe à chaque question utilisateur avec une chaîne de contexte courte pour aider l’étape de génération d’intentions.
Envisagez d’augmenter strictness
.
Ajoutez l’instruction suivante dans vos informations de rôle ou votre message système :
You are also allowed to respond to questions based on the retrieved documents.
Définissez le paramètre inScope
sur true
. Le paramètre n’est pas un commutateur immuable, mais le définir sur true
encourage le modèle à rester limité.
Envisagez la mise à niveau vers un modèle GPT-4 si vous ne l’utilisez pas déjà. GPT-4 est généralement plus cohérent en ce qui concerne la génération de citations.
Essayez de mettre l’accent sur la génération de citations dans la réponse en ajoutant You must generate citation based on the retrieved documents in the response
dans les informations de rôle.
Essayez d’ajouter un préfixe dans la requête utilisateur You must generate citation to the retrieved documents in the response to the user question \n User Question: {actual user question}
.
Événements
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantEntrainement
Module
Appliquer l’ingénierie des prompts avec Azure OpenAI Service - Training
Dans ce module, découvrez comment l’ingénierie des invites peut aider à créer et affiner les invites pour les modèles de traitement en langage naturel. L’ingénierie rapide implique la conception et le test de différentes invites pour optimiser les performances du modèle en générant des réponses précises et pertinentes.
Certification
Microsoft Certified : Azure AI Engineer Associate - Certifications
Concevez et mettez en œuvre une solution Azure AI à l’aide d’Azure AI Services, de Recherche Azure AI et d’Azure Open AI.