Śledzenie MLflow dla agentów
Ważne
Ta funkcja jest dostępna w publicznej wersji zapoznawczej.
W tym artykule opisano śledzenie platformy MLflow i scenariusze, w których warto oceniać generowanie aplikacji sztucznej inteligencji w systemie sztucznej inteligencji.
W przypadku tworzenia oprogramowania śledzenie obejmuje rejestrowanie sekwencji zdarzeń, takich jak sesje użytkownika lub przepływy żądań. W kontekście systemów sztucznej inteligencji śledzenie często odnosi się do interakcji z systemem sztucznej inteligencji. Przykładowy ślad systemu sztucznej inteligencji może wyglądać jak instrumentacja danych wejściowych i parametrów aplikacji RAG, która zawiera komunikat użytkownika z monitem, wyszukiwaniem wektorowym i interfejsem z modelem generowania sztucznej inteligencji.
Co to jest śledzenie MLflow?
Korzystając z śledzenia MLflow, można rejestrować, analizować i porównywać ślady w różnych wersjach aplikacji generacyjnych sztucznej inteligencji. Umożliwia ona debugowanie generowania kodu AI w języku Python i śledzenie danych wejściowych i odpowiedzi. Może to pomóc w odnalezieniu warunków lub parametrów, które przyczyniają się do niskiej wydajności aplikacji. Śledzenie MLflow jest ściśle zintegrowane z narzędziami i infrastrukturą usługi Databricks, co umożliwia przechowywanie i wyświetlanie wszystkich śladów w notesach usługi Databricks lub interfejsie użytkownika eksperymentu MLflow podczas uruchamiania kodu.
Podczas tworzenia systemów sztucznej inteligencji w usłudze Databricks przy użyciu bibliotek, takich jak LangChain, LlamaIndex, OpenAI lub custom PyFunc, śledzenie MLflow umożliwia wyświetlanie wszystkich zdarzeń i pośrednich danych wyjściowych z każdego kroku agenta. Możesz łatwo zobaczyć monity, które modele i moduły pobierania zostały użyte, które dokumenty zostały pobrane w celu rozszerzenia odpowiedzi, jak długo trwało, i końcowych danych wyjściowych. Na przykład jeśli model halucynuje, możesz szybko sprawdzić każdy krok, który doprowadził do halucynacji.
Dlaczego warto używać śledzenia MLflow?
Śledzenie platformy MLflow zapewnia kilka korzyści, które ułatwiają śledzenie przepływu pracy programowania. Można na przykład:
- Przejrzyj interaktywną wizualizację śledzenia i użyj narzędzia do badania, aby zdiagnozować problemy podczas programowania.
- Sprawdź, czy szablony monitów i bariery ochronne generują uzasadnione wyniki.
- Zapoznaj się z różnymi strukturami, modelami, rozmiarami fragmentów i praktykami tworzenia oprogramowania oraz zminimalizuj wpływ opóźnienia na opóźnienia.
- Mierzenie kosztów aplikacji przez śledzenie użycia tokenu przez różne modele.
- Ustanów zestawy danych testów porównawczych ("golden"), aby ocenić wydajność różnych wersji.
- Przechowuj ślady z punktów końcowych modelu produkcyjnego do debugowania problemów i przeprowadź przegląd w trybie offline i ocenę.
Instalowanie śledzenia MLflow
Śledzenie MLflow jest dostępne w wersji MLflow w wersji 2.13.0 lub nowszej.
%pip install mlflow>=2.13.0 -qqqU
%restart_python
Alternatywnie możesz %pip install databricks-agents
zainstalować najnowszą wersję programu , która zawiera zgodną wersję databricks-agents
platformy MLflow.
Używanie śledzenia MLflow w programowania
Śledzenie MLflow ułatwia analizowanie problemów z wydajnością i przyspieszanie cyklu tworzenia agenta. W poniższych sekcjach założono, że przeprowadzasz programowanie agentów i śledzenie MLflow z poziomu notesu.
Uwaga
W środowisku notesu śledzenie MLflow może spowodować dodanie kilku sekund obciążenia do czasu wykonywania agenta. Wynika to głównie z opóźnienia śladów rejestrowania w eksperymencie MLflow. W punkcie końcowym modelu produkcyjnego śledzenie MLflow ma znacznie mniejszy wpływ na wydajność. Zobacz Używanie śledzenia MLflow w środowisku produkcyjnym.
Uwaga
Od środowiska Databricks Runtime 15.4 LTS ML śledzenie MLflow jest domyślnie włączone w notesach. Aby wyłączyć śledzenie, na przykład za pomocą biblioteki LangChain, możesz wykonać mlflow.langchain.autolog(log_traces=False)
w notesie.
Dodawanie śladów do agenta
Śledzenie MLflow udostępnia trzy różne sposoby używania śladów w aplikacji generowania sztucznej inteligencji ze śladami. Zobacz Dodawanie śladów do agentów , aby zapoznać się z przykładami użycia tych metod. Aby uzyskać szczegółowe informacje o interfejsie API, zobacz dokumentację platformy MLflow.
interfejs API | Zalecany przypadek użycia | opis |
---|---|---|
Automatyczne rejestrowanie MLflow | Programowanie w zintegrowanych bibliotekach GenAI | Automatyczne rejestrowanie automatycznie instrumentuje ślady popularnych struktur typu open source, takich jak LangChain, LlamaIndex i OpenAI. Po dodaniu mlflow.<library>.autolog() na początku notesu narzędzie MLflow automatycznie rejestruje ślady dla każdego kroku wykonywania agenta. |
Interfejsy API Fluent | Agent niestandardowy z funkcją Pyfunc | Interfejsy API niskiego kodu do instrumentowania systemów sztucznej inteligencji bez obaw o strukturę drzewa śledzenia. MLflow określa odpowiednią strukturę drzewa nadrzędno-podrzędnego (spans) na podstawie stosu języka Python. |
Interfejsy API klienta MLflow | Zaawansowane przypadki użycia, takie jak wielowątkowy | MLflowClient Implementuje bardziej szczegółowe, bezpieczne wątkowo interfejsy API dla zaawansowanych przypadków użycia. Te interfejsy API nie zarządzają relacją nadrzędny-podrzędny zakresów, dlatego należy ręcznie określić ją, aby utworzyć żądaną strukturę śledzenia. Wymaga to więcej kodu, ale zapewnia lepszą kontrolę nad cyklem życia śledzenia, szczególnie w przypadku przypadków użycia wielowątkowego.Zalecane w przypadku przypadków użycia wymagających większej kontroli, takich jak aplikacje wielowątkowa lub instrumentacja oparta na wywołaniu zwrotnym. |
Przeglądanie śladów
Po uruchomieniu instrumentowanego agenta możesz przejrzeć wygenerowane ślady na różne sposoby:
- Wizualizacja śledzenia jest renderowana w tekście w danych wyjściowych komórki.
- Ślady są rejestrowane w eksperymencie MLflow. Możesz przejrzeć pełną listę historycznych śladów i wyszukać je na
Traces
karcie na stronie Eksperyment. Po uruchomieniu agenta w ramach aktywnego przebiegu platformy MLflow można również znaleźć ślady na stronie Uruchamianie. - Programowe pobieranie śladów przy użyciu interfejsu API search_traces().
Korzystanie z śledzenia MLflow w środowisku produkcyjnym
Śledzenie MLflow jest również zintegrowane z usługą Mozaika AI Model Serving, umożliwiając wydajne debugowanie problemów, monitorowanie wydajności i tworzenie złotego zestawu danych na potrzeby oceny w trybie offline. Gdy śledzenie MLflow jest włączone dla obsługiwanego punktu końcowego, ślady są rejestrowane w tabeli wnioskowania w kolumnie response
.
Aby włączyć śledzenie MLflow dla punktu końcowego obsługi, należy ustawić zmienną ENABLE_MLFLOW_TRACING
środowiskową w konfiguracji punktu końcowego na True
wartość . Zobacz Dodawanie zmiennych środowiskowych w postaci zwykłego tekstu, aby dowiedzieć się, jak wdrożyć punkt końcowy z niestandardowymi zmiennymi środowiskowymi. Jeśli agent został wdrożony przy użyciu interfejsu deploy()
API, ślady są automatycznie rejestrowane w tabeli wnioskowania. Zobacz Wdrażanie agenta na potrzeby generowania aplikacji sztucznej inteligencji.
Uwaga
Zapisywanie śladów w tabeli wnioskowania odbywa się asynchronicznie, dlatego nie powoduje dodania tego samego obciążenia, co w środowisku notesu podczas programowania. Może jednak nadal wprowadzać pewne obciążenie szybkości odpowiedzi punktu końcowego, szczególnie gdy rozmiar śledzenia dla każdego żądania wnioskowania jest duży. Usługa Databricks nie gwarantuje żadnej umowy dotyczącej poziomu usług (SLA) dla rzeczywistego wpływu opóźnienia na punkt końcowy modelu, ponieważ w dużym stopniu zależy od środowiska i implementacji modelu. Usługa Databricks zaleca przetestowanie wydajności punktu końcowego i uzyskanie wglądu w obciążenie śledzenia przed wdrożeniem w aplikacji produkcyjnej.
Poniższa tabela zawiera przybliżone wskazanie wpływu opóźnienia wnioskowania dla różnych rozmiarów śledzenia.
Rozmiar śledzenia na żądanie | Wpływ na opóźnienie (ms) |
---|---|
~10 KB | ~ 1 ms |
~ 1 MB | 50 ~ 100 ms |
10 MB | 150 ms ~ |
Ograniczenia
Śledzenie MLflow jest dostępne w notesach usługi Databricks, zadaniach notesu i obsłudze modeli.
Automatyczne rejestrowanie langchain może nie obsługiwać wszystkich interfejsów API przewidywania LangChain. Aby uzyskać pełną listę obsługiwanych interfejsów API, zapoznaj się z dokumentacją platformy MLflow.