Sdílet prostřednictvím


Jak monitorovat kvalitu agenta v produkčním provozu

Důležité

Tato funkce je ve verzi Public Preview.

Tento článek popisuje, jak monitorovat kvalitu nasazených agentů v produkčním provozu pomocí vyhodnocení agenta Mosaic AI.

Online monitorování je klíčovým aspektem zajištění toho, aby váš agent fungoval podle očekávání s požadavky z reálného světa. Pomocí níže uvedeného poznámkového bloku můžete na požadavcích obsluhujících agenty průběžně spouštět hodnocení agenta prostřednictvím koncového bodu obsluhujícího agenta. Poznámkový blok vygeneruje řídicí panel, který zobrazuje metriky kvality a také zpětnou vazbu uživatelů (palce nahoru 👍 nebo palce dolů 👎) pro výstupy agenta v produkčních požadavcích. Tato zpětná vazba může dorazit prostřednictvím aplikace pro kontrolu od zúčastněných stran nebo rozhraní API zpětné vazby v produkčních koncových bodech, které vám umožní zachytit reakce koncových uživatelů. Řídicí panel umožňuje rozdělit metriky podle různých dimenzí, včetně času, zpětné vazby uživatelů, stavu pass/fail a tématu vstupní žádosti (například zjistit, jestli konkrétní témata korelují s výstupy nižší kvality). Kromě toho se můžete hlouběji ponořit do jednotlivých požadavků s nízkou kvalitou odpovědí, abyste je mohli dále ladit. Všechny artefakty, jako je řídicí panel, jsou plně přizpůsobitelné.

řídicí panel online monitorování

Požadavky

Průběžné zpracování produkčního provozu prostřednictvím vyhodnocení agenta

Následující ukázkový poznámkový blok ukazuje, jak spustit vyhodnocení agenta na protokolech požadavků z koncového bodu obsluhujícího agenta. Pokud chcete poznámkový blok spustit, postupujte takto:

  • Naimportujte poznámkový blok do pracovního prostoru (pokyny). Níže můžete kliknout na tlačítko Kopírovat odkaz pro import a získat adresu URL pro import.
  • Vyplňte požadované parametry v horní části importovaného poznámkového bloku.
    • Název koncového bodu obsluhy nasazeného agenta
    • Vzorkovací frekvence mezi 0,0 a 1,0 a požadavky na vzorkování. Pro koncové body s vysokým objemem provozu použijte nižší míru.
    • (Volitelné) Složka pracovního prostoru pro ukládání vygenerovaných artefaktů (například řídicích panelů). Výchozí je domovská složka.
    • (Volitelné) Seznam témat pro kategorizaci vstupních požadavků. Výchozí hodnota je seznam, který se skládá z jednoho univerzálního tématu.
  • V importovaném poznámkovém bloku klikněte na Spustit vše . To provede počáteční zpracování produkčních protokolů v rámci 30denního okna a inicializuje řídicí panel, který shrnuje metriky kvality.
  • Kliknutím na Naplánovat vytvoříte úlohu, která bude poznámkový blok spouštět pravidelně. Úloha bude přírůstkově zpracovávat produkční protokoly a udržovat řídicí panel v aktualizovaném stavu.

Poznámkový blok vyžaduje výpočetní prostředky bez serveru nebo cluster se spuštěným modulem Databricks Runtime 15.2 nebo novějším. Při nepřetržitém monitorování produkčního provozu na koncových bodech s velkým počtem požadavků doporučujeme nastavit častější plán. Například hodinový plán by pro koncový bod s více než 10 000 požadavky za hodinu fungoval dobře a 10% vzorkovací frekvence.

Spuštění vyhodnocení agenta v poznámkovém bloku provozního provozu

Získejte poznámkový blok

Uplatňování pokynů na odpovědi vašeho agenta

Soudce pro dodržování pokynů zajišťuje, že výstupy modelu odpovídají zadaným pokynům. Tyto globální pokyny můžete napsat, jak je znázorněno v poznámkovém bloku uvedeném výše, nebo následujícím způsobem:

mlflow.evaluate(
    ...,
    evaluator_config={
        "databricks-agent": {
            "global_guidelines": [
                "The response must be in English",
                "The response must be clear, coherent, and concise",
            ],
        }
    }
)

