Vad är Mosaic AI Agent Evaluation?
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Den här artikeln ger en översikt över hur du arbetar med Mosaic AI Agent Evaluation. Agentutvärdering hjälper utvecklare att utvärdera kvaliteten, kostnaden och svarstiden för agentiska AI-program, inklusive RAG-program och kedjor. Agentutvärdering är utformad för att både identifiera kvalitetsproblem och fastställa grundorsaken till dessa problem. Funktionerna i Agentutvärdering är enhetliga i utvecklings-, mellanlagrings- och produktionsfaserna i MLOps-livscykeln, och alla utvärderingsmått och data loggas till MLflow Runs.
Agentutvärdering integrerar avancerade, forskningsbaserade utvärderingstekniker i ett användarvänligt SDK och användargränssnitt som är integrerat med din lakehouse, MLflow och de andra Databricks Data Intelligence Platform-komponenterna. Den här patentskyddade tekniken är utvecklad i samarbete med Mosaic AI-forskning och erbjuder en omfattande metod för att analysera och förbättra agentprestanda.
Agentiska AI-program är komplexa och omfattar många olika komponenter. Att utvärdera prestanda för dessa program är inte lika enkelt som att utvärdera prestanda för traditionella ML-modeller. Både kvalitativa och kvantitativa mått som används för att utvärdera kvalitet är i sig mer komplexa. Agentutvärdering innehåller egna LLM-domare och agentmått för att utvärdera hämtnings- och begärandekvalitet samt övergripande prestandamått som svarstid och tokenkostnad.
Hur gör jag för att använda agentutvärdering?
Följande kod visar hur du anropar och testar agentutvärdering på tidigare genererade utdata. Den returnerar en dataram med utvärderingspoäng som beräknas av LLM-domare som ingår i Agentutvärdering.
Du kan kopiera och klistra in följande i din befintliga Databricks-anteckningsbok:
%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."
}],
},
# Primitive string format
# Note: Using a primitive string is discouraged. The string will be wrapped in the
# OpenAI messages format before being passed to your agent.
"How do I convert a Spark DataFrame to Pandas?"
],
"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'])
Du kan också importera och köra följande notebook-fil på din Databricks-arbetsyta:
Exempelanteckningsbok för Mosaic AI Agent Evaluation
Indata och utdata för agentutvärdering
Följande diagram visar en översikt över indata som godkänts av Agentutvärdering och motsvarande utdata som genereras av Agentutvärdering.
Indata
Mer information om förväntade indata för Agentutvärdering, inklusive fältnamn och datatyper, finns i indataschemat. Några av fälten är följande:
- Användarens fråga (
request
): Indata till agenten (användarens fråga eller fråga). Till exempel "Vad är RAG?". - Agentens svar (
response
): Svar som genereras av agenten. Till exempel "Hämtningsförhöjd generation är ...". - Förväntat svar (
expected_response
): (Valfritt) Ett grundläggande sanningssvar (korrekt). - MLflow-spårning (
trace
): (Valfritt) Agentens MLflow-spårning, från vilken Agentutvärdering extraherar mellanliggande utdata, till exempel hämtad kontext eller verktygsanrop. Du kan också ange dessa mellanliggande utdata direkt.
Utdata
Baserat på dessa indata genererar Agent Evaluation två typer av utdata:
- Utvärderingsresultat (per rad): För varje rad som anges som indata skapar Agentutvärdering en motsvarande utdatarad som innehåller en detaljerad utvärdering av agentens kvalitet, kostnad och svarstid.
- LLM-domare kontrollerar olika aspekter av kvalitet, till exempel korrekthet eller grundlighet, utdata av en ja/nej-poäng och skriftlig motivering för den poängen. Mer information finns i Hur kvalitet, kostnad och svarstid utvärderas av agentutvärdering.
- LLM-domarnas bedömningar kombineras för att producera en övergripande poäng som anger om raden "passerar" (är av hög kvalitet) eller "misslyckas" (har ett kvalitetsproblem).
- För eventuella rader som misslyckas identifieras en rotorsak. Varje grundorsak motsvarar en specifik LLM-domares bedömning, så att du kan använda domarens motivering för att identifiera potentiella korrigeringar.
- Kostnad och svarstid extraheras från MLflow-spårningen. Mer information finns i Hur kostnader och svarstider utvärderas.
- Mått (aggregerade poäng): Aggregerade poäng som sammanfattar agentens kvalitet, kostnad och svarstid över alla indatarader. Dessa inkluderar mått som procentandelen korrekta svar, genomsnittligt antal token, genomsnittlig svarstid med mera. Mer information finns i How cost and latency are assessed and How metrics are aggregated at the level of an MLflow run for quality, cost, and latency (Hur mått aggregeras på nivån för en MLflow-körning för kvalitet, kostnad och svarstid).
Utveckling (offlineutvärdering) och produktion (onlineövervakning)
Agentutvärdering är utformad för att vara konsekvent mellan dina utvecklingsmiljöer (offline) och produktionsmiljöer (online). Den här designen möjliggör en smidig övergång från utveckling till produktion, så att du snabbt kan iterera, utvärdera, distribuera och övervaka agentiska program av hög kvalitet.
Den största skillnaden mellan utveckling och produktion är att du i produktion inte har mark-sanningsetiketter, medan du under utveckling kan använda mark-sanningsetiketter. Med hjälp av mark-sanningsetiketter kan agentutvärdering beräkna ytterligare kvalitetsmått.
Utveckling (offline)
Under utveckling kommer din requests
och expected_responses
från en utvärderingsuppsättning. En utvärderingsuppsättning är en samling representativa indata som agenten ska kunna hantera korrekt. Mer information om utvärderingsuppsättningar finns i Utvärderingsuppsättningar.
För att hämta response
och trace
kan agentutvärdering anropa agentens kod för att generera dessa utdata för varje rad i utvärderingsuppsättningen. Du kan också generera dessa utdata själv och skicka dem till Agentutvärdering. Mer information finns i Så här anger du indata till en utvärderingskörning .
Produktion (online)
I produktion kommer alla indata till Agentutvärdering från dina produktionsloggar.
Om du använder Mosaic AI Agent Framework för att distribuera ditt AI-program kan agentutvärdering konfigureras för att automatiskt samla in dessa indata från de agentförbättrade slutsatsdragningstabellerna och kontinuerligt uppdatera en övervakningsinstrumentpanel. Mer information finns i Övervaka kvaliteten på din agent för produktionstrafik.
Om du distribuerar din agent utanför Azure Databricks kan du ETL dina loggar till det obligatoriska indataschemat och på liknande sätt konfigurera en övervakningsinstrumentpanel.
Upprätta ett kvalitetsriktmärke med en utvärderingsuppsättning
För att mäta kvaliteten på ett AI-program under utveckling (offline) måste du definiera en utvärderingsuppsättning, det vill säga en uppsättning representativa frågor och valfria grundsanningssvar. Om programmet omfattar ett hämtningssteg, till exempel i RAG-arbetsflöden, kan du ange stöddokument som du förväntar dig att svaret ska baseras på.
Mer information om utvärderingsuppsättningar, inklusive måttberoenden och metodtips, finns i Utvärderingsuppsättningar. Det obligatoriska schemat finns i Indataschema för agentutvärdering.
Utvärderingskörningar
Mer information om hur du kör en utvärdering finns i Så här kör du en utvärdering och visar resultaten. Agentutvärdering stöder två alternativ för att tillhandahålla utdata från kedjan:
- Du kan köra programmet som en del av utvärderingskörningen. Programmet genererar resultat för varje indata i utvärderingsuppsättningen.
- Du kan ange utdata från en tidigare körning av programmet.
Mer information och förklaring av när du ska använda varje alternativ finns i Så här anger du indata för en utvärderingskörning.
Få mänsklig feedback om kvaliteten på ett GenAI-program
Databricks-granskningsappen gör det enkelt att samla in feedback om kvaliteten på ett AI-program från mänskliga granskare. Mer information finns i Få feedback om kvaliteten på ett agentiskt program.
Geo-tillgänglighet för assistentfunktioner
Mosaic AI Agent Evaluation är en utsedd tjänst som använder Geos för att hantera datahemvist vid bearbetning av kundinnehåll. Mer information om tillgängligheten för agentutvärdering i olika geografiska områden finns i Databricks Designated Services.
Prissättning
Prisinformation finns i Mosaic AI Agent Evaluation pricing (Prissättning för mosaik-AI-agentutvärdering).
Begränsning
Agentutvärdering är inte tillgängligt i HIPAA-aktiverade arbetsytor.
Information om de modeller som driver LLM-domare
- LLM-domare kan använda tjänster från tredje part för att utvärdera dina GenAI-program, inklusive Azure OpenAI som drivs av Microsoft.
- För Azure OpenAI har Databricks valt bort missbruksövervakning så att inga uppmaningar eller svar lagras med Azure OpenAI.
- För EU-arbetsytor använder LLM-domare modeller som finns i EU. Alla andra regioner använder modeller som finns i USA.
- Om du inaktiverar AZURE AI-baserade AI-hjälpfunktioner hindras LLM-domaren från att anropa Azure AI-baserade modeller.
- Data som skickas till LLM-domaren används inte för någon modellträning.
- LLM-domare är avsedda att hjälpa kunder att utvärdera sina RAG-program, och LLM-domarutdata bör inte användas för att träna, förbättra eller finjustera en LLM.