Dela via


MLflow-spårning för agenter

Viktigt!

Den här funktionen finns som allmänt tillgänglig förhandsversion.

Den här artikeln beskriver MLflow Tracing och scenarier där det är användbart för att utvärdera generativa AI-program i ditt AI-system.

Inom programvaruutveckling omfattar spårning inspelningssekvenser av händelser som användarsessioner eller begärandeflöden. I samband med AI-system refererar spårning ofta till interaktioner du har med ett AI-system. Ett exempel på ett AI-system kan se ut som att instrumentera indata och parametrar för ett RAG-program som innehåller ett användarmeddelande med prompt, en vektorsökning och ett gränssnitt med den generativa AI-modellen.

Vad är MLflow-spårning?

Med MLflow Tracing kan du logga, analysera och jämföra spårningar mellan olika versioner av generativa AI-program. Det gör att du kan felsöka din generativa AI Python-kod och hålla reda på indata och svar. Det kan hjälpa dig att identifiera villkor eller parametrar som bidrar till dålig prestanda för ditt program. MLflow Tracing är nära integrerat med Databricks-verktyg och infrastruktur, så att du kan lagra och visa alla dina spårningar i Databricks notebook-filer eller MLflow-experimentets användargränssnitt när du kör koden.

När du utvecklar AI-system i Databricks med hjälp av bibliotek som LangChain, LlamaIndex, OpenAI eller anpassad PyFunc kan du med MLflow Tracing se alla händelser och mellanliggande utdata från varje steg i agenten. Du kan enkelt se prompterna, vilka modeller och hämtningar som har använts, vilka dokument som hämtades för att utöka svaret, hur lång tid det tog och de slutliga utdata. Om din modell till exempel hallucinerar kan du snabbt inspektera varje steg som ledde till hallucinationen.

Varför ska jag använda MLflow-spårning?

MLflow Tracing ger flera fördelar som hjälper dig att spåra ditt arbetsflöde för utveckling. Du kan till exempel:

  • Granska en interaktiv spårningsvisualisering och använd undersökningsverktyget för att diagnostisera problem under utveckling.
  • Kontrollera att promptmallar och skyddsräcken ger rimliga resultat.
  • Utforska och minimera svarstidens inverkan på olika ramverk, modeller, segmentstorlekar och metoder för programvaruutveckling.
  • Mäta programkostnader genom att spåra tokenanvändning av olika modeller.
  • Upprätta benchmark-datamängder ("golden") för att utvärdera prestanda för olika versioner.
  • Lagra spårningar från produktionsmodellslutpunkter för att felsöka problem och utföra offlinegranskning och utvärdering.

Installera MLflow-spårning

MLflow Tracing är tillgängligt i MLflow-versionerna 2.13.0 och senare.

%pip install mlflow>=2.13.0 -qqqU
%restart_python

Du kan %pip install databricks-agents också installera den senaste versionen av databricks-agents som innehåller en kompatibel MLflow-version.

Använda MLflow-spårning under utveckling

MLflow Tracing hjälper dig att analysera prestandaproblem och påskynda agentutvecklingscykeln. I följande avsnitt förutsätter vi att du utför agentutveckling och MLflow-spårning från en notebook-fil.

Kommentar

I notebook-miljön kan MLflow Tracing lägga till upp till några sekunders omkostnader för agentens körningstid. Detta kommer främst från svarstiden för loggningsspårningar till MLflow-experimentet. I produktionsmodellslutpunkten har MLflow Tracing en mycket mindre inverkan på prestanda. Se Använda MLflow-spårning i produktion.

Kommentar

Från och med Databricks Runtime 15.4 LTS ML aktiveras MLflow-spårning som standard i notebook-filer. Om du vill inaktivera spårning, till exempel med LangChain, kan du köra mlflow.langchain.autolog(log_traces=False) i notebook-filen.

Lägga till spårningar i din agent

MLflow Tracing innehåller tre olika sätt att använda spårningar med ditt generativa AI-program med spårningar. Se Lägga till spårningar i dina agenter för exempel på hur du använder dessa metoder. Information om API-referens finns i MLflow-dokumentationen.

