Sdílet prostřednictvím


Hodnocení agenta AI pro mozaiku (MLflow 2)

Důležité

Tato stránka popisuje použití zkušební verze 0.22 agenta s MLflow 2. Databricks doporučuje používat MLflow 3, které je integrováno s hodnocením agenta >1.0. V MLflow 3 jsou nyní rozhraní API pro vyhodnocení agenta součástí balíčku mlflow.

Informace o tomto tématu najdete v tématu Vyhodnocení a monitorování.

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ů.

Diagram LLMOps znázorňující vyhodnocení

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. Podívejte se na ukázkové poznámkové bloky pro rychlý start obsahující podobný kód, který můžete spustit v pracovním prostoru Databricks.

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'])

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.

agent_eval_data_flows

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á).
  • 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ů:

  1. 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.
  2. 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)

agent_eval_overview_dev

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)

agent_eval_overview_prod

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 tématu Monitorování aplikací nasazených pomocí rozhraní Agent Framework (MLflow 2).

Pokud nasadíte agenta mimo Azure Databricks, můžete použít také monitorování agentů. Viz Monitorování aplikací nasazených mimo Azure Databricks (MLflow 2)

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ěď.

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).

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 části 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.
  • 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 znázorňují, jak používat hodnocení agenta AI v systému Mosaic AI.

Sešit rychlý průvodce k hodnocení AI agenta v systému Mosaic

Pořiď si poznámkový blok

Hodnocení agentů: vlastní metriky, pokyny a hodnocení odborníků v oblasti.

Pořiď si poznámkový blok