Sdílet prostřednictvím


Co je hodnocení agenta AI pro mozaiku?

Důležité

Tato funkce je ve verzi Public Preview.

Tento článek poskytuje přehled o tom, jak pracovat s hodnocením agenta SAE. 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, přípravy a produkce životního cyklu MLOps a všechny metriky vyhodnocení a data se protokolují do spuštění MLflow.

Vyhodnocení agenta integruje pokročilé techniky vyhodnocení založené na výzkumu do uživatelsky přívětivé sady SDK a uživatelského rozhraní, které je integrované s vaším lakehousem, MLflow a dalšími komponentami Platformy Databricks. 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.

Návody použít vyhodnocení agenta?

Následující kód ukazuje, jak volat a testovat vyhodnocení agenta na dříve generovaných výstupech. Vrátí datový rámec s vyhodnocením skóre vypočítanými porotci LLM, kteří jsou součástí vyhodnocení 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."
        }],
      },
      # 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'])

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

Získat 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.

agent_eval_data_flows

Vstupy

Podrobnosti o očekávaném vstupu pro vyhodnocení agenta, včetně názvů polí a datových typů, najdete ve vstupním schématu. 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: "Načítání rozšířené generace je...".
  • Očekávaná odpověď (expected_response): (Volitelné) Odpověď základní pravdy (správná).
  • Trasování MLflow (): (traceVolitelné) Trasování MLflow 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.

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 posuzuje různé aspekty kvality, jako je správnost nebo uzemnění, vypisující skóre ano/ne a písemné odůvodnění tohoto skóre. Podrobnosti najdete v tématu Hodnocení agenta v části Jak se hodnotí kvalita, náklady a latence.
    • 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 původní 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 trasování MLflow. 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 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í popisků základní pravdy umožňuje vyhodnocení agenta vypočítat další metriky kvality.

Vývoj (offline)

agent_eval_overview_dev

Ve vývoji pocházíte requests expected_responses ze sady vyhodnocení. 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 ho chcete získat response , tracemůže vyhodnocení agenta volat kód agenta, který vygeneruje tyto výstupy pro každý řádek v sadě vyhodnocení. Alternativně můžete tyto výstupy vygenerovat sami a předat je do vyhodnocení agenta. Další informace najdete v tématu Jak zadat vstup do zkušebního spuštění .

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 Rozhraní AgentAI, můžete vyhodnocení agenta nakonfigurovat tak, aby automaticky shromažďovaly tyto vstupy z tabulek odvozování s rozšířeným agentem a průběžně aktualizovaly řídicí panel monitorování. Další podrobnosti najdete v tématu Jak monitorovat kvalitu agenta v produkčním provozu.

Pokud nasadíte agenta mimo Azure Databricks, můžete protokoly ETL nasadit do požadovaného vstupního schématu a podobně nakonfigurovat řídicí panel monitorování.

Vytvoření srovnávacího testu kvality se sadou vyhodnocení

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.

Zkušební spuštění

Podrobnosti o tom, jak spustit vyhodnocení, najdete v tématu Postup 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 použít jednotlivé možnosti, najdete v tématu Jak zadat vstup do zkušebního spuštění.

Získejte lidskou zpětnou vazbu o kvalitě aplikace GenAI

Aplikace pro kontrolu Databricks usnadňuje shromažďování názorů na kvalitu aplikace AI od kontrolorů lidí. Podrobnosti najdete v tématu Získání zpětné vazby o kvalitě agentské aplikace.

Geografická dostupnost funkcí Pomocníka

Hodnocení agenta AI v systému Mosaic je určená 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.

Omezení

Vyhodnocení agenta není k dispozici v pracovních prostorech s podporou HIPAA.

Informace o modelech, které nutí 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í usnadnění AI využívajících Azure AI brání soudce LLM v volání modelů využívajících Azure AI.
  • Data odesílaná do soudce LLM se nepoužívají pro 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.