avaliação off-line de execução com um 📖 Evaluation Set

Visualização

Este recurso está na visualização privada. Para experimentar, entre em contato com seu contato do Databricks.

Procurando um documento RAG Studio diferente? Vá para o índice de documentação RAG

Este tutorial orienta você no processo de uso de um 📖 Evaluation Set para avaliar a qualidade/custo/latência de um aplicativo RAG. Este passo é realizado após você criar uma nova versão do seu aplicativo RAG para avaliar se você melhorou o desempenho do aplicativo e não causou nenhuma regressão de desempenho.

Neste tutorial, usamos um conjunto de avaliação de amostra fornecido pelo Databricks - nos próximos tutoriais, orientaremos você no processo de coleta de feedback do usuário para criar seu próprio conjunto de avaliação.

Fluxo de dados

lenda

o passo 1: Carregar o conjunto de avaliação de amostra

  1. Abra um Notebook do Databricks e execute o código a seguir para salvar o exemplo 📖 Evaluation Set em um esquema do Unity Catalog.

    Observação

    O RAG Studio oferece suporte ao uso de 📖 Evaluation Sets armazenados em qualquer esquema Unity Catalog , mas para fins organizacionais, o Databricks sugere manter seus conjuntos de avaliação no mesmo esquema Unity Catalog que seu aplicativo RAG.

    import requests
    import pandas as pd
    from pyspark.sql.types import StructType, StructField, StringType, TimestampType, ArrayType
    
    schema = StructType([StructField('request', StructType([StructField('request_id', StringType(), True), StructField('conversation_id', StringType(), True), StructField('timestamp', TimestampType(), True), StructField('messages', ArrayType(StructType([StructField('role', StringType(), True), StructField('content', StringType(), True)]), True), True), StructField('last_input', StringType(), True)]), True), StructField('ground_truth', StructType([StructField('text_output', StructType([StructField('content', StringType(), True)]), True), StructField('retrieval_output', StructType([StructField('name', StringType(), True), StructField('chunks', ArrayType(StructType([StructField('doc_uri', StringType(), True), StructField('content', StringType(), True)]), True), True)]), True)]), True)])
    
    df = spark.createDataFrame(
        pd.read_json("http://docs.databricks.com/_static/notebooks/rag-studio/example_evaluation_set.json"),
        schema,
    )
    df.write.format("delta").mode("overwrite").saveAsTable(
        'catalog.schema.example_evaluation_set'
    )
    
  2. Inspecione o 📖 Evaluation Set carregado para entender o esquema.

    Observação

    Você notará que o esquema request é idêntico ao esquema request no <rag-response-log>. Isso é intencional para permitir que você traduza facilmente logs de solicitação em conjuntos de avaliação.

    • request: a entrada do usuário para o aplicativo RAG

    • ground_truth: o rótulo da verdade fundamental para a resposta e recuperação dos passos

    logs

o passo 2: avaliação offline de execução para cálculo de métricas

  1. execute o conjunto de avaliação por meio da versão 1 do aplicativo que você criou no primeiro tutorial executando o comando a seguir em seu console. Este Job leva cerca de 10 minutos para ser concluído.

    ./rag run-offline-eval  --eval-table-name catalog.schema.example_evaluation_set -v 1 -e dev
    

    Observação

    O que acontece nos bastidores?

    Em segundo plano, a versão Chain 1 é executada em cada linha do catalog.schema.example_evaluation_set usando um ambiente compute idêntico ao modo como sua Chain é atendida. Para cada linha de catalog.schema.example_evaluation_set:

    • Uma linha é gravada em um 🗂️ Request Log chamado catalog.schema.example_evaluation_set_request_log dentro do mesmo esquema do Unity Catalog que o conjunto de avaliação

    • Uma linha é gravada em 👍 Assessment & Evaluation Results Log chamada catalog.schema.example_evaluation_set_assessment_log com avaliações <llm-judge> e cálculos de métricas

    O nome das tabelas é baseado no nome da tabela do conjunto de avaliação de entrada.

    Observe que o esquema de 🗂️ Request Log e 👍 Assessment & Evaluation Results Log é intencionalmente idêntico aos logs que você visualizou no tutorial deview logs .

    Resultados

o passo 3: Abra a IU de métricas

  1. Execute o seguinte comando para abrir o Notebook de métricas. Este Job leva cerca de 10 minutos para ser concluído.

    Observação

    Se você tiver várias versões do seu aplicativo, poderá executar o passo 2 para cada versão e, em seguida, passar --versions 2,3,4 ou --versions * para comparar as diferentes versões no Notebook.

    ./rag explore-eval --eval-table-name catalog.schema.example_evaluation_set -e dev --versions 1
    
  2. Clique na URL fornecida na saída do console.

  3. Clique para abrir o Notebook associado ao Job do Databricks.

    Resultados
  4. execute as 2 primeiras células para preencher os widgets e depois preencha os nomes das tabelas do passo 2.

    • assessment_log_table_name: catalog.schema.example_evaluation_set_assessment_log

    • request_log_table_name: catalog.schema.example_evaluation_set_request_log

  5. execute todas as células do Notebook para exibir o cálculo de métricas do conjunto de avaliação.

    Resultados

Acompanhe o próximo tutorial!

Colete feedback de 🧠 usuários especialistas