Condividi tramite


Schema di input di valutazione dell'agente

Importante

Questa funzionalità è disponibile in anteprima pubblica.

Questo articolo illustra lo schema di input richiesto dalla valutazione dell'agente per valutare la qualità, il costo e la latenza dell'applicazione.

  • Durante lo sviluppo, la valutazione viene eseguita offline e un set di valutazione è un input necessario per la valutazione dell'agente.
  • Quando un'applicazione è in produzione, tutti gli input per la valutazione dell'agente provengono dalle tabelle di inferenza o dai log di produzione.

Lo schema di input è identico per le valutazioni online e offline.

Per informazioni generali sui set di valutazione, vedere Set di valutazione.

Schema di input di valutazione

La tabella seguente mostra lo schema di input di Agent Evaluation. Le ultime due colonne della tabella fanno riferimento al modo in cui viene fornito l'input alla mlflow.evaluate() chiamata. Per informazioni dettagliate, vedere Come fornire input a un'esecuzione di valutazione.

Colonna Tipo di dati Descrizione Applicazione passata come argomento di input Output generati in precedenza forniti
request_id string Identificatore univoco della richiesta. Facoltativo Facoltativo
request Vedere Schema per la richiesta. Input per l'applicazione da valutare, domanda o query dell'utente. Ad esempio, {'messages': [{"role": "user", "content": "What is RAG"}]} o "Che cos'è RAG?". Quando request viene specificato come stringa, verrà trasformato in messages prima che venga passato all'agente. Richiesto Richiesto
Risposta string Risposta generata dall'applicazione valutata. Generato dalla valutazione dell'agente Facoltativo. Se non viene specificato, derivata da Trace. È obbligatorio specificare response o trace.
expected_facts matrice di valori string Elenco di fatti previsti nell'output del modello. Vedere expected_facts linee guida. Facoltativo Facoltativo
expected_response string Risposta alla verità (corretta) per la richiesta di input. Vedere expected_response linee guida. Facoltativo Facoltativo
expected_retrieved_context array Matrice di oggetti contenente il contesto recuperato previsto per la richiesta (se l'applicazione include un passaggio di recupero). Schema di matrice Facoltativo Facoltativo
retrieved_context array Recupero dei risultati generati dal retriever nell'applicazione da valutare. Se nell'applicazione sono presenti più passaggi di recupero, si tratta dei risultati di recupero dell'ultimo passaggio (cronologicamente nella traccia). Schema di matrice Generato dalla valutazione dell'agente Facoltativo. Se non viene specificato, derivata dalla traccia fornita.
trace Stringa JSON di Traccia MLflow MLflow Trace dell'esecuzione dell'applicazione nella richiesta corrispondente. Generato dalla valutazione dell'agente Facoltativo. È obbligatorio specificare response o trace.

expected_facts linee guida

Il expected_facts campo specifica l'elenco di fatti che si prevede vengano visualizzati in qualsiasi risposta del modello corretta per la richiesta di input specifica. Ovvero, una risposta del modello viene considerata corretta se contiene questi fatti, indipendentemente dalla modalità di frase della risposta.

Includendo solo i fatti richiesti e lasciando fuori fatti che non sono strettamente richiesti nella risposta, consente alla valutazione dell'agente di fornire un segnale più affidabile sulla qualità dell'output.

È possibile specificare al massimo uno di expected_facts e expected_response. Se si specificano entrambi, verrà segnalato un errore. Databricks consiglia di usare expected_facts, perché è una linea guida più specifica che aiuta il giudice di valutazione dell'agente a valutare in modo più efficace la qualità delle risposte generate.

expected_response linee guida

Il expected_response campo contiene una risposta completamente formata che rappresenta un riferimento per le risposte del modello corrette. Ovvero, una risposta del modello viene considerata corretta se corrisponde al contenuto delle informazioni in expected_response. Al contrario, expected_facts elenca solo i fatti necessari per essere visualizzati in una risposta corretta e non è una risposta di riferimento completamente formata.

Analogamente a expected_facts, expected_response deve contenere solo il set minimo di fatti necessari per una risposta corretta. Includendo solo le informazioni necessarie e lasciando le informazioni non strettamente necessarie nella risposta, consente alla valutazione dell'agente di fornire un segnale più affidabile sulla qualità dell'output.

È possibile specificare al massimo uno di expected_facts e expected_response. Se si specificano entrambi, verrà segnalato un errore. Databricks consiglia di usare expected_facts, perché è una linea guida più specifica che aiuta il giudice di valutazione dell'agente a valutare in modo più efficace la qualità delle risposte generate.

Schema per la richiesta

Il corpo della richiesta può essere uno dei seguenti:

  • Schema di completamento della chat OpenAI. Lo schema di completamento della chat OpenAI deve avere una matrice di oggetti come messages parametro. Il messages campo può codificare la conversazione completa.
  • Se l'agente supporta lo schema di completamento della chat OpenAI, è possibile passare una stringa normale. Questo formato supporta solo conversazioni a turno singolo. Le stringhe semplici vengono convertite nel messages formato con "role": "user" prima di essere passate all'agente. Ad esempio, una stringa "What is MLflow?" normale viene convertita in {"messages": [{"role": "user", "content": "What is MLflow?"}]} prima di essere passata all'agente.
  • SplitChatMessagesRequest. Un query campo stringa per la richiesta più recente e un campo facoltativo history che codifica i turni precedenti della conversazione.

Per le applicazioni di chat a più turni, usare la seconda o la terza opzione precedente.

L'esempio seguente mostra tutte e tre le opzioni nella stessa request colonna del set di dati di valutazione:

import pandas as pd

data = {
  "request": [

      # Plain string. Plain strings are transformed to the `messages` format before being passed to your agent.
      "What is the difference between reduceByKey and groupByKey in Spark?",

      # OpenAI chat completion schema. Use the `messages` field for a single- or multi-turn chat.
      {
          "messages": [
              {
                  "role": "user",
                  "content": "How can you minimize data shuffling in Spark?"
              }
          ]
      },

      # SplitChatMessagesRequest. Use the `query` and `history` fields for a single- or multi-turn chat.
      {
          "query": "Explain broadcast variables in Spark. How do they enhance performance?",
          "history": [
              {
                  "role": "user",
                  "content": "What are broadcast variables?"
              },
              {
                  "role": "assistant",
                  "content": "Broadcast variables allow the programmer to keep a read-only variable cached on each machine."
              }
          ]
      }
  ],

  "expected_response": [
    "expected response for first question",
    "expected response for second question",
    "expected response for third question"
  ]
}

eval_dataset = pd.DataFrame(data)

Schema per le matrici nell'input di valutazione

Lo schema delle matrici expected_retrieved_context e retrieved_context viene illustrato nella tabella seguente:

Colonna Tipo di dati Descrizione Applicazione passata come argomento di input Output generati in precedenza forniti
content string Contenuto del contesto recuperato. Stringa in qualsiasi formato, ad esempio HTML, testo normale o Markdown. Facoltativo Facoltativo
doc_uri string Identificatore univoco (URI) del documento padre da cui proviene il blocco. Richiesto Richiesto

Metriche calcolate

Le colonne nella tabella seguente indicano i dati inclusi nell'input e indica che la metrica è supportata quando vengono forniti i dati.

Per informazioni dettagliate sulla misura di queste metriche, vedere Come vengono valutati la qualità, i costi e la latenza dalla valutazione dell'agente.

Metriche di calcolo request request e expected_response request, expected_response e expected_retrieved_context request e expected_retrieved_context
response/llm_judged/relevance_to_query/rating
response/llm_judged/safety/rating
response/llm_judged/groundedness/rating
retrieval/llm_judged/chunk_relevance_precision
agent/total_token_count
agent/input_token_count
agent/output_token_count
response/llm_judged/correctness/rating
retrieval/llm_judged/context_sufficiency/rating
retrieval/ground_truth/document_recall