Crie 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 criação de um 📖 Evaluation Set para avaliar a qualidade/custo/latência de um aplicativo RAG.

Este conjunto de avaliação permite verificar de forma rápida e quantitativa a qualidade de uma nova versão do seu aplicativo antes de distribuí-la às partes interessadas para feedback.

o passo 1: Crie um conjunto de avaliação apenas com perguntas

Você pode coletar 🗂️ Request Logs ou selecionar perguntas manualmente.

Para coletar 🗂️ Request Logs:

  1. Use o 💬 Review UI para fazer perguntas ao aplicativo RAG.

  2. Execute o SQL a seguir para criar uma tabela Unity Catalog chamada <eval_table_name>. Essa tabela pode ser armazenada em qualquer esquema Unity Catalog , mas sugerimos armazená-la no esquema Unity Catalog configurado para o aplicativo RAG.

    Observação

    Você pode modificar o código SQL para selecionar apenas um subconjunto de logs. Se você fizer isso, mantenha o esquema original da coluna request .

    CREATE TABLE <eval_table_name> CLONE <catalog>.<schema>.rag_studio_<app_name>_<environment>_eval_dataset_template
    INSERT INTO <eval_table_name> SELECT request FROM <catalog>.<schema>.<request_log> LIMIT 5
    

    Observação

    O esquema de request é intencionalmente o mesmo entre os logs de solicitação e o conjunto de avaliação.

Para selecionar perguntas manualmente:

  1. Clone a tabela <catalog>.<schema>.rag_studio_<app_name>_<environment>_eval_dataset_template para criar uma nova tabela chamada <eval_table_name>.

    CREATE TABLE <eval_table_name> CLONE <catalog>.<schema>.rag_studio_<app_name>_<environment>_eval_dataset_template
    
  2. Adicione perguntas ao <eval_table_name>, garantindo que a coluna request tenha o mesmo esquema mostrado abaixo.

    {
      "request_id": "c20cb3a9-23d0-48ac-a2cb-98c47a0b84e2",
      "conversation_id": null,
      "timestamp": "2024-01-18T23:22:52.701Z",
      "messages": [
        {
          "role": "user",
          "content": "Hello how are you"
        }
      ],
      "last_input": "Hello how are you"
    }
    

    Observação

    a matriz messages segue o formato de mensagens OpenAI. Você pode incluir qualquer número de pares função/conteúdo.

o passo 2: Opcionalmente - adicione dados reais para cada pergunta

Databricks sugere adicionar respostas verdadeiras e contextos recuperados às perguntas que você acabou de criar - isso permitirá que você meça com mais precisão a qualidade de seu aplicativo. No entanto, este passo é opcional e você ainda pode usar a funcionalidade do RAG Studio sem fazê-lo - a única funcionalidade que falta é o cálculo de métricas de correção de resposta + métricas de recuperação.

  1. Abra um Notebookdo Databricks

  2. Crie um dataframe Spark com o seguinte esquema

    from pyspark.sql.types import StructType, StringType, StructField
    
    schema = StructType([StructField('id', StringType(), True), StructField('answer', StringType(), True), StructField('doc_ids', StringType(), True)])
    
    labeled_df = spark.createDataFrame([], schema)
    
  3. Para cada request_id em seu <eval_table_name> acima, adicione uma resposta verdadeira ao Dataframe.

  4. Anexe o rótulo da verdade ao seu <eval_table_name>:

    %pip install "https://ml-team-public-read.s3.us-west-2.amazonaws.com/wheels/rag-studio/ed24b030-3c87-40b1-b04c-bb1977254aa3/databricks_rag-0.0.0a1-py3-none-any.whl"
    dbutils.library.restartPython()
    
    from databricks.rag.utils import add_labels_to_eval_dataset
    
    help(add_labels_to_eval_dataset)
    
    add_labels_to_eval_dataset(labeled_df, "<eval_table_name>")
    

Acompanhe o próximo tutorial!

implementei uma aplicação RAG para produção