Sdílet prostřednictvím


Trasování MLflow pro agenty

Důležité

Tato funkce je ve verzi Public Preview.

Tento článek popisuje trasování MLflow a scénáře, ve kterých je užitečné vyhodnotit generování aplikací AI ve vašem systému AI.

Při vývoji softwaru zahrnuje trasování posloupnosti událostí, jako jsou relace uživatelů nebo toky požadavků. V kontextu systémů AI trasování často odkazuje na interakce, které máte se systémem AI. Příklad trasování systému AI může vypadat jako instrumentace vstupů a parametrů pro aplikaci RAG, která obsahuje zprávu uživatele s výzvou, vektorovým vyhledáváním a rozhraním s modelem generující AI.

Co je trasování MLflow?

Pomocí trasování MLflow můžete protokolovat, analyzovat a porovnávat trasování v různých verzích aplikací generující umělé inteligence. Umožňuje ladit kód generující AI Pythonu a sledovat vstupy a odpovědi. To vám může pomoct zjistit podmínky nebo parametry, které přispívají k nízkému výkonu aplikace. Trasování MLflow je úzce integrované s nástroji a infrastrukturou Databricks a umožňuje ukládat a zobrazovat všechna trasování v poznámkových blocích Databricks nebo v uživatelském rozhraní experimentu MLflow při spuštění kódu.

Při vývoji systémů AI v Databricks pomocí knihoven, jako jsou LangChain, LlamaIndex, OpenAI nebo vlastní PyFunc, MLflow Tracing umožňuje zobrazit všechny události a zprostředkující výstupy z každého kroku vašeho agenta. Můžete snadno zobrazit výzvy, které modely a retrievery byly použity, které dokumenty byly načteny k rozšíření odpovědi, jak dlouho trvalo a jak dlouho trvalo a konečný výstup. Pokud například model halucinuje, můžete rychle zkontrolovat každý krok, který vedl k halucinaci.

Proč používat trasování MLflow?

Trasování MLflow nabízí několik výhod, které vám pomůžou sledovat pracovní postup vývoje. Je například možné:

  • Projděte si interaktivní vizualizaci trasování a použijte nástroj pro vyšetřování pro diagnostiku problémů ve vývoji.
  • Ověřte, že šablony výzvy a mantinely vytvářejí rozumné výsledky.
  • Prozkoumejte a minimalizujte dopad latence různých architektur, modelů, velikostí bloků dat a postupů vývoje softwaru.
  • Měření nákladů na aplikace sledováním využití tokenů podle různých modelů
  • Vytvořte datové sady srovnávacích testů ("zlatý") pro vyhodnocení výkonu různých verzí.
  • Ukládejte trasování z koncových bodů produkčního modelu, abyste mohli ladit problémy, a provádět offline kontrolu a hodnocení.

Instalace trasování MLflow

Trasování MLflow je k dispozici ve verzích MLflow 2.13.0 a novějších.

%pip install mlflow>=2.13.0 -qqqU
%restart_python

Případně můžete %pip install databricks-agents nainstalovat nejnovější verzi databricks-agents , která zahrnuje kompatibilní verzi MLflow.

Použití trasování MLflow ve vývoji

Trasování MLflow pomáhá analyzovat problémy s výkonem a zrychlit cyklus vývoje agentů. V následujících částech se předpokládá, že provádíte vývoj agenta a trasování MLflow z poznámkového bloku.

Poznámka:

V prostředí poznámkového bloku může trasování MLflow sčítat až několik sekund režijních nákladů na dobu běhu agenta. To primárně vychází z latence trasování protokolování do experimentu MLflow. V koncovém bodu produkčního modelu má trasování MLflow mnohem menší dopad na výkon. Viz použití trasování MLflow v produkčním prostředí.

Poznámka:

Od databricks Runtime 15.4 LTS ML je trasování MLflow ve výchozím nastavení povolené v poznámkových blocích. Pokud chcete zakázat trasování, například pomocí jazyka LangChain, můžete v poznámkovém bloku spustit mlflow.langchain.autolog(log_traces=False) .

Přidání trasování do agenta

Trasování MLflow poskytuje tři různé způsoby použití trasování s aplikací generující AI s trasováním. Příklady použití těchto metod najdete v tématu Přidání trasování do vašich agentů . Podrobné informace o rozhraní API najdete v dokumentaci k MLflow.

