Wat is De evaluatie van De AI-agent van Mozaïek?
Belangrijk
Deze functie is beschikbaar als openbare preview.
In dit artikel vindt u een overzicht van hoe u kunt werken met De evaluatie van De AI-agent van Mozaïek. Met agentevaluatie kunnen ontwikkelaars de kwaliteit, kosten en latentie van agentische AI-toepassingen evalueren, waaronder RAG-toepassingen en ketens. Agentevaluatie is ontworpen om kwaliteitsproblemen te identificeren en de hoofdoorzaak van deze problemen te bepalen. De mogelijkheden van agentevaluatie zijn geïntegreerd in de ontwikkelings-, faserings- en productiefasen van de MLOps-levenscyclus, en alle metrische evaluatiegegevens en -gegevens worden vastgelegd in MLflow Runs.
Agent Evaluation integreert geavanceerde, door onderzoek ondersteunde evaluatietechnieken in een gebruiksvriendelijke SDK en gebruikersinterface die is geïntegreerd met uw Lakehouse, MLflow en de andere Databricks Data Intelligence Platform-onderdelen. Deze eigen technologie is ontwikkeld in samenwerking met Mozaïek AI-onderzoek en biedt een uitgebreide benadering voor het analyseren en verbeteren van agentprestaties.
Agentische AI-toepassingen zijn complex en hebben betrekking op veel verschillende onderdelen. Het evalueren van de prestaties van deze toepassingen is niet zo eenvoudig als het evalueren van de prestaties van traditionele ML-modellen. Zowel kwalitatieve als kwantitatieve metrische gegevens die worden gebruikt om kwaliteit te evalueren, zijn inherent complexer. Agentevaluatie omvat eigen LLM-rechters en metrische agentgegevens om de kwaliteit van het ophalen en aanvragen te evalueren, evenals algemene prestatiegegevens , zoals latentie- en tokenkosten.
Hoe kan ik agentevaluatie gebruiken?
De volgende code laat zien hoe u agentevaluatie aanroept en test op eerder gegenereerde uitvoer. Het retourneert een dataframe met evaluatiescores die worden berekend door LLM-rechters die deel uitmaken van agentevaluatie.
U kunt het volgende kopiëren en plakken in uw bestaande Databricks-notebook:
%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'])
U kunt ook het volgende notebook importeren en uitvoeren in uw Databricks-werkruimte:
Voorbeeldnotebook voor de evaluatie van ai-agent in Mozaïek
Invoer en uitvoer van agentevaluatie
In het volgende diagram ziet u een overzicht van de invoer die is geaccepteerd door agentevaluatie en de bijbehorende uitvoer die door agentevaluatie wordt geproduceerd.
Invoerwaarden
Zie het invoerschema voor meer informatie over de verwachte invoer voor agentevaluatie, inclusief veldnamen en gegevenstypen. Enkele van de velden zijn het volgende:
- Query van de gebruiker (
request
): Invoer voor de agent (vraag of query van de gebruiker). Bijvoorbeeld 'Wat is RAG?'. - Antwoord van de agent (
response
): Antwoord gegenereerd door de agent. Bijvoorbeeld: "Ophalen van augmented generation is ...". - Verwacht antwoord (
expected_response
): (Optioneel) Een antwoord op de grond (correct). - MLflow-trace (): (
trace
optioneel) De MLflow-trace van de agent, waaruit agentevaluatie tussenliggende uitvoer extraheert, zoals de opgehaalde context of hulpprogramma-aanroepen. U kunt deze tussenliggende uitvoer ook rechtstreeks opgeven.
Uitvoerwaarden
Op basis van deze invoer produceert Agent Evaluation twee soorten uitvoer:
- Evaluatieresultaten (per rij): Voor elke rij die als invoer wordt geleverd, produceert Agent Evaluation een bijbehorende uitvoerrij die een gedetailleerde evaluatie bevat van de kwaliteit, kosten en latentie van uw agent.
- LLM-rechters controleren verschillende aspecten van kwaliteit, zoals juistheid of grondheid, het uitvoeren van een ja/nee-score en geschreven rationale voor die score. Zie Hoe kwaliteit, kosten en latentie worden beoordeeld door agentevaluatie voor meer informatie.
- De beoordelingen van de LLM-rechters worden gecombineerd om een algemene score te produceren die aangeeft of die rij 'pass' (van hoge kwaliteit) of 'mislukt' is (heeft een kwaliteitsprobleem).
- Voor eventuele mislukte rijen wordt een hoofdoorzaak geïdentificeerd. Elke hoofdoorzaak komt overeen met de beoordeling van een specifieke LLM-rechter, zodat u de logica van de rechter kunt gebruiken om potentiële oplossingen te identificeren.
- Kosten en latentie worden geëxtraheerd uit de MLflow-trace. Zie Hoe kosten en latentie worden beoordeeld voor meer informatie.
- Metrische gegevens (aggregatiescores): geaggregeerde scores die de kwaliteit, kosten en latentie van uw agent in alle invoerrijen samenvatten. Deze omvatten metrische gegevens, zoals het percentage juiste antwoorden, het gemiddelde aantal tokens, de gemiddelde latentie en meer. Zie Hoe kosten en latentie worden geëvalueerd en hoe metrische gegevens worden geaggregeerd op het niveau van een MLflow-uitvoering voor kwaliteit, kosten en latentie.
Ontwikkeling (offline evaluatie) en productie (online monitoring)
Agentevaluatie is ontworpen om consistent te zijn tussen uw ontwikkelomgevingen (offline) en productieomgevingen (online). Dit ontwerp maakt een soepele overgang van ontwikkeling naar productie mogelijk, zodat u snel agentische toepassingen van hoge kwaliteit kunt herhalen, evalueren, implementeren en bewaken.
Het belangrijkste verschil tussen ontwikkeling en productie is dat u in productie geen grondwaarlabels hebt, terwijl u in ontwikkeling desgewenst grondwaarlabels kunt gebruiken. Met behulp van ground-truth labels kan Agent Evaluation aanvullende metrische gegevens van kwaliteit berekenen.
Ontwikkeling (offline)
In ontwikkeling zijn uw requests
en expected_responses
afkomstig uit een evaluatieset. Een evaluatieset is een verzameling representatieve invoer die uw agent nauwkeurig moet kunnen verwerken. Zie Evaluatiesets voor meer informatie over evaluatiesets.
response
trace
Agentevaluatie kan de code van uw agent aanroepen om deze uitvoer voor elke rij in de evaluatieset te genereren. U kunt deze uitvoer ook zelf genereren en doorgeven aan agentevaluatie. Zie Hoe u invoer kunt opgeven voor een evaluatieuitvoering voor meer informatie.
Productie (online)
In productie zijn alle invoer voor agentevaluatie afkomstig uit uw productielogboeken.
Als u Mosaic AI Agent Framework gebruikt om uw AI-toepassing te implementeren, kan agentevaluatie worden geconfigureerd om deze invoer automatisch te verzamelen uit de door agent verbeterde deductietabellen en voortdurend een bewakingsdashboard bij te werken. Zie De kwaliteit van uw agent controleren op productieverkeer voor meer informatie.
Als u uw agent buiten Azure Databricks implementeert, kunt u uw logboeken etleren naar het vereiste invoerschema en op dezelfde manier een bewakingsdashboard configureren.
Een kwaliteitsbenchmark met een evaluatieset instellen
Als u de kwaliteit van een AI-toepassing in ontwikkeling (offline) wilt meten, moet u een evaluatieset definiëren, dat wil zeggen een set representatieve vragen en optionele basisantwoorden. Als de toepassing een ophaalstap omvat, zoals in RAG-werkstromen, kunt u desgewenst ondersteunende documenten opgeven waarop u verwacht dat het antwoord is gebaseerd.
Zie Evaluatiesets voor meer informatie over evaluatiesets, waaronder metrische afhankelijkheden en best practices. Zie het invoerschema voor agentevaluatie voor het vereiste schema.
Evaluatieuitvoeringen
Zie Een evaluatie uitvoeren en de resultaten bekijken voor meer informatie over het uitvoeren van een evaluatie. AgentEvaluatie ondersteunt twee opties voor het leveren van uitvoer van de keten:
- U kunt de toepassing uitvoeren als onderdeel van de evaluatieuitvoering. De toepassing genereert resultaten voor elke invoer in de evaluatieset.
- U kunt uitvoer opgeven van een eerdere uitvoering van de toepassing.
Zie Hoe u invoer kunt opgeven voor een evaluatieuitvoering voor meer informatie en uitleg over wanneer u elke optie gebruikt.
Menselijke feedback krijgen over de kwaliteit van een GenAI-toepassing
Met de Databricks-beoordelings-app kunt u eenvoudig feedback verzamelen over de kwaliteit van een AI-toepassing van menselijke revisoren. Zie Feedback krijgen over de kwaliteit van een agentische toepassing voor meer informatie.
Geo-beschikbaarheid van assistentfuncties
Mosaic AI Agent Evaluation is een Aangewezen Service die geo's gebruikt voor het beheren van gegevenslocatie bij het verwerken van klantinhoud. Zie Databricks Designated Services voor meer informatie over de beschikbaarheid van agentevaluatie in verschillende geografische gebieden.
Prijzen
Zie De prijzen voor de evaluatie van mozaïek-AI-agent voor informatie over prijzen.
Beperking
Agentevaluatie is niet beschikbaar in HIPAA-werkruimten.
Informatie over de modellen die LLM-rechters aandrijven
- LLM-rechters kunnen services van derden gebruiken om uw GenAI-toepassingen te evalueren, waaronder Azure OpenAI beheerd door Microsoft.
- Voor Azure OpenAI heeft Databricks zich afgemeld voor Misbruikbewaking, zodat er geen prompts of antwoorden worden opgeslagen met Azure OpenAI.
- Voor werkruimten van de Europese Unie (EU) gebruiken LLM-rechters modellen die in de EU worden gehost. In alle andere regio's worden modellen gebruikt die worden gehost in de VS.
- Door Azure AI aangedreven AI-ondersteunende functies uit te schakelen, voorkomt u dat de LLM-rechter Azure AI-modellen aanroept.
- Gegevens die naar de LLM-rechter worden verzonden, worden niet gebruikt voor modeltrainingen.
- LLM-rechters zijn bedoeld om klanten te helpen hun RAG-toepassingen te evalueren en LLM-rechters mogen niet worden gebruikt om een LLM te trainen, te verbeteren of af te stemmen.