AI Observability dans Snowflake Cortex

Utilisez AI Observability dans Snowflake Cortex pour évaluer et tracer vos applications d’AI générative. Avec AI Observability, vous pouvez rendre vos applications plus fiables et plus transparentes. Utilisez-la pour mesurer la performance de vos applications AI en effectuant des évaluations systématiques. Vous pouvez utiliser les informations issues des évaluations pour itérer sur les configurations de votre application et optimiser les performances. Vous pouvez également les utiliser pour consigner des traçages d’application à des fins de débogage.

Utilisez AI Observability pour comparer les performances, ce qui rend vos applications plus fiables et vous donne une plus grande confiance pour les déploiements en production.

AI Observability présente les fonctions suivantes :

  • Évaluations : Utilisez AI Observability pour évaluer systématiquement les performances de vos applications et agents d’AI générative à l’aide de la technique LLM-as-a-judge. Vous pouvez utiliser des métriques, telles que la précision, la latence, l’utilisation et le coût, pour itérer rapidement sur les configurations de votre application et optimiser les performances.

  • Comparaison : Comparez plusieurs évaluations côte à côte et évaluez la qualité et la précision des réponses. Vous pouvez analyser les réponses pour différentes configurations de LLMs, de prompts et d’inférences afin d’identifier la meilleure configuration pour les déploiements en production.

  • Traçage : Tracez chaque étape de l’exécution de l’application à travers les prompts d’entrée, le contexte récupéré, l’utilisation de l’outil et l’inférence LLM. Utilisez-la pour déboguer des enregistrements individuels et affiner l’application en termes de précision, de latence et de coût.

AI Observability peut être utilisée pour évaluer divers types de tâches, telles que la génération assistée par récupération (RAG) et le résumé. Par exemple, le score de pertinence du contexte peut vous aider à détecter la qualité de la récupération des résultats de recherche correspondant à une requête de l’utilisateur. Vous pouvez utiliser les scores de pertinence et d’ancrage de la réponse pour détecter la véracité et la pertinence de la réponse finale en fonction du contexte récupéré.

Pour le résumé, vous pouvez mesurer l’exactitude factuelle et l’exhaustivité des résumés générés par LLM sur la base de l’entrée originale et éviter les prompts et LLMs qui ont une fréquence d’hallucinations plus élevée dans vos applications d’AI générative.

Pour commencer, découvrez les Concepts clés, puis faites un rapide tour d’horizon avec le Tutoriel d’AI Observability. Vous pouvez ensuite utiliser les informations contenues dans Évaluer les applications AI pour une visite approfondie.

Pour examiner un concept spécifique, voir Référence pour Snowflake AI Observability. Pour interroger AI_OBSERVABILITY_EVENTS avec SQL pour un Cortex Agent (transfert de CORTEX AGENT sur agent_type) ou une application External Agent (transfert de EXTERNAL AGENT sur agent_type), voir Surveiller les requêtes des Agents Cortex, GET_AI_OBSERVABILITY_EVENTS (SNOWFLAKE.LOCAL) et Commandes External Agent.

La visibilité des champs bruts non édités dans la surveillance et dans les résultats de la fonction de table définie par l’utilisateur est couverte par le privilège de compte READ UNREDACTED AI OBSERVABILITY EVENTS TABLE ; cela ne s’applique pas aux exécutions d’évaluation Cortex Agent ni à l’expérience External AgentEvaluations. Pour plus de détails, voir Privilège de compte READ UNREDACTED AI OBSERVABILITY EVENTS TABLE et Surveiller les requêtes des Agents Cortex.

Contrôle d’accès et conditions préalables

Avant de commencer à utiliser AI Observability :

  1. pour créer et exécuter des exécutions, votre rôle doit disposer des rôles ou privilèges suivants. pour plus d’informations, consultez Privilèges requis :

    • Rôle de la base de données CORTEX_USER

    • Privilège CREATE EXTERNAL AGENT sur le schéma.

    • Le privilège CREATE TASK sur le schéma.

    • Privilège EXECUTE TASK global.

  2. Installez les paquets Trulens Python suivants dans votre projet Python :

    • trulens-core

    • trulens-connectors-snowflake

    • trulens-providers-cortex

    La version du package que vous utilisez dans votre projet Python doit être la version 2.1.2 ou ultérieure.

TruLens est la plateforme utilisée par Snowflake pour suivre vos applications. Pour plus d’informations, consultez la documentation TruLens.

Concepts clés

Applications

Une application est une application d’AI générative de bout en bout, conçue à l’aide de multiples composants tels que des LLMs, des outils (tels que des récupérateurs de recherche ou des APIs) et une logique personnalisée supplémentaire. Par exemple, une application peut contenir un pipeline RAG avec des récupérateurs, des reclasseurs et des LLMs chaînés ensemble. Vous pouvez activer AI Observability pour les applications qui peuvent s’exécuter dans n’importe quel environnement (tel que Snowflake, Cloud ou sur site).

