Udostępnij za pośrednictwem


Co to są potoki usługi Azure Machine Learning?

Potok usługi Azure Machine Learning to niezależnie wykonywalny przepływ pracy kompletnego zadania uczenia maszynowego. Potok usługi Azure Machine Learning pomaga w standaryzacji najlepszych rozwiązań dotyczących tworzenia modelu uczenia maszynowego, umożliwia zespołowi wykonywanie na dużą skalę i poprawia wydajność tworzenia modelu.

Dlaczego potrzebne są potoki usługi Azure Machine Learning?

Podstawowym elementem potoku uczenia maszynowego jest podzielenie pełnego zadania uczenia maszynowego na wieloetapowy przepływ pracy. Każdy krok jest zarządzanym składnikiem, który można opracowywać, optymalizować, konfigurować i zautomatyzować osobno. Kroki są połączone za pośrednictwem dobrze zdefiniowanych interfejsów. Usługa potoku azure Machine Learning automatycznie organizuje wszystkie zależności między krokami potoku. Takie podejście modułowe przynosi dwie kluczowe korzyści:

Standaryzacja praktyki MLOps i obsługa skalowalnej współpracy zespołowej

Operacja uczenia maszynowego (MLOps) automatyzuje proces tworzenia modeli uczenia maszynowego i przyjmowania modelu do środowiska produkcyjnego. Jest to złożony proces. Zwykle wymaga współpracy z różnymi zespołami z różnymi umiejętnościami. Dobrze zdefiniowany potok uczenia maszynowego może abstrakować ten złożony proces w wielu krokach przepływu pracy, mapowanie każdego kroku na określone zadanie, tak aby każdy zespół mógł pracować niezależnie.

Na przykład typowy projekt uczenia maszynowego obejmuje kroki zbierania danych, przygotowywania danych, trenowania modelu, oceny modelu i wdrażania modelu. Zwykle inżynierowie danych koncentrują się na krokach danych, analitycy danych spędzają większość czasu na trenowaniu i ocenie modelu, inżynierowie uczenia maszynowego koncentrują się na wdrażaniu modeli i automatyzacji całego przepływu pracy. Korzystając z potoku uczenia maszynowego, każdy zespół musi pracować tylko nad tworzeniem własnych kroków. Najlepszym sposobem tworzenia kroków jest użycie składnika Usługi Azure Machine Learning (wersja 2), samodzielnego fragmentu kodu, który wykonuje jeden krok w potoku uczenia maszynowego. Wszystkie te kroki utworzone przez różnych użytkowników są ostatecznie zintegrowane z jednym przepływem pracy za pomocą definicji potoku. Potok jest narzędziem do współpracy dla wszystkich osób w projekcie. Proces definiowania potoku i wszystkich kroków może być ustandaryzowany przez preferowaną praktykę metodyki DevOps każdej firmy. Potok można dalej wersjonować i zautomatyzować. Jeśli projekty uczenia maszynowego są opisane jako potok, najlepsze rozwiązanie MLOps jest już stosowane.

Efektywność trenowania i obniżenie kosztów

Oprócz tego, że jest to narzędzie do umieszczenia metodyki MLOps w praktyce, potok uczenia maszynowego zwiększa również wydajność dużego trenowania modelu i zmniejsza koszty. Przykładowe trenowanie nowoczesnego modelu języka naturalnego. Wymaga to wstępnego przetwarzania dużych ilości danych i trenowania modelu przekształcania intensywnie korzystającego z procesora GPU. Trenowanie modelu za każdym razem trwa kilka godzin. Gdy model jest tworzony, analityk danych chce przetestować inny kod trenowania lub hiperparametry i uruchomić szkolenie wiele razy, aby uzyskać najlepszą wydajność modelu. W przypadku większości tych szkoleń zwykle są niewielkie zmiany w porównaniu z jednym treningiem do drugiego. Będzie to istotne strata, jeśli za każdym razem odbywa się pełne szkolenie z przetwarzania danych do trenowania modelu. Za pomocą potoku uczenia maszynowego można automatycznie obliczyć, które kroki są niezmienione i ponownie wykorzystać dane wyjściowe z poprzedniego trenowania. Ponadto potok uczenia maszynowego obsługuje uruchamianie każdego kroku na różnych zasobach obliczeniowych. W taki sposób, że przetwarzanie dużych ilości pamięci działa i działa na maszynach z dużą ilością pamięci, a trenowanie intensywnie korzystające z obliczeń może być uruchamiane na kosztownych maszynach z procesorem GPU. Dzięki prawidłowemu wybraniu kroku do uruchomienia na jakim typie maszyn koszt trenowania może zostać znacznie zmniejszony.