rozhraní API Doporučený případ použití Popis
Automatickélogování MLflow Vývoj v integrovaných knihovnách GenAI Automatické protokolování automaticky instrumentuje trasování pro oblíbené opensourcové architektury, jako jsou LangChain, LlamaIndex a OpenAI. Když přidáte mlflow.<library>.autolog() na začátek poznámkového bloku, MLflow automaticky zaznamenává trasování pro každý krok spuštění agenta.
Rozhraní API fluentu Vlastní agent s Pyfunc Rozhraní API s nízkým kódem pro instrumentaci systémů AI, aniž byste se museli starat o strukturu stromu trasování. MLflow určuje odpovídající strukturu stromové struktury nadřazené a podřízené struktury (rozpětí) na základě zásobníku Pythonu.
Klientská rozhraní API MLflow Pokročilé případy použití, jako je vícevláknové MLflowClient implementuje podrobnější rozhraní API bezpečná pro přístup z více vláken pro pokročilé případy použití. Tato rozhraní API nespravují vztah nadřazeného a podřízeného rozsahu, takže ho musíte zadat ručně, aby se vytvořila požadovaná struktura trasování. To vyžaduje více kódu, ale poskytuje lepší kontrolu nad životním cyklem trasování, zejména pro případy použití s více vlákny.

Doporučuje se pro případy použití, které vyžadují větší kontrolu, například vícevláknové aplikace nebo instrumentace založené na zpětném volání.

Kontrola trasování

Po spuštění instrumentovaného agenta můžete vygenerované trasování zkontrolovat různými způsoby:

  • Vizualizace trasování se vykreslí přímo ve výstupu buňky.
  • Trasování se protokoluje do experimentu MLflow. Úplný seznam historických trasování můžete zkontrolovat a vyhledat je na Traces kartě na stránce Experiment. Když agent běží pod aktivním spuštěním MLflow, můžete také najít trasování na stránce Spustit.
  • Trasování načítá programově pomocí rozhraní API search_traces().

Použití trasování MLflow v produkčním prostředí

Trasování MLflow je také integrováno s obsluhou modelu Mosaic AI, která umožňuje efektivně ladit problémy, monitorovat výkon a vytvořit zlatou datovou sadu pro offline vyhodnocení. Pokud je pro váš koncový bod obsluhy povolené trasování MLflow, zaznamenají se trasování v tabulce odvozování pod sloupcemresponse.

Pokud chcete povolit trasování MLflow pro váš obslužný koncový bod, je nutné nastavit ENABLE_MLFLOW_TRACING proměnnou prostředí v konfiguraci koncového bodu na True. Informace o nasazení koncového bodu s vlastními proměnnými prostředí najdete v tématu Přidání proměnných prostředí ve formátu prostého textu. Pokud jste nasadili agenta deploy() pomocí rozhraní API, trasování se automaticky zaprotokoluje do tabulky odvozování. Viz Nasazení agenta pro generování aplikace AI.

Poznámka:

Zápis trasování do odvozovací tabulky se provádí asynchronně, takže během vývoje nepřidává stejnou režii jako v prostředí poznámkového bloku. Přesto ale může do rychlosti odezvy koncového bodu zavádět určité režijní náklady, zejména pokud je velikost trasování pro každý požadavek na odvozování velká. Databricks nezaručuje žádnou smlouvu o úrovni služeb (SLA) pro skutečný dopad latence na koncový bod modelu, protože výrazně závisí na prostředí a implementaci modelu. Databricks doporučuje otestovat výkon koncového bodu a získat přehled o režii trasování před nasazením do produkční aplikace.

Následující tabulka obsahuje přibližný údaj o dopadu na latenci odvozování u různých velikostí trasování.

Velikost trasování na požadavek Dopad na latenci (ms)
~10 kB ~ 1 ms
~ 1 MB 50 ~ 100 ms
10 MB 150 ms ~

Omezení

  • Trasování MLflow je k dispozici v poznámkových blocích Databricks, úlohách poznámkových bloků a obsluhě modelů.

  • Automatické protokolování jazyka LangChain nemusí podporovat všechna rozhraní API pro predikce jazyka LangChain. Úplný seznam podporovaných rozhraní API najdete v dokumentaci K MLflow.