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."
        }],
      },
      # 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.",
    ],
    "guidelines": [
        "The response must be in English",
        "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
)

# 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ískej 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é vstupní údaje pro vyhodnocení agenta, včetně názvů polí a datových typů, najdete 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: "Načítání rozšířené generace je...".
  • Očekávaná odpověď (expected_response): (Volitelné) Odpověď základní pravdy (správná).
  • trace (Volitelné) 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.
  • Guidelines (guidelines): (volitelné) Seznam pokynů, které má 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 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á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. 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 Agentní rámec Mosaic AI, je možné nakonfigurovat vyhodnocení agenta tak, aby automaticky shromažďoval tyto vstupy z tabulek dedukcí vylepšených agentem a průběžně aktualizoval monitorovací řídicí panel. 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 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ěď.

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 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ě aplikace agentury.

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.

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.