Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Important
Databricks doporučuje používat MLflow 3 k vyhodnocení a monitorování aplikací GenAI. Tato stránka popisuje vyhodnocení agenta MLflow 2.
- Úvod k vyhodnocení a monitorování na MLflow 3 najdete v tématu Vyhodnocení a monitorování agentů AI.
- Informace o migraci na MLflow 3 najdete v tématu Migrace na MLflow 3 z vyhodnocení agenta.
- Informace o MLflow 3 najdete v tématu Vyhodnocení a monitorování agentů AI.
Tento článek obsahuje přehled práce s hodnocením agenta na základě MLflow 2.
Jak použít hodnocení agenta?
Následující kód ukazuje, jak volat a testovat hodnocení agenta na předchozích generovaných výstupech. Vrátí datový rámec s hodnotícími skóre vypočítanými porotci LLM, kteří jsou součástí hodnocení agenta. V ukázkových poznámkových blocích najdete poznámkový blok rychlého startu obsahující podobný kód, který můžete spustit v pracovním prostoru Azure Databricks.
Do existujícího poznámkového bloku Azure Databricks můžete zkopírovat a vložit následující položky:
%pip install mlflow==2.21.0 databricks-agents==0.16.0
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.",
]
}
global_guidelines = {
"english": ["The response must be in English"],
"clarity": ["The response must be clear, coherent, and concise"],
}
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 Agent Evaluation
evaluator_config={
"databricks-agent": {"global_guidelines": global_guidelines}
}
)
# Review the evaluation results in the MLFLow UI (see console output), or access them in place:
display(result.tables['eval_results'])
Vstupy a výstupy vyhodnocení agenta
Inputs
Podrobnosti o očekávaných vstupních údajích pro vyhodnocení agenta, včetně názvů polí a datových typů, viz vstupní schéma. Některá pole jsou následující:
-
Dotaz uživatele (
request): Vstup do agenta (dotaz nebo dotaz uživatele). Například "Co je RAG?". -
Odpověď agenta (
response): Odpověď vygenerovaná agentem Příklad: "Retrieval augmented generation je...". -
Očekávaná odpověď (
expected_response): (Volitelné) Odpověď základní pravdy (správná). -
Trasování MLflow (
trace): (Volitelné) Trasování MLflow agenta, ze kterého vyhodnocení agenta získává průběžné výstupy, jako je získaný kontext nebo volání nástroje. Případně můžete tyto zprostředkující výstupy zadat přímo. -
Pokyny (
guidelines): (Volitelné) Seznam pokynů nebo pojmenovaných pokynů, které by měl výstup modelu dodržovat.
Výstupy
Na základě těchto vstupů vytvoří vyhodnocení agenta dva typy výstupů:
-
Výsledky vyhodnocení (na řádek): Pro každý řádek zadaný jako vstup vytvoří vyhodnocení agenta odpovídající výstupní řádek, který obsahuje podrobné posouzení kvality, nákladů a latence vašeho agenta.
- LLM posuzují různé aspekty kvality, jako je správnost nebo důvodnost, a udělují skóre ve formě ano/ne s písemným odůvodněním tohoto hodnocení. Podrobnosti najdete v tématu Jak se hodnotí kvalita, náklady a latence při hodnocení agenta (MLflow 2).
- Hodnocení porotců LLM se zkombinují, aby se vytvořilo celkové skóre, které označuje, jestli se tento řádek "projde" (je vysoká kvalita) nebo "selže" (má problém s kvalitou).
- U všech neúspěšných řádků je identifikována hlavní příčina. Každá původní příčina odpovídá posouzení konkrétního soudce LLM, což vám umožní použít odůvodnění soudce k identifikaci potenciálních oprav.
- Náklady a latence se extrahují z MLflow trace. Podrobnosti najdete v tématu Vyhodnocení nákladů a latence.
- Metriky (agregované skóre): Agregované skóre, které shrnují kvalitu, náklady a latenci vašeho agenta napříč všemi vstupními řádky. Patří mezi ně metriky, jako je procento správných odpovědí, průměrný počet tokenů, průměrná latence a další. Podrobnosti najdete v tématu Vyhodnocení nákladů a latence a agregace metrik na úrovni spuštění MLflow pro kvalitu, náklady a latenci.
Vývoj (offline vyhodnocení) a produkce (online monitorování)
Vyhodnocení agenta je navržené tak, aby bylo konzistentní mezi vývojovými (offline) a produkčními (online) prostředími. Tento návrh umožňuje hladký přechod z vývoje do produkčního prostředí a umožňuje rychle iterovat, vyhodnocovat, nasazovat a monitorovat vysoce kvalitní agentické aplikace.
Hlavní rozdíl mezi vývojem a produkcí spočívá v tom, že v produkci nemáte referenční popisky, zatímco ve vývoji můžete volitelně používat referenční popisky. Použití referenčních štítků umožňuje Hodnocení Agenta vypočítat další metriky kvality.
Vývoj (offline)
Ve vývoji pocházejí vaše requests a expected_responses z hodnotící sady. Sada vyhodnocení je kolekce reprezentativních vstupů, které by měl váš agent správně zpracovat. Další informace o vyhodnocovacích sadách najdete v tématu Zkušební sady (MLflow 2).
Vyhodnocení agenta může volat kód vašeho agenta, aby vygeneroval výstupy response a trace pro každý řádek v sadě vyhodnocení. Alternativně můžete tyto výstupy vygenerovat sami a předat je do vyhodnocení agenta. Více informací naleznete v kapitole Jak poskytnout vstup pro evaluaci.
Výroba (online)
Informace o monitorování v produkčním prostředí najdete v tématu Monitorování aplikací GenAI v produkčním prostředí. Tato funkce MLflow 3 je kompatibilní s experimenty MLflow 2. Pokud chcete povolit monitorování experimentu MLflow 2, použijte sadu MLflow 3 SDK, nainstalujte mlflow>=3.1.
Stanovte referenční úroveň kvality s hodnotící sadou
Pokud chcete měřit kvalitu aplikace AI ve vývoji (offline), musíte definovat sadu hodnocení, tj. sadu reprezentativních otázek a volitelných odpovědí na základní pravdu. Pokud aplikace zahrnuje krok načítání, například v pracovních postupech RAG, můžete volitelně poskytnout podpůrné dokumenty, na základě které očekáváte odpověď.
- Podrobnosti o sadách vyhodnocení, včetně závislostí metrik a osvědčených postupů, najdete v tématu Sady vyhodnocení (MLflow 2).
- Požadované schéma najdete v tématu Vstupní schéma vyhodnocení agenta (MLflow 2).
- Informace o tom, jak synteticky generovat vysoce kvalitní vyhodnocovací sadu, naleznete v tématu Syntetizovat vyhodnocovací sady.
Hodnotící běhy
Podrobnosti o tom, jak spustit vyhodnocení, najdete v tématu Spuštění vyhodnocení a zobrazení výsledků (MLflow 2). Vyhodnocení agenta podporuje dvě možnosti poskytování výstupu z řetězu:
- Aplikaci můžete spustit jako součást zkušebního spuštění. Aplikace generuje výsledky pro každý vstup v testovací sadě.
- Můžete zadat výstup z předchozího spuštění aplikace.
Podrobnosti a vysvětlení, kdy se mají jednotlivé možnosti použít, najdete v tématu Zadání vstupů do zkušebního spuštění.
Získejte lidskou zpětnou vazbu o kvalitě aplikace generující umělé inteligence.
Aplikace pro kontrolu Databricks usnadňuje shromažďování názorů na kvalitu aplikace AI od kontrolorů lidí. Podrobnosti najdete v tématu Použití aplikace pro lidské hodnocení aplikace generativní AI (MLflow 2).
Geografická dostupnost hodnocení agenta
Hodnocení agenta je vyhrazená služba, která používá geografické oblasti ke správě umístění dat při zpracování obsahu zákazníka. Další informace o dostupnosti hodnocení agentů v různých geografických oblastech najdete v tématu Databricks Designated Services.
Pricing
Informace o cenách najdete v tématu Ceny vyhodnocení agenta.
Informace o modelech pohánějících soudce LLM
- Porotci LLM můžou k vyhodnocení aplikací GenAI, včetně Azure OpenAI provozovaných Microsoftem, používat služby třetích stran.
- Pro Azure OpenAI se Databricks odhlásila z monitorování zneužití, takže se v Azure OpenAI neukládají žádné výzvy ani odpovědi.
- V případě pracovních prostorů Evropské unie (EU) používají porotci LLM modely hostované v EU. Všechny ostatní oblasti používají modely hostované v USA.
- Zakázání funkcí umělé inteligence založené na partnerech zabrání soudce LLM v volání modelů založených na partnerech. Stále můžete využít soudce LLM tím, že poskytnete svůj vlastní model.
- Porotci LLM mají pomoct zákazníkům vyhodnotit jejich agenty a aplikace GenAI a výstupy soudce LLM by neměly být použity k trénování, zlepšování nebo vyladění LLM.
Ukázkové notebooky
Následující poznámkové bloky ukazují, jak využít Agent Evaluation.