Wprowadzenie do najlepszych rozwiązań

W zależności od tego, co już ma projekt uczenia maszynowego, punkt wyjścia tworzenia potoku uczenia maszynowego może się różnić. Istnieje kilka typowych podejść do tworzenia potoku.

Pierwsze podejście zwykle dotyczy zespołu, który wcześniej nie używał potoku i chce skorzystać z zalet potoku, takiego jak MLOps. W takiej sytuacji analitycy danych zazwyczaj opracowali niektóre modele uczenia maszynowego w środowisku lokalnym przy użyciu ulubionych narzędzi. Inżynierowie uczenia maszynowego muszą pobrać dane wyjściowe analityków danych do środowiska produkcyjnego. Praca polega na czyszczeniu niepotrzebnego kodu z oryginalnego notesu lub kodu języka Python, zmienia dane wejściowe trenowania z danych lokalnych na sparametryzowane wartości, dzieli kod trenowania na wiele kroków zgodnie z potrzebami, przeprowadź test jednostkowy każdego kroku, a na koniec zawija wszystkie kroki do potoku.

Gdy zespoły zaznajomią się z potokami i chcą wykonywać więcej projektów uczenia maszynowego przy użyciu potoków, przekonają się, że pierwsze podejście jest trudne do skalowania. Drugie podejście polega na skonfigurowaniu kilku szablonów potoków, z których każdy próbuje rozwiązać jeden konkretny problem z uczeniem maszynowym. Szablon wstępnie określa strukturę potoku, w tym liczbę kroków, dane wejściowe i wyjściowe każdego kroku oraz ich łączność. Aby rozpocząć nowy projekt uczenia maszynowego, zespół najpierw rozwidli jedno repozytorium szablonu. Następnie lider zespołu przypisuje członkom, nad którymi krokami muszą pracować. Analitycy danych i inżynierowie danych wykonują swoją regularną pracę. Gdy są zadowoleni z ich wyniku, tworzą strukturę kodu, aby dopasować go do wstępnie zdefiniowanych kroków. Po zaewidencjonowanym kodach strukturalnych potok można wykonać lub zautomatyzować. Jeśli wystąpi jakakolwiek zmiana, każdy element członkowski musi pracować tylko nad fragmentem kodu bez dotykania pozostałej części kodu potoku.

Po utworzeniu przez zespół kolekcji potoków uczenia maszynowego i składników wielokrotnego użytku mogą rozpocząć tworzenie potoku uczenia maszynowego z klonowania poprzedniego potoku lub powiązania istniejącego składnika wielokrotnego użytku. Na tym etapie ogólna wydajność zespołu zostanie znacznie zwiększona.

Usługa Azure Machine Learning oferuje różne metody tworzenia potoku. W przypadku użytkowników, którzy znają rozwiązania DevOps, zalecamy korzystanie z interfejsu wiersza polecenia. W przypadku analityków danych, którzy znają język Python, zalecamy pisanie potoków przy użyciu zestawu Azure Machine Learning SDK w wersji 2. Użytkownicy, którzy wolą używać interfejsu użytkownika, mogą używać projektanta do kompilowania potoków przy użyciu zarejestrowanych składników.

Której technologii potoku platformy Azure należy używać?

Chmura platformy Azure udostępnia kilka typów potoków, z których każdy ma inny cel. W poniższej tabeli wymieniono różne potoki i używane w nich elementy:

Scenariusz Osoba podstawowa Oferta platformy Azure Oferta systemu operacyjnego Rura kanoniczna Mocnych
Orkiestracja modelu (uczenie maszynowe) Mistrz danych Potoki usługi Azure Machine Learning Potoki kubeflow Dane —> model Dystrybucja, buforowanie, ponowne używanie kodu
Aranżacja danych (przygotowywanie danych) Inżynier danych Potoki usługi Azure Data Factory Przepływ powietrza Apache Dane —> dane Silnie typizowane przenoszenie, działania skoncentrowane na danych
Orkiestracja kodu i aplikacji (CIĄGŁA integracja/ciągłe wdrażanie) Deweloper aplikacji /Ops Azure Pipelines Jenkins Kod i model —> App/Service Większość obsługi otwartych i elastycznych działań, kolejek zatwierdzania, faz z funkcją gating

Następne kroki

Potoki usługi Azure Machine Learning to zaawansowany obiekt, który rozpoczyna dostarczanie wartości we wczesnych etapach programowania.