Évaluations Cortex Analyst¶
Les évaluations Cortex Analyst vous permettent de mesurer et d’améliorer les performances de vos vues sémantiques utilisées pour la génération SQL. Les évaluations fonctionnent en comparant vos vues sémantiques à leurs propres requêtes vérifiées, qui servent de réalité de terrain. Cela permet d’avoir l’assurance que votre vue sémantique peut traiter les requêtes sur lesquelles les utilisateurs s’appuient, ce qui peut également se traduire par une plus grande précision pour le SQL en général.
Les évaluations mesurent la précision en exécutant le SQL généré par Cortex Analyst et en comparant les résultats à vos requêtes vérifiées. Les métriques de régression sont agrégées afin de suivre les requêtes vérifiées qui recevaient auparavant une réponse correcte, mais qui échouent désormais. Outre ces mesures de correction, la latence est enregistrée pour suivre les performances des requêtes. Ces métriques peuvent être utilisées pour identifier les points faibles et affiner de manière itérative vos vues sémantiques pour améliorer la précision SQL tout en empêchant les régressions.
Exigences en matière de contrôle d’accès¶
La capacité à effectuer une évaluation Cortex Analyst nécessite un rôle avec les caractéristiques suivantes :
Le DATABASE ROLE SNOWFLAKE.CORTEX_USER
Le privilège global EXECUTE TASK ON ACCOUNT
Le privilège CREATE TASK sur le schéma contenant votre vue sémantique
Le privilège CREATE DATASET ON SCHEMA sur le schéma contenant votre vue sémantique
Le privilège SELECT sur la vue sémantique et les tables référencées dans la vue sémantique
Le privilège MONITOR sur la vue sémantique
Note
Tous les privilèges ci-dessus doivent être accordés sous un seul rôle primaire. Les exécutions d’évaluation sont effectuées à l’aide de tâches Snowflake, qui ne prennent pas en compte les privilèges des rôles secondaires.
Préparer un ensemble d’évaluation¶
Les évaluations Cortex Analyst utilisent des requêtes vérifiées (VQs) comme ensemble d’évaluation. Chaque requête vérifiée associe une question en langage naturel avec sa réponse SQL attendue. Avant d’exécuter une évaluation, vous avez besoin d’au moins une requête vérifiée associée à votre vue sémantique.
Si vous n’avez pas encore de requêtes vérifiées, ajoutez-les via l’éditeur de vues sémantiques dans Snowsight. Pour plus d’informations, voir Cortex Analyst Référentiel de requêtes vérifiées.
Comment les requêtes vérifiées sont utilisées lors de l’évaluation¶
Lorsque vous sélectionnez des requêtes vérifiées pour une exécution d’évaluation, Cortex Analyst crée une copie temporaire de votre vue sémantique avec les requêtes sélectionnées supprimées. Cortex Analyst génère alors du SQL en utilisant cette copie temporaire, qui ne contient pas les requêtes d’évaluation. Cela empêche les requêtes d’évaluation d’influencer la génération SQL, en veillant à ce que l’évaluation mesure la capacité de Cortex Analyst à répondre aux questions sans s’appuyer sur des correspondances exactes provenant de requêtes vérifiées.
Les requêtes vérifiées que vous ne sélectionnez pas pour l’évaluation restent dans la vue sémantique temporaire et continuent de guider Cortex Analyst pendant l’exécution de l’évaluation, exactement comme elles le feraient lors d’une utilisation normale.
Note
Une requête vérifiée peut soit guider Cortex Analyst dans l’environnement d’exécution, soit être utilisée comme réalité de terrain pour l’évaluation, mais pas les deux à la fois. La sélection d’une requête vérifiée pour l’évaluation la supprime temporairement de la vue sémantique afin que le résultat de l’évaluation reflète la véritable capacité de génération SQL.
Démarrer une évaluation Cortex Analyst¶
Snowsight¶
Commencez votre évaluation d’une vue sémantique en procédant comme suit :
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez AI & ML > Cortex Analyst.
Dans la liste, sélectionnez la vue sémantique sur laquelle vous souhaitez exécuter l’évaluation.
Sélectionnez l’onglet Evaluations.
Sélectionnez Create evaluation run.
Dans le champ Name, indiquez un nom pour votre d’évaluation. Ce nom doit être unique pour la vue sémantique en cours d’évaluation.
Sélectionnez Next.
Cette action vous permet de passer à la fenêtre modale Select verified queries.
Sélectionnez les requêtes vérifiées à inclure dans l’évaluation. Vous pouvez soit sélectionner toutes les requêtes vérifiées, soit un ensemble spécifique en cochant les cases correspondantes.
Sélectionnez Run evaluation.
SQL¶
Les exécutions d’évaluation Cortex Analyst peuvent également être lancées avec SQL en utilisant la fonction EXECUTE_AI_EVALUATION. Cette fonction accepte les valeurs evaluation_job suivantes :
'START': Démarrez une exécution d’évaluation.'STATUS': Interrogez la progression d’une exécution d’évaluation.'CANCEL': Annulez une évaluation en cours.'DELETE': Supprimez une exécution d’évaluation terminée et ses résultats.
Chaque appel nécessite les arguments supplémentaires suivants :
run_parameters: Un SQL:ref:OBJECT<label-data_type_object>contenant la clérun_name, avec une valeur du nom de votre exécution.config_file_path: Un chemin d’accès au fichier de zone de préparation pointant vers le fichier YAML de configuration de votre exécution. Pour la spécification YAML, consultez Spécification YAML pour l’évaluation des analystes.
L’exemple suivant démarre une exécution d’évaluation appelée``Evaluation run 1`` :
Après le démarrage d’une exécution, vous pouvez interroger sa progression :
Pour annuler ou supprimer une exécution, remplacez 'STATUS' par 'CANCEL' ou 'DELETE'.
Inspecter les résultats de l’évaluation¶
Snowsight¶
L’onglet Evaluations pour une vue sémantique dans l’Snowsight donne un aperçu de chaque exécution d’évaluation ainsi qu’un résumé de chacune d’entre elles, y compris le nombre de régressions de requêtes.
Pour voir les résultats de l’évaluation :
Connectez-vous à Snowsight.
Dans le menu de navigation, sélectionnez AI & ML > Cortex Analyst.
Dans la liste, sélectionnez la vue sémantique pour laquelle vous souhaitez voir les évaluations.
Sélectionnez l’onglet Evaluations.
Sélectionnez une exécution individuelle pour voir des résultats détaillés.
La page de détails de l’exécution montre :
Précision : le pourcentage de requêtes vérifiées où le SQL généré a été jugé correct, avec une option pour Improve la vue sémantique.
Régressions : le nombre de requêtes vérifiées qui étaient correctes auparavant, mais qui échouent désormais.
Latence : les temps de réponse moyens et par requête pour Cortex Analyst.
Résultats par requête : pour chaque requête vérifiée, la question en langage naturel, le SQL attendu, le SQL généré, et si le résultat était correct ou incorrect. Sélectionnez une requête pour voir la comparaison détaillée.
SQL¶
Pour récupérer les résultats d’une exécution d’évaluation, utilisez la fonction GET_ANALYST_AI_EVALUATION_DATA. Cette fonction a les arguments obligatoires suivants :
database: La base de données contenant la vue sémantique.schema: Le schéma contenant la vue sémantique.object_name: Le nom du modèle sémantique.object_type: La constante de chaîne'SEMANTIC VIEW'.run_name: Le nom de l’exécution de l’évaluation à récupérer.
L’exemple suivant affiche les détails d’évaluation complets d’une exécution appelée Evaluation run 1, où la vue sémantique est nommée SEMANTIC_VIEW_EVAL, stockée sur le schéma EVAL_DB.EVAL_SCHEMA :
Format de la table des résultats de l’évaluation¶
La fonction GET_ANALYST_AI_EVALUATION_DATA renvoie un tableau avec les colonnes suivantes :
Colonne |
Type de données |
Description |
|---|---|---|
RECORD_ID |
VARCHAR |
L’identificateur unique attribué par Snowflake pour cet enregistrement d’évaluation. |
INPUT_ID |
VARCHAR |
L’identificateur unique attribué par Snowflake pour cette entrée d’évaluation. |
REQUEST_ID |
VARCHAR |
L’identificateur unique attribué par Snowflake pour cette demande. |
TIMESTAMP |
TIMESTAMP_LTZ |
L’heure à laquelle la requête a été effectuée. |
DURATION_MS |
INT |
La quantité de temps, en millisecondes, nécessaire à Cortex Analyst pour renvoyer une réponse. |
INPUT |
VARCHAR |
La chaîne de requête utilisée en entrée pour cet enregistrement d’évaluation. |
OUTPUT |
VARCHAR |
La réponse renvoyée par Cortex Analyst pour cet enregistrement d’évaluation. |
ERROR |
VARCHAR |
Les informations sur les erreurs éventuelles pouvant survenir lors de la requête. |
GROUND_TRUTH |
VARCHAR |
Les informations de réalité de terrain utilisées pour évaluer la sortie de cet enregistrement Cortex Analyst. |
METRIC_NAME |
VARCHAR |
Le nom de la métrique évaluée pour cet enregistrement. |
EVAL_AGG_SCORE |
NUMBER |
Score d’évaluation attribué à cet enregistrement. |
METRIC_TYPE |
VARCHAR |
Le type de métrique en cours d’évaluation. Pour les métriques intégrées, la valeur est |
METRIC_STATUS |
VARIANT |
Une carte contenant des informations sur la réponse HTTP de l’évaluation pour cet enregistrement, avec les clés suivantes :
|
METRIC_CALLS |
ARRAY |
Un tableau de valeurs VARIANT qui contiennent des informations sur la métrique calculée. Chaque entrée de tableau contient les critères de la métrique et une explication du score de la métrique. Les clés de chaque entrée sont les suivantes :
|
Spécification YAML pour l’évaluation des analystes¶
Pour déclencher des exécutions d’évaluation de manière programmatique, vous avez besoin d’un fichier de configuration YAML chargé dans une zone de préparation Snowflake. Cette section décrit le format YAML et comment le charger.
Format YAML¶
analyst_params
analyst_name: Le nom de la vue sémantique sur laquelle l’évaluation doit être exécutée.analyst_type: La constante de chaîneSEMANTIC VIEW.
source_metadata
type: Le type de source utilisée comme données d’évaluation. Pour Cortex Analyst, le seul type de source pris en charge estverified_queries.verified_queries(facultatif) : remplace la fréquence d’actualisation de mise à jour définie pour toutes les annonces qui utilisent la même base de données. Une liste de questions correspondant au champquestionde chaque requête vérifiée qui doit être utilisé comme réalité de terrain pour l’évaluation. Si elles ne sont pas fournies, toutes les requêtes vérifiées sont utilisées.
metrics
Les métriques à calculer pour l’évaluation. sql_correctness est la seule métrique prise en charge pour les évaluations Cortex Analyst.
Chargement d’une configuration vers une zone de préparation¶
Chargez votre configuration YAML dans une zone de préparation Snowflake. L’exemple suivant crée un format de fichier, crée une zone de préparation, et charge un fichier de configuration local :
Astuce
Snowflake recommande de conserver votre fichier YAML non compressé.
Améliorer votre vue sémantique¶
Utilisez les résultats d’évaluation pour améliorer itérativement votre vue sémantique. Le flux de travail recommandé est le suivant :
Exécutez une évaluation pour établir un score de précision de référence.
Inspectez une exécution terminée en la sélectionnant dans l’onglet Evaluations pour comparer les SQL attendu et généré pour chaque requête.
Optimisez votre vue sémantique en sélectionnant Improve dans la zone de résumé Accuracy. Cela lance l’optimisation de la vue sémantique, qui analyse les échecs d’évaluation et suggère automatiquement des modifications à apporter à votre vue sémantique. Pour plus d’informations, voir Optimiser une vue ou un modèle sémantique existant avec des requêtes vérifiées.
Exécutez à nouveau l’évaluation pour mesurer l’impact des modifications.
Répétez ce cycle pour améliorer de manière incrémentielle la précision de votre vue sémantique. Le suivi de la précision d’une exécution à l’autre vous permet de détecter les régressions si une modification vient à perturber par inadvertance les requêtes précédemment correctes.
Limitations connues¶
Les évaluations Cortex Analyst sont soumises aux limites suivantes :
Vue sémantique unique par exécution : Chaque exécution d’évaluation évalue une seule vue sémantique. L’évaluation de plusieurs vues sémantiques dans une seule exécution n’est pas prise en charge.
Pas d’évaluation à plusieurs tours : Les requêtes d’évaluation sont traitées indépendamment. Le suivi ou l’évaluation des conversations à plusieurs tours n’est pas pris en charge.
Pas d’ensembles de données d’évaluation générés automatiquement : Les ensembles d’évaluation doivent être définis manuellement à partir de requêtes vérifiées. La génération automatique à partir de l’historique des requêtes, des tableaux de bord ou de la génération synthétique n’est pas disponible.
Obsolescence de la réalité de terrain : Si vos requêtes vérifiées font référence à des concepts relatifs au temps (par exemple,
last quarterplutôt queQ1 2025), les résultats de l’évaluation peuvent dériver dans le temps. Portez les requêtes à des dates et des plages horaires spécifiques et absolues pour obtenir des résultats cohérents.
Considérations relatives aux clients¶
Les évaluations Cortex Analyst exécutent des requêtes sur votre vue sémantique et utilisent des juges d’évaluation pour évaluer la correction. Vous êtes facturé pour :
Les frais d’entrepôt liés à l’exécution des requêtes d’évaluation sur Cortex Analyst à l’aide de l’entrepôt sélectionné pour l’exécution de l’évaluation.
Les crédits d’évaluation pour les appels de fonction AI_COMPLETE utilisés pour calculer la métrique
sql_correctness.Les frais de stockage pour les ensembles de données et les résultats d’évaluation stockés dans votre compte.
Pour plus d’informations sur l’estimation des coûts, voir Comprendre le coût général.