Co je hodnocení AI agenta Mosaic?
Důležité
Tato funkce je ve verzi Public Preview.
Tento článek poskytuje přehled o tom, jak pracovat s hodnocením agenta Mosaic AI. Hodnocení agentů pomáhá vývojářům vyhodnotit kvalitu, náklady a latenci aplikací AI agentů , včetně aplikací RAG a řetězců. Vyhodnocení agenta je navržené tak, aby identifikovalo problémy s kvalitou a určilo původní příčinu těchto problémů. Možnosti vyhodnocení agenta jsou sjednocené ve fázích vývoje, nasazení a produkce životního cyklu MLOps a všechny metriky vyhodnocení a data jsou zaznamenávány do relací MLflow.
Vyhodnocení agenta integruje pokročilé techniky hodnocení založené na výzkumu do uživatelsky přívětivé sady SDK a uživatelského rozhraní, které je integrováno s vaším lakehousem (datovým jezerem), MLflow a dalšími komponentami Databricks Data Intelligence Platformy. Tato proprietární technologie vyvinutá ve spolupráci s výzkumem společnosti Mosaic AI nabízí komplexní přístup k analýze a zvýšení výkonu agentů.
Aplikace AI agentů jsou složité a zahrnují mnoho různých komponent. Vyhodnocení výkonu těchto aplikací není tak jednoduché jako vyhodnocení výkonu tradičních modelů ML. Kvalitativní i kvantitativní metriky, které se používají k vyhodnocení kvality, jsou ze své podstaty složitější. Vyhodnocení agenta zahrnuje proprietární metriky LLM a metriky agentů pro vyhodnocení kvality načítání a požadavků a také celkové metriky výkonu, jako jsou latence a náklady na tokeny.
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.
Do existujícího poznámkového bloku Databricks můžete zkopírovat a vložit následující položky:
%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.",
]
}
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 Mosaic AI 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'])
Případně můžete importovat a spustit následující poznámkový blok v pracovním prostoru Databricks:
Ukázkový poznámkový blok s hodnocením agenta AI v systému Mosaic
Pořiď si poznámkový blok
Vstupy a výstupy vyhodnocení agenta
Následující diagram znázorňuje přehled vstupů přijatých vyhodnocením agenta a odpovídajících výstupů vytvořených vyhodnocením agenta.
Vstupy
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á). - (Volitelné) Sledování MLflow: Trasování agenta, ze kterého vyhodnocení agenta extrahuje zprostředkující výstupy, jako je načtený kontext nebo volání nástroje. Případně můžete tyto zprostředkující výstupy zadat přímo.
-
Guidelines (
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 Hodnocení agenta v části Jak se hodnotí kvalita, náklady a latence.
- Hodnocení LLM se zkombinují a vytvoří celkové skóre, které udává, jestli daný řádek "projde" (má vysokou kvalitu) nebo "selže" (má kvalitativní problém).
- 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 výrobou spočívá v tom, že v produkčním prostředí nemáte popisky základní pravdy, zatímco ve vývoji můžete volitelně používat popisky základní pravdy. 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
ze sady hodnocení . Sada vyhodnocení je kolekce reprezentativních vstupů, které by měl váš agent správně zpracovat. Další informace o zkušebních sadách najdete v tématu Sady vyhodnocení.
Pokud chcete získat response
a trace
, může Agent hodnocení volat kód vašeho agenta, který vygeneruje tyto výstupy pro každý řádek v hodnotící sadě. 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)
V produkčním prostředí pocházejí všechny vstupy do vyhodnocení agenta z vašich produkčních protokolů.
Pokud k nasazení aplikace AI používáte Mosaic AI Agent Framework, je možné nakonfigurovat vyhodnocení agenta tak, aby automaticky shromažďovalo tyto vstupy z Monitor nasazených agentů a průběžně aktualizovalo tabulku monitorování. Další podrobnosti najdete v sekci Jak sledovat svou gen AI aplikaci.
Pokud nasadíte agenta mimo Azure Databricks, můžete protokoly zpracovat pomocí ETL do požadovaného vstupního schématu a podobně nakonfigurovat monitorovací panel.
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í.
- Požadované schéma najdete v tématu Vstupní schéma vyhodnocení agenta.
- Informace o tom, jak synteticky generovat vysoce kvalitní vyhodnocovací sadu, naleznete v tématu Syntetizovat vyhodnocovací sady.
Zkušební spuštění
Podrobnosti o tom, jak spustit vyhodnocení, najdete v tématu Spuštění vyhodnocení a zobrazení výsledků. 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 Review pro lidské recenze aplikace AI pro generování.
Dostupnost systému hodnocení agenta Mosaic AI v jednotlivých geografických oblastech
Hodnocení agenta AI v systému Mosaic je stanovená služba, která používá Geos ke správě rezidence dat při zpracování zákaznického obsahu. Další informace o dostupnosti hodnocení agentů v různých geografických oblastech najdete v tématu Databricks Designated Services.
Ceny
Informace o cenách najdete v tématu Ceny hodnocení agenta Mosaic AI.
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í asistentských funkcí využívajících Azure AI zabraňuje soudci LLM v volání modelů využívajících Azure AI.
- Data odesílaná k soudci LLM se nepoužívají k trénování modelu.
- Porotci LLM mají pomoct zákazníkům vyhodnotit jejich aplikace RAG a výstupy soudce LLM by neměly být použity k trénování, zlepšování nebo vyladění LLM.