Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ta strona opisuje cały proces prowadzenia projektu uczenia maszynowego (ML) od wstępnego określenia zakresu po wdrożenie produkcyjne oraz utrzymanie jego wysokiej skuteczności w dłuższym okresie. Kod, dane i modele przechodzą przez trzy główne etapy: tworzenie, testowanie i środowisko produkcyjne. Każdy etap ma odrębne cele i wymagania:
- Określanie zakresu przypadku użycia i definiowanie powodzenia
- Eksplorowanie i poznawanie danych
- Przygotowywanie danych i funkcji
- Trenuj modele i śledź eksperymenty
- Oceniać
- Rejestrowanie, przygotowywanie i testowanie modeli
- Wdrażanie w środowisku produkcyjnym
- Monitoruj i ponownie trenuj
1. Określanie zakresu przypadku użycia i definiowanie powodzenia
Zanim cokolwiek zbudujesz, ustal, co model ma robić i po czym poznasz, że działa.
- Jaka jest zmienna docelowa predykcji i na jaką klasę problemu uczenia maszynowego to wskazuje: klasyfikację, regresję, prognozowanie, rekomendacje, ranking, wykrywanie anomalii czy coś innego?
- Jakie dane wejściowe są dostępne i czy wystarczy nauczyć się wzorca docelowego?
- Jakie metryki definiują sukces: dokładność, AUC, precyzja w K lub kluczowe wskaźniki wydajności biznesowej?
- Jakie są wymagania dotyczące obsługi i produkcji: opóźnienie, przepływność i świeżość danych?
- Którzy interesariusze muszą zatwierdzić wdrożenia produkcyjne? Jakie są ich wymagania dotyczące możliwości wyjaśnienia?
Powyższe wymagania nie określają określonej metody uczenia maszynowego. Możesz rozpocząć modelowanie przy użyciu prostszego podejścia, takiego jak wzmocnione drzewa gradientowe, a później zdecydować, że potrzebne są bardziej zaawansowane metody uczenia głębokiego.
2. Eksplorowanie i poznawanie danych
Przed przygotowaniem funkcji lub trenowaniem modelu zapoznaj się z danymi, aby zrozumieć jego strukturę, jakość i relację z celem przewidywania. Eksploracyjna analiza danych (EDA) to proces podsumowania i wizualizacji zestawu danych na potrzeby rozkładów, korelacji, brakujących wartości i wartości odstających, które kształtują decyzje dotyczące modelowania podrzędnego.
Na wczesnym etapie zdecyduj, jak zweryfikować, czy dysponujesz prawidłowymi danymi testowymi wyłączonymi z treningu. Nawet podczas EDA należy uważać na podejmowanie decyzji dotyczących modelowania na podstawie danych testowych.
EDA odpowiada na pytania, które informują o pozostałej części cyklu życia:
- Które dane wejściowe są najbardziej predykcyjne obiektu docelowego i które z nich są niedostępne w czasie obsługi?
- Czy brakuje wartości, wartości odstających lub niesymetrycznych rozkładów, które wymagają czyszczenia lub przekształcania?
- Czy zestaw danych jest wystarczająco duży i reprezentatywny, aby poznać wzorzec docelowy?
Azure Databricks upraszcza EDA za pomocą interaktywnych, współpracy i narzędzi wspomaganych przez sztuczną inteligencję. Eksploruj dane przy użyciu czatu języka naturalnego, interfejsów użytkownika lub kodu oraz współpracuj zarówno za pośrednictwem współedytowania w czasie rzeczywistym, jak i udostępniania kodu opartego na usłudze Git:
- Notesy udostępniają przestrzenie do współpracy na potrzeby eksploracji, wizualizacji i dokumentacji.
- Pulpity nawigacyjne zapewniają eksplorację opartą na języku SQL i wizualizacji.
- Aplikacja Genie Chat udostępnia pełny interfejs języka naturalnego do zadawania pytań dotyczących danych.
- Genie Code może wykonywać w pełni zautomatyzowaną EDA lub działać jako asystent interaktywny.
3. Przygotowywanie danych i funkcji
Po zrozumieniu danych należy przekształcić nieprzetworzone źródła i przekształcenia zidentyfikowane podczas EDA w funkcje modeli uczenia maszynowego. Oceń swoje potoki danych na potrzeby trenowania i wdrażania modeli pod względem szybkości, wolumenu, aktualności i odpowiedzialności za źródła danych. Granica między inżynierią danych (przygotowywaniem i przekształcaniem danych) a inżynierią cech (wyprowadzanie danych wejściowych uczenia maszynowego) jest rozmyte. W Azure Databricks inżynieria danych i uczenie maszynowe współdzielą tę samą platformę oraz warstwę nadzoru w Unity Catalog, dzięki czemu dane przygotowane przez jeden zespół mogą zostać od razu udostępnione jako cechy innemu zespołowi, bez przenoszenia danych ani powielania potoków.
Wyszukaj istniejące definicje danych i funkcji:
- Poznaj dane i funkcje dostępne w Unity Catalog. Jeśli w Twojej organizacji są już wdrożone powiązane modele, użyj Lineage w Unity Catalog, aby odkryć źródła danych i cechy wykorzystywane przez te modele.
- Wyszukiwanie w obszarze roboczym może pomóc w odnalezieniu danych, modeli lub aplikacji, które już istnieją.
Utwórz nowe zasoby i zarządzaj nimi zgodnie z potrzebami:
- Zobacz Inżynieria danych w usłudze Databricks, aby uzyskać więcej informacji o narzędziach do pozyskiwania i inżynierii danych, w tym o Lakeflow Designer do pracy bez użycia kodu, wspomaganej przez AI.
- Magazyn funkcji służy do definiowania funkcji i zarządzania nimi jako zasobów podlegających wielokrotnemu użyciu. Te same definicje cech są używane na etapie trenowania i w środowisku produkcyjnym, z obsługą wsadowego i realizowanego w czasie rzeczywistym przyjmowania danych oraz wsadowego i realizowanego w czasie rzeczywistym udostępniania.
Użyj Genie Code, aby przyspieszyć wyszukiwanie i przygotowywanie danych przez przeglądanie Unity Catalog w celu znajdowania odpowiednich tabel, sugerowania przekształceń cech oraz generowania kodu początkowego dla potoków pozyskiwania danych i cech.
4. Trenowanie modeli i śledzenie eksperymentów
Aplikacje do nauki o danych i uczenia maszynowego korzystają z wielu różnych podejść, z których każdy ma własne wymagania dotyczące algorytmów i bibliotek uczenia maszynowego, wymagań obliczeniowych i przepływów pracy. Azure Databricks zapewnia elastyczne środowiska i zasoby obliczeniowe dla różnych obciążeń roboczych, ze śledzeniem eksperymentów ujednoliconym w ramach MLflow.
Środowiska i obliczenia
Domyślnie używaj bezserwerowych obliczeń zarówno dla notesów interaktywnych, jak i zadań automatycznych. Przetwarzanie bezserwerowe uruchamia się natychmiast i automatycznie skaluje się w górę i w dół w zależności od obciążenia.
Aby korzystać z akceleracji GPU, dołącz układy GPU do bezserwerowych zasobów obliczeniowych, które następnie używają środowiska AI Runtime, wstępnie skonfigurowanego do trenowania i wnioskowania z użyciem GPU.
W przypadku obciążeń procesora CPU i procesora GPU można również używać klasycznych obliczeń w środowisku Databricks Runtime na potrzeby Machine Learning.
Dostosuj dowolne z poprzednich środowisk przy użyciu bibliotek uczenia maszynowego. W środowiskach często wysoce dostosowanych do aplikacji uczenia maszynowego można korzystać ze śledzenia MLflow w celu rejestrowania zależności, weryfikowania powtarzalności i unikania niesymetryczności służących do trenowania.
Śledzenie MLflow
Użyj MLflow zarządzanego przez Azure Databricks do śledzenia eksperymentów i rejestrowania metadanych modelu:
- Organizuj dzienniki projektu w eksperymentach z zarejestrowanymi przebiegami na potrzeby trenowania lub oceny.
- W każdym uruchomieniu rejestruj parametry, metryki i artefakty automatycznie lub ręcznie.
- Podczas eksperymentowania porównaj przebiegi w interfejsie użytkownika platformy MLflow , aby znaleźć konfigurację o najlepszej wydajności.
- Modele dzienników za pomocą biblioteki MLflow do przechowywania artefaktów modelu z pełnym pochodzeniem: który zestaw danych, kod i środowisko wyprodukowały ten model. Te metadane upraszczają wdrażanie modeli w środowisku produkcyjnym oraz inspekcję i rozwiązywanie problemów.
Wprowadzenie do modelowania
Kod Genie może wygenerować kompletny notes uczenia maszynowego na podstawie zwykłego opisu zadania przewidywania, w tym wyboru funkcji ze sklepu Feature Store, trenowania uczenia maszynowego i śledzenia MLflow.
Zobacz również zasoby dotyczące dostrajania hiperparametrów, przykłady trenowania modeli i Ray na platformie Databricks.
Aby uzyskać informacje na temat uczenia głębokiego i przyspieszonego przez procesor GPU klasycznego trenowania uczenia maszynowego, zobacz przykładowe notesy dla środowiska uruchomieniowego sztucznej inteligencji.
5. Ocena
Podczas opracowywania określ metryki oceny jakości na podstawie wymagań z etapu określania zakresu:
- Podstawowe metryki mogą być typowymi metrykami uczenia maszynowego, takimi jak dokładność, AUC, RMSE lub metryki specyficzne dla domeny.
- Ocena może również obejmować pochodne metryki, takie jak stronniczość i sprawiedliwość w różnych segmentach populacji, mierzone przez porównanie metryk podstawowych między segmentami danych.
Zdefiniuj metryki przy użyciu wybranej biblioteki uczenia maszynowego lub platformy, korzystając z wbudowanego modułu metryk MLflow lub niestandardowej logiki. W przypadku wszystkich metryk rejestruj metryki w przebiegach MLflow, aby powiązać je z odpowiadającymi im modelami. Metryki zdefiniowane podczas programowania i trenowania mogą być później używane jako metryki na potrzeby monitorowania produkcyjnego.
6. Rejestrowanie, etap i testowanie modeli
Po wytrenowaniu modelu uczenia maszynowego lub potoku zarejestruj go w Rejestrze modeli MLflow w Unity Catalog, aby uprościć nadzór i zarządzanie podczas wdrażania modelu do środowiska produkcyjnego. Zarejestrowany model ma wersje, z których każda łączy się z oryginalnym przebiegiem trenowania, który go wyprodukował. Wersje modelu umożliwiają bezpieczne przepływy pracy wdrażania: możesz przetestować nową wersję w środowisku przejściowym przed podwyższeniem jej do środowiska produkcyjnego, wycofać poprzednią wersję, jeśli jakość uległa pogorszeniu i zachować pełny dziennik inspekcji tego, co zostało wdrożone i kiedy.
Zanim nowa wersja modelu zacznie obsługiwać ruch produkcyjny, przetestuj ją w środowisku przedprodukcyjnym w warunkach zbliżonych do rzeczywistych:
-
Oznacz wersję modelu kandydata za pomocą aliasów (
Staging,Production), aby zasygnalizować stan cyklu życia bez zmieniania nazw artefaktów. - Uruchom testy integracyjne w środowisku stagingowym: potwierdź, że endpoint serwujący uruchamia się, opóźnienie spełnia wymagania, a dane wyjściowe mają prawidłową strukturę.
- Przeprowadź testy A/B lub testy równoległe na danych produkcyjnych, aby zweryfikować wydajność przed pełnym przełączeniem.
- Uzyskaj akceptację interesariuszy na podstawie wyników oceny.
Ten opis nadmiernie upraszcza praktyki wdrażania i operacje uczenia maszynowego (MLOps). Dowiedz się więcej o przepływach pracy MLOps w Azure Databricks.
7. Wdrażanie w środowisku produkcyjnym
Po przejściu weryfikacji podwyższ poziom i wdróż model w środowisku produkcyjnym, aby wygenerować przewidywania dla rzeczywistych danych wejściowych. Azure Databricks obsługuje dwa podstawowe wzorce obsługi:
- Obsługa w czasie rzeczywistym: wdróż model jako punkt końcowy REST o małym opóźnieniu przy użyciu usługi Model Serving w przypadku przypadków użycia wymagających decyzji o małych opóźnieniach, takich jak przechwytywanie oszustw w czasie transakcji, personalizacja na żywo lub ceny dynamiczne.
-
Wnioskowanie wsadowe:
ai_queryzapewnia wydajne wnioskowanie wsadowe dla modeli niestandardowych wdrożonych jako punkty końcowe obsługujące model. Możesz również użyć niestandardowego kodu z funkcjami UDF Apache Spark (przykład) lubmlflow.pyfuncdo inferencji wsadowej. Potoki usługi Batch zapisują wyniki w tabelach delty dla aplikacji podrzędnych, pulpitów nawigacyjnych lub potoków. Ten wzorzec obsługuje codzienne prognozy, nocne odświeżanie rekomendacji i inne okresowe zadania.
Oba wzorce korzystają z tego samego artefaktu wytrenowanego modelu. Wytrenuj model raz i wdrażaj go do obsługi wsadowej lub w czasie rzeczywistym z tej samej zarejestrowanej wersji, z zachowaniem tego samego nadzoru i śledzenia pochodzenia.
Kod Genie może generować zarówno kod do wdrożenia, jak i pomóc w rozwiązywaniu problemów z obsługą, wyjaśnić zachowanie punktu końcowego i przyspieszyć iterację, gdy modele muszą być aktualizowane lub wdrażane ponownie.
8. Monitorowanie i ponowne trenowanie
Systemy uczenia maszynowego w środowisku produkcyjnym mogą ulegać pogorszeniu w miarę zmiany zachowania użytkownika lub zmiany potoków danych. Ciągłe monitorowanie danych produkcyjnych i przewidywań modelu:
- Rejestrowanie danych wejściowych i wyjściowych z wdrożonych modeli. W przypadku obsługi w czasie rzeczywistym tabele wnioskowania zapewniają automatyczne rejestrowanie bez wprowadzania zmian w kodzie modelu. W przypadku przetwarzania wsadowego potoki danych w naturalny sposób odczytują dane z tabel Delta zarządzanych przez Unity Catalog i zapisują je w tych tabelach.
- Prześlij te dzienniki do monitorowania jakości danych, które umożliwia śledzenie jakości danych, dryfu cech i rozkładu predykcji w miarę upływu czasu. Jeśli masz podstawowe informacje lub dane opinii, możesz dołączyć te dane do obsługi dzienników w celu obliczenia metryk jakości przewidywania.
- Użyj interfejsu monitorowania i alertów o wykryciu anomalii, aby uruchomić eskalację lub ponowne trenowanie modelu, zanim jakość wyraźnie się pogorszy.
Dowiedz się więcej o produkcyjnym uczeniu maszynowym w przepływach pracy MLOps na platformie Azure Databricks.
Dodatkowe zasoby
- Możliwości Azure Databricks w zakresie analizy danych i uczenia maszynowego — możliwości Azure Databricks na każdym etapie tego cyklu życia
- Przepływy pracy metodyki MLOps w Azure Databricks — dokumentacja przepływu pracy produkcyjnego metodyki MLOps
- Zarządzanie cyklem życia modeli w Unity Catalog - Wersjonowanie modeli i zarządzanie ich cyklem życia w Unity Catalog