Che cos’è Mosaic AI Agent Evaluation?
Importante
Questa funzionalità è disponibile in anteprima pubblica.
Questo articolo offre una panoramica dell'uso di Mosaic AI Agent Evaluation. Agent Evaluator consente agli sviluppatori di valutare la qualità, i costi e la latenza delle agentic appplication di intelligenza artificiale, incluse le applicazioni e le catene RAG. La valutazione dell'agente è progettata per identificare i problemi di qualità e determinare la causa radice di tali problemi. Le funzionalità di Agent Evaluator vengono unificate nelle fasi di sviluppo, gestione temporanea e produzione del ciclo di vita MLOps e tutte le metriche e i dati di valutazione vengono registrati in esecuzioni di MLflow.
Agent Evaluation integra tecniche avanzate di valutazione basate sulla ricerca in un SDK e un'interfaccia utente descrittivi integrati con lakehouse, MLflow e altri componenti di Databricks Data Intelligence Platform. Sviluppata in collaborazione con la ricerca di Mosaic AI, questa tecnologia proprietaria offre un approccio completo all'analisi e al miglioramento delle prestazioni degli agenti.
Le applicazioni di intelligenza artificiale agentic sono complesse e coinvolgono molti componenti diversi. La valutazione delle prestazioni di queste applicazioni non è semplice quanto la valutazione delle prestazioni dei modelli di ML tradizionali. Le metriche qualitative e quantitative usate per valutare la qualità sono intrinsecamente più complesse. Agent Evaluator include giudici LLM e metriche dell'agente per valutare la qualità del recupero e della richiesta, nonché metriche generali sulle prestazioni, ad esempio la latenza e i costi dei token.
Come si usa la valutazione dell'agente?
Il codice seguente illustra come chiamare e testare Agent Evaluator negli output generati in precedenza. Restituisce un DataFrame con punteggi di valutazione calcolati dai giudici LLM che fanno parte di Agent Evaluation.
È possibile copiare e incollare quanto segue nel Notebook di Databricks esistente:
%pip install mlflow databricks-agents
dbutils.library.restartPython()
import mlflow
import pandas as pd
examples = {
"request": [
{
# Recommended `messages` format
"messages": [{
"role": "user",
"content": "Spark is a data analytics framework."
}],
},
# SplitChatMessagesRequest format
{
"query": "How do I convert a Spark DataFrame to Pandas?",
"history": [
{"role": "user", "content": "What is Spark?"},
{"role": "assistant", "content": "Spark is a data processing engine."},
],
}
# Note: Using a primitive string is discouraged. The string will be wrapped in the
# OpenAI messages format before being passed to your agent.
],
"response": [
"Spark is a data analytics framework.",
"This is not possible as Spark is not a panda.",
],
"retrieved_context": [ # Optional, needed for judging groundedness.
[{"doc_uri": "doc1.txt", "content": "In 2013, Spark, a data analytics framework, was open sourced by UC Berkeley's AMPLab."}],
[{"doc_uri": "doc2.txt", "content": "To convert a Spark DataFrame to Pandas, you can use toPandas()"}],
],
"expected_response": [ # Optional, needed for judging correctness.
"Spark is a data analytics framework.",
"To convert a Spark DataFrame to Pandas, you can use the toPandas() method.",
]
}
result = mlflow.evaluate(
data=pd.DataFrame(examples), # Your evaluation set
# model=logged_model.model_uri, # If you have an MLFlow model. `retrieved_context` and `response` will be obtained from calling the model.
model_type="databricks-agent", # Enable Mosaic AI Agent Evaluation
)
# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])
In alternativa, è possibile importare ed eseguire il Notebook seguente nell'area di lavoro di Databricks:
Notebook di esempio di Mosaic AI Agent Evaluation
Input e output di valutazione dell'agente
Il diagramma seguente mostra una panoramica degli input accettati dalla valutazione dell'agente e degli output corrispondenti prodotti dalla valutazione dell'agente.
Input
Per informazioni dettagliate sull'input previsto per La valutazione dell'agente, inclusi i nomi dei campi e i tipi di dati, vedere lo schema di input. Di seguito sono riportati alcuni campi:
-
Query dell'utente (
request
): input per l'agente (domanda o query dell'utente). Ad esempio, "Che cos'è RAG?". -
Risposta dell'agente (
response
): risposta generata dall'agente. Ad esempio, "La generazione aumentata di recupero è ...". -
expected_response
(facoltativo) Risposta di base (corretta). -
trace
(facoltativo) Traccia MLflow dell'agente, da cui Agent Evaluation estrae output intermedi, ad esempio il contesto recuperato o le chiamate degli strumenti. In alternativa, è possibile fornire direttamente questi output intermedi.
Output
In base a questi input, Agent Evaluation produce due tipi di output:
-
Risultati di valutazione (per riga): per ogni riga fornita come input, Valutazione agente produce una riga di output corrispondente che contiene una valutazione dettagliata della qualità, dei costi e della latenza dell'agente.
- I giudici LLM controllano diversi aspetti della qualità, ad esempio la correttezza o l'integrità, l'output di un punteggio sì/no e la logica scritta per tale punteggio. Per informazioni dettagliate, vedere Come vengono valutati la qualità, i costi e la latenza dalla valutazione dell'agente.
- Le valutazioni dei giudici LLM vengono combinate per produrre un punteggio complessivo che indica se la riga "passa" (è di alta qualità) o "ha esito negativo" (ha un problema di qualità).
- Per eventuali righe con errori, viene identificata una causa radice. Ogni causa radice corrisponde alla valutazione di un giudice LLM specifico, consentendo di utilizzare la logica del giudice per identificare potenziali correzioni.
- I costi e la latenza vengono estratti dalla traccia MLflow. Per informazioni dettagliate, vedere Come vengono valutati i costi e la latenza.
- Metriche (punteggi aggregati): punteggi aggregati che riepilogano la qualità, il costo e la latenza dell'agente in tutte le righe di input. Queste includono metriche, ad esempio la percentuale di risposte corrette, il numero medio di token, la latenza media e altro ancora. Per informazioni dettagliate, vedere Come vengono valutati i costi e la latenza e Come vengono aggregate le metriche a livello di esecuzione di un flusso ML per qualità, costi e latenza.
Sviluppo (valutazione offline) e produzione (monitoraggio online)
La valutazione dell'agente è progettata per essere coerente tra gli ambienti di sviluppo (offline) e di produzione (online). Questa progettazione consente una transizione uniforme dallo sviluppo alla produzione, consentendo di eseguire rapidamente l'iterazione, valutare, distribuire e monitorare applicazioni agenti di alta qualità.
La differenza principale tra lo sviluppo e la produzione è che nell'ambiente di produzione non sono presenti etichette di verità di base, mentre in fase di sviluppo, è possibile usare facoltativamente etichette di verità di base. L'uso delle etichette di base consente alla valutazione dell'agente di calcolare metriche di qualità aggiuntive.
Sviluppo (offline)
In fase di sviluppo, requests
e expected_responses
provengono da un set di valutazione. Un set di valutazione è una raccolta di input rappresentativi che l'agente deve essere in grado di gestire in modo accurato. Per altre informazioni sui set di valutazione, vedere Set di valutazione.
Per ottenere response
e trace
, Agent Evaluation può chiamare il codice dell'agente per generare questi output per ogni riga nel set di valutazione. In alternativa, è possibile generare questi output manualmente e passarli a Valutazione agente. Per altre informazioni, vedere Come fornire input a un'esecuzione di valutazione.
Produzione (online)
Nell'ambiente di produzione, tutti gli input per la valutazione dell'agente provengono dai log di produzione.
Se si usa Mosaic AI Agent Framework per distribuire l'applicazione di intelligenza artificiale, Agent Evaluation può essere configurato per raccogliere automaticamente questi input dalle tabelle di inferenza avanzata dall'agente e aggiornare continuamente un dashboard di monitoraggio. Per altri dettagli, vedere Come monitorare la qualità dell'agente sul traffico di produzione.
Se si distribuisce l'agente all'esterno di Azure Databricks, è possibile ETL i log nello schema di input richiesto e configurare in modo analogo un dashboard di monitoraggio.
Stabilire un benchmark di qualità con un set di valutazione
Per misurare la qualità di un'applicazione di intelligenza artificiale nello sviluppo (offline), è necessario definire un set di valutazione, ovvero un set di domande rappresentative e risposte facoltative alla verità. Se l'applicazione prevede un passaggio di recupero, ad esempio nei flussi di lavoro RAG, è possibile fornire facoltativamente documenti di supporto su cui si prevede che la risposta sia basata.
- Per informazioni dettagliate sui set di valutazione, incluse le dipendenze delle metriche e le procedure consigliate, vedere Set di valutazione.
- Per lo schema richiesto, vedere Schema di input di valutazione dell'agente.
- Per informazioni su come generare in modo sintetico un set di valutazione di alta qualità, vedere Sintetizzare i set di valutazione.
Esecuzione delle valutazioni
Per informazioni dettagliate su come eseguire una valutazione, vedere Come eseguire una valutazione e visualizzare i risultati. Agent Evaluation supporta due opzioni per fornire l'output dalla catena:
- È possibile eseguire l'applicazione come parte dell'esecuzione della valutazione. L'applicazione genera i risultati per ogni input nel set di valutazione.
- È possibile fornire l'output di un'esecuzione precedente dell'applicazione.
Per informazioni dettagliate e spiegazioni su quando usare ciascuna opzione, vedere Come fornire input a un'esecuzione di valutazione.
Ottenere feedback umano sulla qualità di un'applicazione GenAI
L'app di revisione di Databricks semplifica la raccolta di commenti e suggerimenti sulla qualità di un'applicazione di intelligenza artificiale da parte dei revisori umani. Per informazioni dettagliate, vedere Ottenere feedback sulla qualità di un'agentic application.
Disponibilità geografica delle funzionalità di Assistente
Mosaic AI Agent Evaluation è un Servizio designato che usa Geos per gestire la residenza dei dati durante l'elaborazione del contenuto dei clienti. Per altre informazioni sulla disponibilità di Valutazione agente in aree geografiche diverse, vedere Databricks Designated Services.
Prezzi
Per informazioni sui prezzi, vedere Prezzi di valutazione dell'agente di intelligenza artificiale Mosaic.
Informazioni sui modelli basati sui giudici LLM
- I giudici LLM possono usare servizi di terze parti per valutare le applicazioni GenAI, tra cui Azure OpenAI gestito da Microsoft.
- Per Azure OpenAI, Databricks ha rifiutato esplicitamente il monitoraggio degli abusi, quindi non vengono archiviate richieste o risposte con Azure OpenAI.
- Per le aree di lavoro dell'Unione europea (UE), i giudici LLM usano modelli ospitati nell'UE. Tutte le altre aree usano modelli ospitati negli Stati Uniti.
- La disabilitazione delle funzioni di assistenza intelligenza artificiale di Azure basato su intelligenza artificiale impedisce al giudice LLM di richiamare i modelli AI di Azure.
- I dati inviati al giudice LLM non vengono usati per il training del modello.
- I giudici LLM hanno lo scopo di aiutare i clienti a valutare le proprie applicazioni RAG e i loro output non devono essere usati per formare, migliorare o ottimizzare un LLM.