Avaliações do Cortex Analyst¶
As avaliações do Cortex Analyst permitem medir e melhorar o desempenho das exibições semânticas usadas para geração de SQL. O trabalho das avaliações é testar suas exibições semânticas com base nas próprias consultas verificadas como a verdade fundamental (ground truth). Isso dá confiança de que sua exibição semântica pode lidar com as consultas nas quais os usuários dependem, o que também pode se traduzir em maior precisão para SQL em geral.
As avaliações medem a precisão executando o SQL gerado pelo Cortex Analyst e comparando os resultados com suas consultas verificadas. As métricas de regressão são agregadas para rastrear as consultas verificadas que já foram respondidas corretamente, mas agora estão apresentando falha. Além dessas métricas de exatidão, a latência é registrada para rastrear o desempenho das consultas. Essas métricas podem ser usadas para identificar pontos fracos e refinar iterativamente as exibições semânticas para melhorar a precisão do SQL, além de impedir regressões.
Requisitos de controle de acesso¶
A capacidade de executar uma avaliação do Cortex Analyst requer uma função com os seguintes privilégios:
DATABASE ROLE SNOWFLAKE.CORTEX_USER
O privilégio global EXECUTE TASK ON ACCOUNT
O privilégio CREATE TASK no esquema que contém a exibição semântica
O privilégio CREATE DATASET ON SCHEMA no esquema que contém a exibição semântica
O privilégio SELECT na exibição semântica e nas tabelas referenciadas na exibição semântica
O privilégio MONITOR na exibição semântica
Nota
Todos os privilégios acima devem ser concedidos em uma única função primária. As execuções de avaliação são executadas usando tarefas do Snowflake, que não consideram privilégios de função secundária.
Preparar um conjunto de avaliações¶
As avaliações do Cortex Analyst usam consultas verificadas (Verified Queries, VQs) como o conjunto de avaliações. Cada consulta verificada combina uma pergunta em linguagem natural com a resposta SQL esperada. Antes de executar uma avaliação, você precisa de pelo menos uma consulta verificada associada à exibição semântica.
Se você ainda não tem uma consulta verificada, use o editor de exibição semântica no Snowsight para adicioná-las. Para obter mais informações, consulte Cortex Analyst Verified Query Repository.
Como as consultas verificadas são usadas durante a avaliação¶
Quando você seleciona consultas verificadas para execução de uma avaliação, o Cortex Analyst cria uma cópia temporária da sua exibição semântica sem as consultas selecionadas. Em seguida, o Cortex Analyst gera o SQL usando essa cópia temporária, que não contém as consultas de avaliação. Isso impede que as consultas de avaliação influenciem a geração de SQL, garantindo que a avaliação meça o quanto o Cortex Analyst pode responder corretamente às perguntas sem usar as correspondências exatas das consultas verificadas.
As consultas verificadas que você não seleciona para avaliação permanecem na exibição semântica temporária e continuam a orientar o Cortex Analyst durante a execução de avaliação, assim como fazem durante o uso normal.
Nota
Uma consulta verificada pode orientar o Cortex Analyst em tempo de execução ou ser usada como verdade fundamental (ground truth) para a avaliação, mas não as duas coisas ao mesmo tempo. Selecionar uma consulta verificada para avaliação a remove temporariamente da exibição semântica, dessa forma, o resultado da avaliação reflete a verdadeira capacidade de geração de SQL.
Iniciar uma avaliação do Cortex Analyst¶
Snowsight¶
Inicie a avaliação de uma exibição semântica fazendo o seguinte:
Faça login no Snowsight.
No menu de navegação, selecione AI & ML » Cortex Analyst.
Na lista, selecione a exibição semântica na qual deseja executar a avaliação.
Selecione a guia Evaluations.
Selecione Create evaluation run.
No campo Name, forneça um nome para sua avaliação. O nome deve ser exclusivo para a exibição semântica que está sendo avaliada.
Selecione Next.
Isso avança para o modal Select verified queries.
Selecione quais consultas verificadas devem ser incluídas na avaliação. Você pode selecionar todas as consultas verificadas ou um conjunto específico marcando as caixas correspondentes.
Selecione Run evaluation.
SQL¶
As execuções de avaliação do Cortex Analyst também podem ser iniciadas com SQL usando a função EXECUTE_AI_EVALUATION. Essa função aceita os seguintes valores evaluation_job:
'START': iniciar a execução de uma avaliação.'STATUS': consultar o progresso da execução de uma avaliação.'CANCEL': cancelar uma avaliação em andamento.'DELETE': excluir uma execução de avaliação concluída e seus resultados.
Cada chamada requer os seguintes argumentos adicionais:
run_parameters: um SQL OBJECT contendo a chaverun_name, com o valor do nome da sua execução.config_file_path: um caminho de arquivo de área de preparação apontando para o seu arquivo YAML de configuração da execução. Para a especificação YAML, consulte Especificação YAML da avaliação do analista.
O exemplo a seguir inicia a execução de uma avaliação chamada Evaluation run 1:
Após o início da execução, você poderá consultar o progresso:
Para cancelar ou excluir uma execução, substitua 'STATUS' por 'CANCEL' ou 'DELETE'.
Inspecionar resultados da avaliação¶
Snowsight¶
A guia Evaluations para uma exibição semântica no Snowsight apresenta uma visão geral e um resumo de cada execução de avaliação, incluindo o número de regressões de consulta.
Para visualizar os resultados da avaliação:
Faça login no Snowsight.
No menu de navegação, selecione AI & ML » Cortex Analyst.
Na lista, selecione a exibição semântica com as avaliações que você deseja visualizar.
Selecione a guia Evaluations.
Selecione uma execução individual para ver os resultados detalhados.
A página de detalhes da execução mostra:
Precisão: a porcentagem de consultas verificadas em que o SQL gerado foi considerado correto, com uma opção para Improve a exibição semântica.
Regressões: o número de consultas verificadas que antes estavam corretas, mas agora estão falhando.
Latência: tempo de resposta médio e por consulta do Cortex Analyst.
Resultados por consulta: para cada consulta verificada: a pergunta em linguagem natural, o SQL esperado, o SQL gerado e se o resultado estava correto ou incorreto. Selecione uma consulta para ver a comparação detalhada.
SQL¶
Para recuperar os resultados de uma execução de avaliação, use a função GET_ANALYST_AI_EVALUATION_DATA. Essa função tem os seguintes argumentos obrigatórios:
database: o banco de dados que contém a exibição semântica.schema: o esquema que contém a exibição semântica.object_name: o nome da exibição semântica.object_type: A constante de cadeia de caracteres'SEMANTIC VIEW'.run_name: o nome da execução da avaliação a ser recuperada.
O exemplo a seguir exibe os detalhes completos da avaliação para uma execução chamada Evaluation run 1, em que o nome da exibição semântica é SEMANTIC_VIEW_EVAL, armazenada no esquema EVAL_DB.EVAL_SCHEMA:
Formato da tabela de resultados da avaliação¶
A função GET_ANALYST_AI_EVALUATION_DATA retorna uma tabela com as seguintes colunas:
Coluna |
Tipo de dados |
Descrição |
|---|---|---|
RECORD_ID |
VARCHAR |
O identificador exclusivo atribuído pelo Snowflake para este registro de avaliação. |
INPUT_ID |
VARCHAR |
O identificador exclusivo atribuído pelo Snowflake para esta entrada de avaliação. |
REQUEST_ID |
VARCHAR |
O identificador exclusivo atribuído pelo Snowflake para esta solicitação. |
TIMESTAMP |
TIMESTAMP_LTZ |
A hora em que a solicitação foi feita. |
DURATION_MS |
INT |
O tempo, em milissegundos, que o Cortex Analyst levou para retornar uma resposta. |
INPUT |
VARCHAR |
A cadeia de caracteres de consulta utilizada como entrada para este registro de avaliação. |
OUTPUT |
VARCHAR |
A resposta retornada pelo Cortex Analyst para este registro de avaliação. |
ERROR |
VARCHAR |
Informações sobre possíveis erros ocorridos durante a solicitação. |
GROUND_TRUTH |
VARCHAR |
As informações de verdade fundamental (ground truth) usadas para avaliar a saída do Cortex Analyst deste registro. |
METRIC_NAME |
VARCHAR |
O nome da métrica avaliada para este registro. |
EVAL_AGG_SCORE |
NUMBER |
A pontuação de avaliação atribuída a este registro. |
METRIC_TYPE |
VARCHAR |
O tipo de métrica que está sendo avaliada. Para métricas internas, o valor é |
METRIC_STATUS |
VARIANT |
Um mapa com informações sobre a resposta HTTP da avaliação para este registro, com as seguintes chaves:
|
METRIC_CALLS |
ARRAY |
Uma matriz de valores VARIANT que contêm informações sobre a métrica computada. Cada entrada da matriz contém os critérios da métrica e uma explicação da pontuação da métrica. As chaves de cada entrada são:
|
Especificação YAML da avaliação do analista¶
Para acionar execuções de avaliação programaticamente, você precisa de um arquivo de configuração YAML carregado em uma área de preparação do Snowflake. Esta seção descreve o formato YAML e como carregá-lo.
Formato YAML¶
analyst_params
analyst_name: o nome da exibição semântica da qual executar a avaliação.analyst_type: A constante de cadeia de caracteresSEMANTIC VIEW.
source_metadata
type: o tipo de fonte usado como os dados de avaliação. Para o Cortex Analyst, o único tipo de fonte compatível éverified_queries.verified_queries(opcional): uma lista de perguntas que correspondem ao campoquestionde cada consulta verificada que deve ser usada como verdade fundamental (ground truth) para a avaliação. Se não for fornecida, todas as consultas verificadas serão usadas.
metrics
As métricas a serem calculadas na avaliação. sql_correctness é a única métrica compatível com as avaliações do Cortex Analyst.
Carregar configuração para uma área de preparação¶
Carregue a configuração YAML em uma área de preparação do Snowflake. O exemplo a seguir cria um formato de arquivo, cria uma área de preparação e carrega um arquivo de configuração local:
Dica
A Snowflake recomenda manter seu arquivo YAML descompactado.
Melhorar a exibição semântica¶
Use os resultados da avaliação para melhorar iterativamente a exibição semântica. O fluxo de trabalho recomendado é:
Executar uma avaliação para estabelecer uma pontuação de precisão de linha de base.
Inspecione uma execução concluída selecionando-a na guia Evaluations para revisar o SQL esperado e gerado de cada consulta.
Otimizar a exibição semântica selecionando Improve na caixa de resumo Accuracy. Isso inicia a otimização da exibição semântica, que analisa as falhas da avaliação e sugere automaticamente as alterações na exibição semântica. Para obter mais informações, consulte Otimizar uma exibição ou modelo semântico existente com consultas verificadas.
Executar novamente a avaliação para medir o impacto das alterações.
Repita esse ciclo para melhorar gradativamente a precisão da exibição semântica. O rastreamento da precisão entre as execuções permite que você detecte regressões se uma alteração corromper inadvertidamente as consultas que antes estavam corretas.
Limitações conhecidas¶
As avaliações do Cortex Analyst estão sujeitas às seguintes limitações:
Exibição semântica única por execução: cada execução de avaliação avalia uma exibição semântica. A avaliação de várias exibições semânticas em uma única execução não é possível.
Sem avaliação multiturno: as consultas de avaliação são processadas de forma independente. Não há suporte para avaliação de conversa de acompanhamento ou multiturno.
Sem conjuntos de dados de avaliação gerados automaticamente: os conjuntos de avaliações devem ser selecionados manualmente com base nas consultas verificadas. A geração automática baseada em histórico de consultas, painéis ou geração sintética não está disponível.
Desatualização dos dados de referência: se as consultas verificadas fizerem referência a conceitos relativos ao tempo (por exemplo,
last quarterem vez deQ1 2025), os resultados da avaliação poderão mudar ao longo do tempo. Defina o escopo das consultas como datas e intervalos de tempo específicos e absolutos para obter resultados consistentes.
Considerações sobre custo¶
As avaliações do Cortex Analyst executam consultas em sua exibição semântica e usam avaliadores de avaliação para pontuar a exatidão. Você é cobrado por:
Taxas de warehouse para executar as consultas de avaliação no Cortex Analyst usando o warehouse selecionado para a execução de avaliação.
Créditos de avaliação para as chamadas de função AI_COMPLETE usadas para calcular a métrica
sql_correctness.Taxas de armazenamento para conjuntos de dados e resultados de avaliações armazenados em sua conta.
Para obter mais informações sobre como estimar custos, consulte Compreensão do custo total.