Sdílet prostřednictvím


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

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.

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.

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

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

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

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.