Observabilidade de AI no Snowflake Cortex¶
Use a observabilidade de AI no Snowflake Cortex para avaliar e rastrear seus aplicativos de AI generativa. Com a observabilidade de AI, você pode tornar seus aplicativos mais confiáveis e transparentes. Use-o para medir o desempenho de seus aplicativos de AI executando avaliações sistemáticas. Você pode usar as informações das avaliações para iterar nas configurações do aplicativo e otimizar o desempenho. Você também pode usá-lo para registrar traços de aplicativos para fins de depuração.
Use o observabilidade de AI para avaliar o desempenho, tornando seus aplicativos confiáveis e proporcionando maior confiança para as implementações de produção.
A observabilidade de AI tem os seguintes recursos:
Avaliações: use a observabilidade de AI para avaliar sistematicamente o desempenho de seus aplicativos e agentes de AI generativa usando a técnica LLM como juiz. Você pode usar métricas, como precisão, latência, uso e custo, para iterar rapidamente nas configurações do aplicativo e otimizar o desempenho.
Comparação: compare várias avaliações lado a lado e avalie a qualidade e a precisão das respostas. Você pode analisar as respostas em diferentes LLMs, prompts e configurações de inferência para identificar a melhor configuração para implementações de produção.
Rastreamento: rastreie cada etapa das execuções de aplicativos em prompts de entrada, contexto recuperado, uso de ferramentas e inferência de LLM. Use-o para depurar registros individuais e refinar o aplicativo em termos de precisão, latência e custo.
A observabilidade de AI pode ser usada para avaliar uma variedade de tipos de tarefas, como a geração aumentada por recuperação (RAG) e o resumo. Por exemplo, a pontuação de relevância do contexto pode ajudá-lo a detectar a qualidade da recuperação dos resultados da pesquisa correspondente a uma consulta do usuário. Você pode usar as pontuações de relevância e fundamentação da resposta para detectar a veracidade e a relevância da resposta final com base no contexto recuperado.
Para resumir, você pode medir a exatidão factual e a abrangência dos resumos gerados pelo LLMcom base na entrada original e evitar prompts e LLMs que tenham uma frequência maior de alucinações em seus aplicativos de AI generativa.
Para começar, saiba mais sobre Principais conceitos e siga um rápido passo a passo com o Tutorial de observabilidade de AI. Em seguida, você pode usar as informações em Avalie os aplicativos AI para seguir um passo a passo detalhado.
Para rever um conceito específico, consulte Referência de observabilidade de AI do Snowflake. Para consultar AI_OBSERVABILITY_EVENTS com SQL para um Cortex Agent (passar CORTEX AGENT como agent_type ) ou um aplicativo External Agent (passar EXTERNAL AGENT como agent_type), consulte Monitoramento de solicitações de Cortex Agents, GET_AI_OBSERVABILITY_EVENTS (SNOWFLAKE.LOCAL) e External Agent commands.
A visibilidade de campos brutos não redigidos no monitoramento e na observabilidade dos resultados da função de tabela definidos pelo usuário é coberta pelo privilégio de conta READUNREDACTEDAIOBSERVABILITYEVENTSTABLE; ele não se aplica a execuções de avaliação do Cortex Agent ou à experiência de AgentEvaluations externas. Para mais detalhes, consulte Privilégio de conta READ UNREDACTED AI OBSERVABILITY EVENTS TABLE e Monitoramento de solicitações de Cortex Agents.
Controle de acesso e pré-requisitos¶
Antes de começar a usar a observabilidade de AI:
Para criar e realizar execuções, você precisa receber as seguintes funções ou privilégios. Para obter mais informações, consulte Privilégios obrigatórios:
Função de banco de dados CORTEX_USER
Privilégio CREATE EXTERNAL AGENT no esquema
Privilégio CREATE TASK no esquema
Privilégio global EXECUTE TASK
Instale os seguintes pacotes Trulens Python em seu projeto Python:
trulens-coretrulens-connectors-snowflaketrulens-providers-cortex
A versão do pacote que você usa no projeto Python deve ser a 2.1.2 ou posterior.
TruLens é a plataforma que a Snowflake usa para rastrear seus aplicativos. Para obter mais informações, consulte a documentação TruLens.
Principais conceitos¶
Aplicativos¶
Um aplicativo é um aplicativo de AI generativa de ponta a ponta projetado por meio do uso de vários componentes, como LLMs, ferramentas (como mecanismos de recuperação de pesquisa ou APIs) e lógica personalizada adicional. Por exemplo, um aplicativo pode conter um pipeline RAG com mecanismos de recuperação, mecanismos de classificação e LLMs encadeados. Você pode ativar a observabilidade de AI para aplicativos que podem ser executados em qualquer ambiente (como o Snowflake, na nuvem ou no local).
Agent externo¶
Os aplicativos são representados no Snowflake como objetos External Agent. Um objeto External Agent é usado para armazenar metadados de aplicativo e avaliação (como o nome do aplicativo, da versão ou da execução). Ele não armazena o código do aplicativo, a definição do aplicativo, os rastreamentos de execução nem os resultados da avaliação. Embora o aplicativo possa ser hospedado em qualquer ambiente (como Snowflake, nuvem ou no local), os rastreamentos de execução e os resultados da avaliação são armazenados em uma tabela de eventos na sua conta Snowflake. Para obter mais informações, consulte Dados de observabilidade.
Além de armazenar metadados do aplicativo e da avaliação, o objeto External Agent também serve para controlar o acesso a rastreamentos e resultados de avaliação do aplicativo. Para obter mais informações, consulte Privilégios obrigatórios.
O SDKTruLens cria automaticamente objetos External Agent quando você registra um aplicativo (por exemplo, usando TruApp(), TruChain, TruGraph ou TruLlama). A execução de uma avaliação também pode criar um External Agent, caso ainda não exista um para o nome do aplicativo especificado.
Você também pode gerenciar agentes externos usando comandos SQL. Para obter mais informações, consulte External Agent commands.
Importante
Objetos External Agent compartilham um namespace com os objetos do modelo. Você não pode criar um agente externo com o mesmo nome que um modelo existente no mesmo esquema e vice-versa. Se houver conflito de nomes (por exemplo, quando uma avaliação e um modelo compartilham o mesmo nome), será necessário renomear ou descartar o objeto conflitante antes de prosseguir.
Versões¶
Os aplicativos podem ter várias versões. Cada versão representa uma implementação diferente. Por exemplo, essas versões podem representar diferentes mecanismos de recuperação, prompts, LLMs ou configurações de inferência.
Conjunto de dados¶
Um conjunto de dados representa um conjunto de entradas. Você pode configurá-lo para representar também um conjunto de saídas esperadas (a verdade fundamental) para testar o aplicativo. Usando o conjunto de dados, você pode chamar o aplicativo para realizar as seguintes tarefas:
Gerar a saída.
Capturar os rastros.
Calcular métricas de avaliação.
Você pode usar um conjunto de dados que contenha tanto as entradas quanto as saídas geradas para calcular as métricas de avaliação sem invocar o aplicativo. Para obter uma lista dos campos compatíveis com o conjunto de dados, consulte Conjunto de dados e atributos.
Execuções¶
Uma execução é um trabalho de avaliação. Ela usa o conjunto de dados e a versão do aplicativo que você especificou para calcular as métricas de avaliação.
Uma execução tem um estágio de invocação e outro de computação. O estágio de invocação aciona o aplicativo para gerar a saída e os rastreamentos correspondentes. O estágio de computação calcula as métricas de avaliação especificadas para a execução. É possível realizar vários cálculos para adicionar novas métricas a uma execução existente. Para a lista de status associados a uma execução, consulte Execuções.
Métricas¶
As métricas de avaliação são pontuações que você usa para avaliar o desempenho do aplicativo de AI generativa com base em seus próprios critérios. Essas métricas usam LLMs para classificar as saídas e fornecer informações detalhadas sobre a pontuação. Para obter uma lista abrangente de métricas e suas definições, consulte Métricas de avaliação.
Rastreamentos¶
Os rastreamentos são registros abrangentes que capturam as entradas, saídas e etapas intermediárias das interações com um aplicativo LLM. Os rastreamentos fornecem uma exibição detalhada da execução do aplicativo. Use rastreamentos para analisar e entender o comportamento do modelo em cada estágio. Você pode comparar os rastreamentos de diferentes versões de aplicativos para identificar melhorias, depurar problemas e verificar o desempenho pretendido. Para obter informações sobre como acessar os rastros associados a cada registro, consulte Avalie os aplicativos AI.
Preços¶
A observabilidade de AI usa juízes LLM para calcular as métricas de avaliação. Para avaliações no lado do servidor, LLMs no Cortex AI são usados como juízes LLM. Os juízes LLM são chamados por meio da função COMPLETE (SNOWFLAKE.CORTEX) para realizar avaliações. As chamadas da função COMPLETE no Cortex geram custos. O LLM usado para realizar as avaliações determina o valor cobrado de você. Além disso, você será cobrado pelo seguinte:
Cobranças de warehouse para tarefas usadas para gerenciar execuções de avaliação
Taxas de warehouse para consultas usadas para calcular métricas de avaliação
Taxas de armazenamento para os resultados da avaliação
Taxas de warehouse para recuperar os resultados da avaliação a serem visualizados no Snowsight