Pomysły dotyczące rozwiązań
Ten artykuł jest pomysłem na rozwiązanie. Jeśli chcesz, abyśmy rozszerzyli zawartość o więcej informacji, takich jak potencjalne przypadki użycia, alternatywne usługi, zagadnienia dotyczące implementacji lub wskazówki dotyczące cen, daj nam znać, przekazując opinię w usłudze GitHub.
Ten artykuł zawiera architekturę i proces operacji uczenia maszynowego (MLOps), który korzysta z usługi Azure Databricks. Ten proces definiuje ustandaryzowany sposób przenoszenia modeli i potoków uczenia maszynowego z programowania do środowiska produkcyjnego z opcjami obejmującymi zautomatyzowane i ręczne procesy.
Architektura
Pobierz plik programu Visio z tą architekturą.
Przepływ pracy
To rozwiązanie zapewnia niezawodny proces MLOps korzystający z usługi Azure Databricks. Wszystkie elementy architektury są podłączane, dzięki czemu można w razie potrzeby zintegrować inne usługi platformy Azure i innych firm w całej architekturze. Ta architektura i opis są dostosowane z książki e-book The Big Book of MLOps. Ta książka elektroniczna zawiera bardziej szczegółowe omówienie architektury opisanej tutaj.
Kontrola źródła: repozytorium kodu tego projektu organizuje notesy, moduły i potoki. Analitycy danych tworzą gałęzie programistyczne w celu testowania aktualizacji i nowych modeli. Kod jest opracowywany w notesach lub środowiskach IDE wspieranych przez usługę Git z integracją usługi Databricks Repos na potrzeby synchronizacji z obszarami roboczymi usługi Azure Databricks. Kontrola źródła promuje potoki uczenia maszynowego od programowania przez etap przejściowy (na potrzeby testowania) do środowiska produkcyjnego (na potrzeby wdrożenia).
Lakehouse — dane produkcyjne: analitycy danych pracują w środowisku deweloperskim, gdzie mają dostęp tylko do odczytu do danych produkcyjnych. (Alternatywnie dane mogą być dublowane lub redagowane). Mają również dostęp do odczytu/zapisu w środowisku magazynu deweloperskiego na potrzeby programowania i eksperymentowania. Zalecamy architekturę usługi Lakehouse dla danych, w których dane są przechowywane w usłudze Azure Data Lake Storage w formacie usługi Delta Lake. Mechanizmy kontroli dostępu są definiowane za pomocą funkcji przekazywania poświadczeń firmy Microsoft lub kontroli dostępu do tabel.
Opracowywanie zawartości
W środowisku deweloperskim analitycy danych i inżynierowie opracowują potoki uczenia maszynowego.
Eksploracyjna analiza danych (EDA): analitycy danych eksplorują dane w interaktywnym, iteracyjnym procesie. Ta praca ad hoc może nie zostać wdrożona w środowisku przejściowym lub produkcyjnym. Narzędzia mogą obejmować usługi Databricks SQL, dbutils.data.summarize i AutoML.
Trenowaniemodelu i inne potoki uczenia maszynowego: potoki uczenia maszynowego są opracowywane jako modułowy kod w notesach i/lub środowiskach IDE. Na przykład potok trenowania modelu odczytuje dane ze sklepu Feature Store i innych tabel lakehouse. Trenowanie i dostrajanie parametrów i metryk modelu dziennika na serwerze śledzenia MLflow. Interfejs API magazynu funkcji rejestruje ostatni model. Te dzienniki łączą model, jego dane wejściowe i kod trenowania.
Zatwierdź kod: aby promować przepływ pracy uczenia maszynowego w kierunku produkcji, analityk danych zatwierdza kod do cechowania, trenowania i innych potoków w celu kontroli źródła.
Przygotowanie
W środowisku przejściowym infrastruktura ciągłej integracji testuje zmiany potoków uczenia maszynowego w środowisku, które naśladuje produkcję.
Żądanie scalania: gdy żądanie scalania (lub ściągnięcia) jest przesyłane względem gałęzi przejściowej (głównej) projektu w kontroli źródła, narzędzie ciągłej integracji i ciągłego dostarczania (CI/CD), takie jak usługa Azure DevOps uruchamia testy.
Testy jednostkowe i ciągłej integracji: testy jednostkowe są uruchamiane w infrastrukturze ciągłej integracji, a testy integracji uruchamiają kompleksowe przepływy pracy w usłudze Azure Databricks. Jeśli testy przejdą, kod zmieni się w scalanie.
Tworzenie gałęzi wydania: gdy inżynierowie uczenia maszynowego są gotowi do wdrożenia zaktualizowanych potoków uczenia maszynowego w środowisku produkcyjnym, mogą utworzyć nową wersję. Potok wdrażania w narzędziu ciągłej integracji/ciągłego wdrażania ponownie wdraża zaktualizowane potoki jako nowe przepływy pracy.
Produkcyjne
Inżynierowie uczenia maszynowego zarządzają środowiskiem produkcyjnym, w którym potoki uczenia maszynowego obsługują bezpośrednio aplikacje końcowe. Kluczowe potoki w tabelach funkcji odświeżania produkcyjnego, trenowanie i wdrażanie nowych modeli, wnioskowanie lub obsługa oraz monitorowanie wydajności modelu.
Odświeżanie tabeli funkcji: ten potok odczytuje dane, funkcje obliczeniowe i zapisy w tabelach magazynu funkcji. Jest on uruchamiany w trybie przesyłania strumieniowego, uruchamiany zgodnie z harmonogramem lub jest wyzwalany.
Trenowanie modelu: W środowisku produkcyjnym potok trenowania lub ponownego trenowania modelu jest wyzwalany lub zaplanowany do trenowania nowego modelu na najnowszych danych produkcyjnych. Modele są rejestrowane w rejestrze modeli MLflow.
Ciągłe wdrażanie: rejestrowanie nowych wersji modelu wyzwala potok ciągłego wdrażania, który uruchamia testy w celu zapewnienia, że model będzie działać dobrze w środowisku produkcyjnym. Gdy model przechodzi testy, jego postęp jest śledzony w rejestrze modeli za pośrednictwem przejść etapu modelu. Elementy webhook rejestru mogą być używane do automatyzacji. Testy mogą obejmować testy zgodności, testy A/B w celu porównania nowego modelu z bieżącym modelem produkcyjnym i testami infrastruktury. Wyniki testów i metryki są rejestrowane w tabelach usługi Lakehouse. Opcjonalnie możesz wymagać ręcznego logowania przed przejściem modeli do środowiska produkcyjnego.
Wdrażanie modelu: gdy model wchodzi w środowisko produkcyjne, jest wdrażany do oceniania lub obsługi. Najbardziej typowe tryby wdrażania to:
- Ocenianie wsadowe lub przesyłane strumieniowo: w przypadku opóźnień minut lub dłuższych usługa Batch i przesyłanie strumieniowe to najbardziej ekonomiczne opcje. Potok oceniania odczytuje najnowsze dane ze Sklepu funkcji, ładuje najnowszą wersję modelu produkcyjnego z rejestru modeli i wykonuje wnioskowanie w zadaniu usługi Databricks. Może publikować przewidywania w tabelach Lakehouse, połączeniu Połączenie ivity (JDBC) w języku Java, plikach prostych, kolejkach komunikatów lub innych systemach podrzędnych.
- Obsługa w trybie online (interfejsy API REST): w przypadku przypadków użycia o małych opóźnieniach obsługa online jest zwykle niezbędna. Rozwiązanie MLflow może wdrażać modele w usłudze MLflow Model Serving w usłudze Azure Databricks, systemach obsługujących dostawcę usług w chmurze i innych systemach. We wszystkich przypadkach system obsługujący jest inicjowany przy użyciu najnowszego modelu produkcyjnego z rejestru modeli. Dla każdego żądania pobiera funkcje ze sklepu funkcji online i tworzy przewidywania.
Monitorowanie: Ciągłe lub okresowe przepływy pracy monitorują dane wejściowe i przewidywania modelu pod kątem dryfu, wydajności i innych metryk. Tabele delta Live Tables mogą uprościć automatyzację potoków monitorowania, przechowując metryki w tabelach usługi Lakehouse. Usługi Databricks SQL, Power BI i inne narzędzia mogą odczytywać z tych tabel w celu tworzenia pulpitów nawigacyjnych i alertów.
Ponowne trenowanie: ta architektura obsługuje zarówno ręczne, jak i automatyczne ponowne trenowanie. Zaplanowane zadania ponownego trenowania to najprostszy sposób, aby zachować świeżość modeli.
Elementy
- Data Lakehouse. Architektura usługi Lakehouse łączy najlepsze elementy magazynów typu data lake i magazynów danych, zapewniając zarządzanie danymi i wydajność zwykle spotykane w magazynach danych z niskimi kosztami, elastycznymi magazynami obiektów oferowanymi przez magazyny typu data lake.
- Usługa Delta Lake jest zalecanym wyborem dla formatu danych typu open source dla usługi Lakehouse. Usługa Azure Databricks przechowuje dane w usłudze Data Lake Storage i udostępnia aparat zapytań o wysokiej wydajności.
- MLflow to projekt typu open source umożliwiający zarządzanie cyklem życia kompleksowego uczenia maszynowego. Są to jego główne składniki:
- Śledzenie umożliwia śledzenie eksperymentów w celu rejestrowania i porównywania parametrów, metryk i artefaktów modelu.
- Automatyczne rejestrowanie usługi Databricks rozszerza automatyczne rejestrowanie MLflow w celu śledzenia eksperymentów uczenia maszynowego, automatycznego rejestrowania parametrów modelu, metryk, plików i informacji o pochodzenia.
- Model MLFlow umożliwia przechowywanie i wdrażanie modeli z dowolnej biblioteki uczenia maszynowego do różnych platform obsługujących i wnioskowania modeli.
- Rejestr modeli zapewnia scentralizowany magazyn modeli do zarządzania etapami cyklu życia modelu z programowania do produkcji.
- Obsługa modelu umożliwia hostowanie modeli MLflow jako punktów końcowych REST.
- Śledzenie umożliwia śledzenie eksperymentów w celu rejestrowania i porównywania parametrów, metryk i artefaktów modelu.
- Azure Databricks. Usługa Azure Databricks udostępnia zarządzaną usługę MLflow z funkcjami zabezpieczeń przedsiębiorstwa, wysoką dostępnością i integracją z innymi funkcjami obszaru roboczego usługi Azure Databricks.
- Środowisko Databricks Runtime for Machine Edukacja automatyzuje tworzenie klastra zoptymalizowanego pod kątem uczenia maszynowego, wstępnie instalując popularne biblioteki uczenia maszynowego, takie jak TensorFlow, PyTorch i XGBoost, oprócz narzędzi usługi Azure Databricks for Machine Edukacja, takich jak klienci automatycznego uczenia maszynowego i magazynu funkcji.
- Magazyn funkcji to scentralizowane repozytorium funkcji. Umożliwia udostępnianie i odnajdywanie funkcji oraz pomaga uniknąć niesymetryczności danych między trenowaniem i wnioskowaniem modelu.
- Databricks SQL. Usługa Databricks SQL zapewnia proste środowisko zapytań SQL dotyczących danych usługi Lakehouse oraz wizualizacji, pulpitów nawigacyjnych i alertów.
- Usługa Databricks Repos zapewnia integrację z dostawcą usługi Git w obszarze roboczym usługi Azure Databricks, upraszczając wspólne opracowywanie notesów lub integracji kodu i środowiska IDE.
- Przepływy pracy i zadania umożliwiają uruchamianie kodu nieinterakcyjnego w klastrze usługi Azure Databricks. W przypadku uczenia maszynowego zadania zapewniają automatyzację przygotowywania danych, cechowania, trenowania, wnioskowania i monitorowania.
Alternatywy
To rozwiązanie można dostosować do infrastruktury platformy Azure. Typowe dostosowania obejmują:
- Wiele obszarów roboczych programowania, które współużytkuje wspólny obszar roboczy produkcyjny.
- Wymiana co najmniej jednego składnika architektury dla istniejącej infrastruktury. Na przykład możesz użyć usługi Azure Data Factory do organizowania zadań usługi Databricks.
- Integracja z istniejącymi narzędziami ciągłej integracji/ciągłego wdrażania za pośrednictwem interfejsów API REST usług Git i Azure Databricks.
Szczegóły scenariusza
Metodyka MLOps pomaga zmniejszyć ryzyko awarii w systemach uczenia maszynowego i sztucznej inteligencji oraz zwiększyć wydajność współpracy i narzędzi. Aby zapoznać się z wprowadzeniem do metodyki MLOps i omówieniem tej architektury, zobacz Tworzenie architektury metodyki MLOps w usłudze Lakehouse.
Korzystając z tej architektury, można wykonywać następujące czynności:
- Połączenie zainteresowanych stron biznesowych zespołami uczenia maszynowego i nauki o danych. Ta architektura umożliwia analitykom danych używanie notesów i środowisk IDE do programowania. Umożliwia to uczestnikom projektu biznesowego wyświetlanie metryk i pulpitów nawigacyjnych w usłudze Databricks SQL w ramach tej samej architektury usługi Lakehouse.
- Uśmierć dane infrastruktury uczenia maszynowego. Ta architektura traktuje dane uczenia maszynowego (dane z inżynierii cech, trenowania, wnioskowania i monitorowania), podobnie jak inne dane. Ponownie używa narzędzi dla potoków produkcyjnych, pulpitów nawigacyjnych i innego ogólnego przetwarzania danych na potrzeby przetwarzania danych uczenia maszynowego.
- Implementowanie metodyki MLOps w modułach i potokach. Podobnie jak w przypadku każdej aplikacji programowej modułowe potoki i kod w tej architekturze umożliwiają testowanie poszczególnych składników i obniżają koszt przyszłej refaktoryzacji.
- Automatyzowanie procesów MLOps zgodnie z potrzebami. W tej architekturze można zautomatyzować kroki w celu zwiększenia produktywności i zmniejszenia ryzyka błędu ludzkiego, ale nie każdy krok musi zostać zautomatyzowany. Usługa Azure Databricks zezwala na interfejs użytkownika i procesy ręczne oprócz interfejsów API na potrzeby automatyzacji.
Potencjalne przypadki użycia
Ta architektura ma zastosowanie do wszystkich typów uczenia maszynowego, uczenia głębokiego i zaawansowanych analiz. Typowe techniki uczenia maszynowego/sztucznej inteligencji używane w tej architekturze obejmują:
- Klasyczne uczenie maszynowe, takie jak modele liniowe, modele oparte na drzewach i zwiększanie.
- Nowoczesne uczenie głębokie, takie jak TensorFlow i PyTorch.
- Analiza niestandardowa, na przykład statystyki, metody Bayesowskie i analiza grafów.
Architektura obsługuje zarówno małe dane (pojedyncze maszyny) jak i duże dane (przetwarzanie rozproszone i przyspieszone procesory GPU). Na każdym etapie architektury można wybrać zasoby obliczeniowe i biblioteki, aby dostosować się do wymiarów danych i problemów.
Architektura ma zastosowanie do wszystkich typów branż i przypadków użycia biznesowego. Klienci usługi Azure Databricks korzystający z tej i podobnych architektur obejmują małe i duże organizacje w takich branżach:
- Towary konsumpcyjne i usługi detaliczne
- Usługi finansowe
- Opieka zdrowotna i nauki przyrodnicze
- Technologie informatyczne
Przykłady można znaleźć w witrynie internetowej usługi Databricks.
Współautorzy
Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.
Główny autor:
- Brandon Cowen | Starszy architekt rozwiązań w chmurze
Inny współautor:
- Mick Alberts | Składnik zapisywania technicznego
Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.
Następne kroki
- Wielka książka mlOps
- Potrzeba platform uczenia maszynowego skoncentrowanego na danych (wprowadzenie do metodyki MLOps)
- Przewodnik Szybki start dotyczący usługi Databricks Machine Edukacja w produkcie
- 10-minutowe samouczki: wprowadzenie do uczenia maszynowego w usłudze Azure Databricks
- Dokumentacja usługi Databricks Machine Edukacja
- Strona produktu i zasoby Edukacja maszyny usługi Databricks
- Metodyka MLOps w usłudze Databricks: przewodnik z instrukcjami
- Automatyzowanie cyklu życia uczenia maszynowego przy użyciu usługi Databricks Machine Edukacja
- Metodyka MLOps w usłudze Azure Databricks z rozwiązaniem MLflow
- Inżynieria Edukacja maszynowa dla świata rzeczywistego
- Automatyzowanie potoku Edukacja maszyny
- Akademia usługi Databricks
- Projekt GitHub akademii usługi Databricks
- Słownik metodyki MLOps
- Trzy zasady dotyczące wybierania platform Edukacja maszyny
- Co to jest lakehouse?
- Strona główna usługi Delta Lake
- Pozyskiwanie danych do usługi Azure Databricks Lakehouse
- Klastry
- Biblioteki
- Dokumentacja platformy MLflow
- Przewodnik po platformie Azure Databricks MLflow
- Udostępnianie modeli między obszarami roboczymi
- Notesy
- Narzędzia programistyczne i wskazówki
- Wdrażanie modeli MLflow w punktach końcowych online w usłudze Azure Machine Edukacja
- Wdrażanie w usłudze Azure Kubernetes Service (AKS)