Výsledky tohoto soudce se vyplní v tabulce vyhodnocovaných protokolů žádostí vygenerovaných ukázkovým poznámkový blokem (eval_requests_log_table_name v poznámkovém bloku) a řídicí panel je možné přizpůsobit tak, aby zobrazoval výsledky soudce v průběhu času.

Vytváření upozornění na metriky vyhodnocení

Po naplánování pravidelného spouštění poznámkového bloku můžete přidat upozornění, která se mají dostávat, když se metriky kvality sníží, než se čekalo. Tyto výstrahy se vytvářejí a používají stejným způsobem jako ostatní výstrahy Sql Databricks. Nejprve vytvořte SQL dotaz Databricks na tabulku protokolů žádostí o vyhodnocení, která byla vygenerována ukázkovým poznámkovým blokem. Následující kód ukazuje příklad dotazu na tabulku žádostí o vyhodnocení a filtrování požadavků z poslední hodiny:

SELECT
  `date`,
  AVG(pass_indicator) as avg_pass_rate
FROM (
  SELECT
    *,
    CASE
      WHEN `response/overall_assessment/rating` = 'yes' THEN 1
      WHEN `response/overall_assessment/rating` = 'no' THEN 0
      ELSE NULL
    END AS pass_indicator
  -- The eval requests log table is generated by the example notebook
  FROM {eval_requests_log_table_name}
  WHERE `date` >= CURRENT_TIMESTAMP() - INTERVAL 1 DAY
)
GROUP BY ALL

Pak vytvořte upozornění SQL Databricks, které vyhodnotí dotaz na požadovanou frekvenci, a odešlete oznámení, pokud se výstraha aktivuje. Následující obrázek ukazuje ukázkovou konfiguraci pro odeslání výstrahy, když celková rychlost průchodu klesne pod 80 %.

konfigurace upozornění online monitorování

Ve výchozím nastavení se odešle e-mailové oznámení. Můžete také nastavit webhook nebo odesílat oznámení jiným aplikacím, jako je Slack nebo PagerDuty.

Přidání vybraných produkčníchprotokolůch

Když uživatelé poskytují zpětnou vazbu k vašim žádostem, můžete požádat odborníky na danou problematiku, aby zkontrolovali žádosti s negativní zpětnou vazbou (požadavky s palcem dolů na odpovědi nebo načítání). Uděláte to tak, že do aplikace pro kontrolu přidáte konkrétní protokoly, abyste mohli požádat o odbornou kontrolu.

Následující kód ukazuje příklad dotazu na tabulku protokolu posouzení, která načte nejnovější hodnocení člověka podle ID požadavku a ID zdroje:

with ranked_logs as (
  select
      `timestamp`,
      request_id,
      source.id as source_id,
      text_assessment.ratings["answer_correct"]["value"] as text_rating,
      retrieval_assessment.ratings["answer_correct"]["value"] as retrieval_rating,
      retrieval_assessment.position as retrieval_position,
      row_number() over (
        partition by request_id, source.id, retrieval_assessment.position order by `timestamp` desc
      ) as rank
  from {assessment_log_table_name}
)
select
    request_id,
    source_id,
    text_rating,
    retrieval_rating
from ranked_logs
where rank = 1
order by `timestamp` desc

V následujícím kódu nahraďte ... řádek human_ratings_query = "..." dotazem podobným výše uvedenému. Následující kód pak extrahuje požadavky s negativní zpětnou vazbou a přidá je do aplikace pro kontrolu:

from databricks import agents

human_ratings_query = "..."
human_ratings_df = spark.sql(human_ratings_query).toPandas()

# Filter out the positive ratings, leaving only negative and "IDK" ratings
negative_ratings_df = human_ratings_df[
  (human_ratings_df["text_rating"] != "positive") | (human_ratings_df["retrieval_rating"] != "positive")
]
negative_ratings_request_ids = negative_ratings_df["request_id"].drop_duplicates().to_list()

agents.enable_trace_reviews(
  model_name=YOUR_MODEL_NAME,
  request_ids=negative_ratings_request_ids,
)

Další podrobnosti o aplikaci pro recenze najdete v oddílu Získejte zpětnou vazbu o kvalitě agentní aplikace.