Udostępnij przez


Stosy MLOps: proces tworzenia modelu jako kod

W tym artykule opisano, jak stosy MLOps umożliwiają zaimplementowanie procesu programowania i wdrażania jako kodu w repozytorium kontrolowanym przez źródło. Opisano również zalety opracowywania modeli na platformie analizy danych usługi Databricks, jednej platformy, która łączy każdy krok procesu tworzenia i wdrażania modelu.

Co to jest stosy MLOps?

W przypadku stosów MLOps cały proces tworzenia modelu jest implementowany, zapisywany i śledzony jako kod w repozytorium kontrolowanym przez źródło. Automatyzacja procesu w ten sposób ułatwia wdrożenia bardziej powtarzalne, przewidywalne i systematyczne oraz umożliwia integrację z procesem ciągłej integracji/ciągłego wdrażania. Reprezentowanie procesu tworzenia modelu jako kodu umożliwia wdrożenie kodu zamiast wdrażania modelu. Wdrożenie kodu automatyzuje możliwość kompilowania modelu, co znacznie ułatwia ponowne trenowanie modelu w razie potrzeby.

Podczas tworzenia projektu przy użyciu stosów MLOps definiuje się składniki procesu rozwoju i wdrażania uczenia maszynowego, takie jak notatniki do przygotowania cech, trenowania, testowania i wdrażania, potoki do trenowania i testowania, obszary robocze do użycia dla każdego etapu oraz przepływy pracy CI/CD przy użyciu GitHub Actions lub Azure DevOps na potrzeby zautomatyzowanego testowania i wdrażania kodu.

Środowisko utworzone przez stosy MLOps implementuje przepływ pracy metodyki MLOps zalecany przez usługę Databricks. Możesz dostosować kod, aby tworzyć stosy w celu dopasowania ich do procesów lub wymagań organizacji.

Jak działają stosy MLOps?

Używasz interfejsu wiersza polecenia Databricks do tworzenia stosu MLOps. Aby uzyskać instrukcje krok po kroku, zobacz Zestawy zasobów Databricks dla stosów MLOps.

Po zainicjowaniu projektu MLOps Stacks, oprogramowanie prowadzi użytkownika przez wprowadzanie szczegółów konfiguracji, a następnie tworzy katalog zawierający pliki, które składają się na Twój projekt. Ten katalog lub stos technologiczny implementuje przepływ pracy MLOps w środowisku produkcyjnym zalecany przez firmę Databricks. Komponenty, które widzisz na diagramie, są już stworzone dla Ciebie i wystarczy edytować pliki, aby dodać swój niestandardowy kod.

Diagram składników stosów MLOps

Na diagramie:

  • 1: Analityk danych lub inżynier uczenia maszynowego inicjuje projekt przy użyciu metody databricks bundle init mlops-stacks. Gdy inicjujesz projekt, możesz wybrać konfigurację składników kodu ML (zwykle używanych przez naukowców zajmujących się danymi), składników CI/CD (zwykle używanych przez inżynierów ML) lub obu tych składników.
  • B: Inżynierowie ML konfigurują sekrety tożsamości usługi Databricks dla CI/CD.
  • C: Analitycy danych opracowują modele w usłudze Databricks lub w systemie lokalnym.
  • D: Analitycy danych tworzą pull requesty w celu zaktualizowania kodu uczenia maszynowego.
  • E: Narzędzie CI/CD uruchamia notebooki, tworzy prace i wykonuje inne zadania w obszarach roboczych przejściowych i produkcyjnych.

Organizacja może używać domyślnego stosu lub dostosowywać go zgodnie z potrzebami, aby dodawać, usuwać lub poprawiać składniki zgodnie z praktykami organizacji. Szczegółowe informacje można znaleźć w pliku readme repozytorium GitHub.

Stosy MLOps są zaprojektowane z modułową strukturą, aby umożliwić różnym zespołom ds. uczenia maszynowego niezależną pracę nad projektem, przestrzegając najlepszych praktyk inżynierii oprogramowania i utrzymując produkcję na poziomie klasy produkcyjnej w zakresie CI/CD. Inżynierowie produkcyjni konfigurują infrastrukturę uczenia maszynowego, która umożliwia analitykom danych opracowywanie, testowanie i wdrażanie potoków i modeli uczenia maszynowego w środowisku produkcyjnym.