API Rekommenderat användningsfall beskrivning
Automatisk MLflow-loggning Utveckling av integrerade GenAI-bibliotek Automatisk loggning instrumenterar automatiskt spårningar för populära öppen källkod ramverk som LangChain, LlamaIndex och OpenAI. När du lägger till mlflow.<library>.autolog() i början av notebook-filen registrerar MLflow automatiskt spårningar för varje steg i agentkörningen.
Api:er för Fluent Anpassad agent med Pyfunc API:er med låg kod för instrumentering av AI-system utan att behöva bekymra dig om spårningens trädstruktur. MLflow avgör lämplig överordnad-underordnad trädstruktur (intervall) baserat på Python-stacken.
MLflow-klient-API:er Avancerade användningsfall som flera trådar MLflowClient implementerar mer detaljerade, trådsäkra API:er för avancerade användningsfall. Dessa API:er hanterar inte den överordnade och underordnade relationen mellan intervallen, så du måste ange den manuellt för att skapa önskad spårningsstruktur. Detta kräver mer kod men ger dig bättre kontroll över spårningens livscykel, särskilt för användningsfall med flera trådar.

Rekommenderas för användningsfall som kräver mer kontroll, till exempel program med flera trådar eller motringningsbaserad instrumentation.

Granska spårningar

När du har kört den instrumenterade agenten kan du granska de genererade spårningarna på olika sätt:

  • Spårningsvisualiseringen återges infogad i cellutdata.
  • Spårningarna loggas till MLflow-experimentet. Du kan granska den fullständiga listan över historiska spårningar och söka på dem på fliken Traces på sidan Experiment. När agenten körs under en aktiv MLflow-körning kan du även hitta spårningarna på sidan Kör.
  • Hämta spårningar programmatiskt med hjälp av API:et search_traces().

Använda MLflow-spårning i produktion

MLflow Tracing är också integrerat med Mosaic AI Model Serving, så att du kan felsöka problem effektivt, övervaka prestanda och skapa en gyllene datauppsättning för offlineutvärdering. När MLflow Tracing är aktiverat för serverdelsslutpunkten registreras spårningar i en slutsatstabell under response kolumnen.

Om du vill aktivera MLflow-spårning för serverdelsslutpunkten måste du ange ENABLE_MLFLOW_TRACING miljövariabeln i slutpunktskonfigurationen till True. Se Lägga till miljövariabler för oformaterad text för hur du distribuerar en slutpunkt med anpassade miljövariabler. Om du distribuerade din agent med hjälp av API:et deploy() loggas spårningar automatiskt till en slutsatsdragningstabell. Se Distribuera en agent för generativ AI-program.

Kommentar

Att skriva spårningar till en slutsatsdragningstabell görs asynkront, så det lägger inte till samma omkostnader som i notebook-miljön under utvecklingen. Det kan dock fortfarande medföra vissa omkostnader för slutpunktens svarshastighet, särskilt när spårningsstorleken för varje slutsatsdragningsbegäran är stor. Databricks garanterar inte något serviceavtal (SLA) för den faktiska svarstidens inverkan på modellslutpunkten, eftersom det är mycket beroende av miljön och modellimplementeringen. Databricks rekommenderar att du testar slutpunktsprestanda och får insikter om spårningskostnaderna innan du distribuerar till ett produktionsprogram.

Följande tabell innehåller en grov indikation på effekten på slutsatsdragningsfördröjning för olika spårningsstorlekar.

Spårningsstorlek per begäran Påverkan på svarstid (ms)
~10 KB ~ 1 ms
~ 1 MB 50 ~ 100 ms
10 MB 150 ms ~

Begränsningar

  • MLflow Tracing är tillgängligt i Databricks-notebook-filer, notebook-jobb och modellservering.

  • LangChain-automatisk loggning kanske inte stöder alla API:er för LangChain-förutsägelse. Se MLflow-dokumentationen för den fullständiga listan över API:er som stöds.