Agent externe

Les applications sont représentées dans Snowflake sous forme d’objets External Agent. Un objet External Agent est utilisé pour stocker les métadonnées d’application et d’évaluation (telles que le nom de l’application, le nom de la version ou le nom d’exécution). Il ne stocke pas le code de l’application, la définition de l’application, les traces d’exécution ou les résultats de l’évaluation. Bien que l’application puisse être hébergée dans n’importe quel environnement (tel que Snowflake, Cloud ou sur site), les traces d’exécution et les résultats d’évaluation sont stockés dans une table d’événements dans votre compte Snowflake. Pour plus d’informations, voir Données d’observabilité.

Outre le stockage des métadonnées de l’application et de l’évaluation, l’objet External Agent est également utilisé pour gouverner l’accès aux traces et aux résultats de l’évaluation de l’application. Pour plus d’informations, voir Privilèges requis.

Le SDK TruLens crée automatiquement des objets External Agent lorsque vous enregistrez une application (par exemple, en utilisant TruApp(), TruChain, TruGraph ou TruLlama). L’exécution d’une évaluation peut également créer un External Agent s’il n’en existe pas déjà un pour le nom d’application spécifié.

Vous pouvez également gérer des agents externes à l’aide des commandes SQL. Pour plus d’informations, voir Commandes External Agent.

Important

Les objets External Agent partagent un espace de noms avec les objets modèles. Vous ne pouvez pas créer un agent externe portant le même nom qu’un modèle existant dans le même schéma, et vice versa. En cas de conflit de noms (par exemple, lorsqu’une évaluation et un modèle portent le même nom), vous devez renommer ou supprimer l’objet en conflit avant de poursuivre.

Versions

Les applications peuvent avoir plusieurs versions. Chaque version représente une mise en œuvre différente. Par exemple, ces versions peuvent représenter différents récupérateurs, prompts, LLMs ou configurations d’inférence.

Jeu de données

Un jeu de données représente un ensemble d’entrées. Vous pouvez le configurer pour qu’il représente également un ensemble de sorties attendues (la réalité de terrain) afin de tester l’application. À l’aide du jeu de données, vous pouvez appeler l’application pour effectuer les tâches suivantes :

  • Générer la sortie.

  • Capturer les traçages.

  • Calculer les métriques d’évaluation.

Vous pouvez utiliser un jeu de données contenant à la fois les entrées et les sorties générées pour calculer les métriques d’évaluation sans invoquer l’application. Pour obtenir la liste des champs pris en charge dans le jeu de données, voir Jeux de données et attributs.

Cycles

Un cycle est un travail d’évaluation. Il utilise le jeu de données et la version de l’application que vous avez spécifiés pour calculer les métriques d’évaluation.

Une exécution comporte une zone de préparation d’appel et une zone de préparation de calcul. La zone de préparation d’appel déclenche l’application pour générer la sortie et les traces correspondantes. La zone de préparation de calcul calcule les mesures d’évaluation spécifiées pour l’exécution. Plusieurs calculs peuvent être effectués pour ajouter de nouvelles métriques à un cycle existant. Pour obtenir la liste des états associés à l’exécution d’un cycle, voir Cycles.

Métriques

Les métriques d’évaluation sont des scores que vous utilisez pour évaluer les performances de l’application d’AI générative sur la base de vos propres critères. Ces métriques utilisent les LLMs pour classer les sorties et fournir des informations détaillées sur la notation. Pour une liste complète des métriques et de leurs définitions, voir Mesures d’évaluation.

Traçages

Les traçages sont des enregistrements complets qui capturent les entrées, les sorties et les étapes intermédiaires des interactions avec une application LLM. Les traçages fournissent une vue détaillée de l’exécution de l’application. Utilisez les traçages pour analyser et comprendre le comportement du modèle à chaque zone de préparation. Vous pouvez comparer les traçages de différentes versions de l’application afin d’identifier les améliorations, de résoudre les problèmes et de vérifier les performances prévues. Pour obtenir des informations sur l’accès aux traçages associés à chaque enregistrement, voir Évaluer les applications AI.

Tarifs

AI Observability utilise les LLM pour calculer les métriques d’évaluation. Pour les évaluations côté serveur, les LLMs sur Cortex AI sont utilisés comme juges LLM. Les juges LLM sont invoqués via la fonction COMPLETE (SNOWFLAKE.CORTEX) pour effectuer des évaluations. Les appels de fonctions de Cortex Complete vous sont facturés. Le LLM utilisé pour effectuer les évaluations détermine le montant de votre facture. En outre, les frais suivants vous sont facturés :

  • Frais d’entrepôt pour les tâches utilisées pour gérer les exécutions d’évaluation

  • Frais d’entrepôt pour les requêtes utilisées pour calculer les métriques d’évaluation

  • Frais de stockage des résultats de l’évaluation

  • Frais d’entrepôt pour récupérer les résultats de l’évaluation à consulter dans Snowsight