Jak pokazano na diagramie, domyślny stos MLOps obejmuje następujące trzy składniki:

  • Kod uczenia maszynowego. Stosy MLOps tworzą zestaw szablonów dla projektu uczenia maszynowego, takie jak notatniki do trenowania, wnioskowania wsadowego itp. Standardowy szablon umożliwia analitykom danych szybkie rozpoczęcie pracy, łączenie struktury projektu między zespołami i wymusza modułowe przygotowanie kodu do testowania.
  • Zasoby uczenia maszynowego jako kod. Stosy MLOps definiują zasoby, takie jak obszary robocze i potoki dla zadań, takich jak trenowanie i wnioskowanie wsadowe. Zasoby są definiowane w pakietach zasobów usługi Databricks w celu ułatwienia testowania, optymalizacji i kontroli wersji środowiska uczenia maszynowego. Na przykład można wypróbować większy typ wystąpienia dla zautomatyzowanego ponownego trenowania modelu, a zmiana będzie automatycznie śledzona do przyszłego wglądu.
  • CI/CD Za pomocą funkcji GitHub Actions lub Azure DevOps można testować i wdrażać kod i zasoby uczenia maszynowego, zapewniając, że wszystkie zmiany produkcyjne są wykonywane za pośrednictwem automatyzacji i że tylko przetestowany kod jest wdrażany w środowisku prod.

Przepływ projektu MLOps

Domyślny projekt Stos MLOps obejmuje potok uczenia maszynowego z przepływami pracy CI/CD w celu testowania i wdrażania zautomatyzowanych zadań trenowania modelu i wnioskowania wsadowego w środowiskach pracy rozwoju, testowania i produkcji usługi Databricks. Stosy MLOps można konfigurować, dzięki czemu można zmodyfikować strukturę projektu tak, aby spełniała procesy organizacji.

Na diagramie przedstawiono proces, który jest realizowany przez stos domyślny MLOps. W środowisku rozwoju analitycy danych iterują kod uczenia maszynowego i składają żądania ściągnięcia (PRs). Pull requesty wyzwalają testy jednostkowe i testy integracyjne w izolowanym przejściowym workspace Databricks. Po scaleniu żądania ściągnięcia do głównej gałęzi, zadania trenowania modelu i przetwarzania wsadowego uruchamiane w środowisku przejściowym natychmiast aktualizują się, aby korzystać z najnowszego kodu. Po scaleniu pull requesta z gałęzią główną można utworzyć nową gałąź wydania w ramach zaplanowanego procesu wydania i wdrożyć zmiany kodu na produkcję.

Ogólny diagram przepływu MLOps

Struktura projektu stosów MLOps

Stos MLOps używa pakietów zasobów Databricks — kolekcji plików źródłowych, która służy jako kompletna definicja projektu. Te pliki źródłowe zawierają informacje o sposobie ich testowania i wdrażania. Zbieranie plików jako pakietu ułatwia współzarządzanie wersjami i używanie najlepszych rozwiązań inżynierii oprogramowania, takich jak kontrola wersji, przegląd kodu, testowanie oraz CI/CD.

Na diagramie przedstawiono pliki utworzone dla domyślnego stosu MLOps. Aby uzyskać szczegółowe informacje o plikach zawartych w stosie, zapoznaj się z dokumentacją w repozytorium GitHub lub pakietami zasobów usługi Databricks dla stosów MLOps.

Struktura katalogów MLops Stacks

Składniki stosu MLOps

"Stos" odnosi się do zestawu narzędzi używanych w procesie rozwoju. Domyślny stos MLOps korzysta z ujednoliconej platformy Databricks i wykorzystuje następujące narzędzia:

Składnik Narzędzie w usłudze Databricks
Kod programowania modelu uczenia maszynowego Notatniki Databricks, MLflow
Opracowywanie funkcji i zarządzanie nimi Inżynieria cech danych
Repozytorium modeli uczenia maszynowego Modele w katalogu Unity
Obsługa modelu uczenia maszynowego Serwowanie modelu Mosaic AI
Infrastruktura jako kod Pakiety zasobów usługi Databricks
Orkiestrator Zadania lakeflow
ciągła integracja/ciągłe wdrażanie GitHub Actions, Azure DevOps
Monitorowanie wydajności danych i modelu Profilowanie danych

Następne kroki

Aby zacząć, zobacz Pakiety zasobów usługi Databricks dla stosów MLOps albo repozytorium Databricks MLOps Stacks w witrynie GitHub.