Uaktualnianie do wersji 2

Interfejsy API REST usługi Azure Machine Edukacja w wersji 2, rozszerzenie interfejsu wiersza polecenia platformy Azure i zestaw SDK języka Python wprowadzają spójność i zestaw nowych funkcji w celu przyspieszenia cyklu życia uczenia maszynowego w środowisku produkcyjnym. Ten artykuł zawiera omówienie uaktualniania do wersji 2 z zaleceniami, które ułatwiają podjęcie decyzji o wersji 1, wersji 2 lub obu tych wersji.

Wymagania wstępne

  • Ogólna znajomość usługi Azure Machine Edukacja i zestawu SDK języka Python w wersji 1.
  • Dowiedz się , co to jest wersja 2?

Czy należy używać wersji 2?

Jeśli uruchamiasz nowy projekt lub przepływ pracy uczenia maszynowego, użyj wersji 2. Jeśli chcesz używać nowych funkcji oferowanych w wersji 2, należy użyć wersji 2. Dostępne funkcje to:

  • Wnioskowanie zarządzane
  • Składniki wielokrotnego użytku w potokach
  • Ulepszone planowanie potoków
  • Pulpit nawigacyjny odpowiedzialnej sztucznej inteligencji
  • Rejestr zasobów

Nowy projekt w wersji 2 może ponownie używać istniejących zasobów w wersji 1, takich jak obszary robocze i zasoby obliczeniowe i istniejące, takie jak modele i środowiska utworzone przy użyciu wersji 1.

Niektóre luki w funkcjach w wersji 2 obejmują:

  • Obsługa platformy Spark w zadaniach — jest to obecnie w wersji zapoznawczej w wersji 2.
  • Zadania publikowania (potoki w wersji 1) jako punkty końcowe. Można jednak zaplanować potoki bez publikowania.
  • Obsługa magazynów danych SQL/database.
  • Możliwość używania klasycznych wstępnie utworzonych składników w projektancie w wersji 2.

Następnie należy upewnić się, że potrzebne funkcje w wersji 2 spełniają wymagania organizacji, takie jak ogólnie dostępne.

Ważne

Nowe funkcje w usłudze Azure Machine Edukacja zostaną uruchomione tylko w wersji 2.

Którego interfejsu API w wersji 2 należy użyć?

W interfejsach w wersji 2 za pośrednictwem interfejsu API REST, interfejsu wiersza polecenia i zestawu PYTHON SDK są dostępne. Interfejs, którego należy użyć, zależy od scenariusza i preferencji.

interfejs API Uwagi
REST Najmniejsza zależność i obciążenie. Służy do tworzenia aplikacji w usłudze Azure Machine Edukacja jako platformy, bezpośrednio w językach programowania bez zestawu SDK lub zgodnie z preferencjami osobistymi.
Interfejs wiersza polecenia Zalecane do automatyzacji przy użyciu ciągłej integracji/ciągłego wdrażania lub preferencji osobistych. Umożliwia szybką iterację za pomocą plików YAML i proste rozdzielenie między Edukacja azure Machine i kodem modelu uczenia maszynowego.
Zestaw SDK dla języka Python Zalecane w przypadku skomplikowanych skryptów (na przykład programowego generowania dużych zadań potoku) lub preferencji osobistych. Umożliwia szybką iterację przy użyciu plików YAML lub programowania wyłącznie w języku Python.

Mapowanie zestawu Python SDK w wersji 1 na 2

Zapoznaj się z każdym z poniższych artykułów, aby zapoznać się z mapowaniem kodu porównania dla zestawu SDK w wersji 1 a wersja 2.

Zasoby i zasoby Artykuł
Obszar roboczy Zarządzanie obszarami roboczymi w zestawie SDK w wersji 1 i zestawu SDK w wersji 2
Magazyn danych Zarządzanie magazynem danych w zestawie SDK w wersji 1 i zestawu SDK w wersji 2
Data Zasoby danych w zestawie SDK w wersji 1 i w wersji 2
Compute Zarządzanie obliczeniami w zestawie SDK w wersji 1 i zestawu SDK w wersji 2
Szkolenie Uruchamianie skryptu
Szkolenie Uruchomienia lokalne
Szkolenie Dostrajanie hiperparametrów
Szkolenie Równoległe uruchamianie
Szkolenie Pipelines
Szkolenie AutoML
Modele Zarządzanie modelami w zestawie SDK w wersji 1 i zestawu SDK w wersji 2
Wdrożenie Uaktualnianie punktów końcowych wdrożenia do zestawu SDK w wersji 2

Zasoby i zasoby w wersji 1 i 2

Ta sekcja zawiera omówienie określonych zasobów i zasobów w usłudze Azure Machine Edukacja. Zobacz artykuł koncepcyjny dla każdej jednostki, aby uzyskać szczegółowe informacje na temat ich użycia w wersji 2.

Obszar roboczy

Obszary robocze nie muszą być uaktualniane przy użyciu wersji 2. Możesz użyć tego samego obszaru roboczego, niezależnie od tego, czy używasz wersji 1, czy 2.

Jeśli tworzysz obszary robocze przy użyciu automatyzacji, rozważ uaktualnienie kodu do tworzenia obszaru roboczego do wersji 2. Zazwyczaj zasoby platformy Azure są zarządzane za pośrednictwem usługi Azure Resource Manager (i Bicep) lub podobnych narzędzi aprowizacji zasobów. Alternatywnie możesz użyć interfejsu wiersza polecenia (wersja 2) i plików YAML.

Aby zapoznać się z porównaniem kodu zestawu SDK w wersji 1 i 2, zobacz Zarządzanie obszarami roboczymi w zestawie SDK w wersji 1 i zestaw SDK w wersji 2.

Ważne

Jeśli obszar roboczy używa prywatnego punktu końcowego, zostanie v1_legacy_mode automatycznie włączona flaga uniemożliwiająca użycie interfejsów API w wersji 2. Aby uzyskać szczegółowe informacje, zobacz , jak skonfigurować izolację sieci przy użyciu wersji 2 .

Połączenie ion (połączenie obszaru roboczego w wersji 1)

Połączenia obszaru roboczego z wersji 1 są utrwalane w obszarze roboczym i w pełni dostępne w wersji 2.

Aby zapoznać się z porównaniem kodu zestawu SDK w wersji 1 i 2, zobacz Zarządzanie obszarami roboczymi w zestawie SDK w wersji 1 i zestaw SDK w wersji 2.

Magazyn danych

Typy magazynu danych magazynu obiektów utworzone za pomocą wersji 1 są w pełni dostępne do użycia w wersji 2. Magazyny danych bazy danych nie są obsługiwane; Eksportowanie do magazynu obiektów (zazwyczaj azure Blob) jest zalecaną ścieżką migracji.

Aby zapoznać się z porównaniem kodu zestawu SDK w wersji 1 i 2, zobacz Zarządzanie magazynem danych w zestawie SDK w wersji 1 i zestaw SDK w wersji 2.

Dane (zestawy danych w wersji 1)

Nazwy zestawów danych są zmieniane na zasoby danych. Zapewniana jest zgodność z poprzednimi wersjami, co oznacza, że można używać zestawów danych w wersji 1 w wersji 2. Gdy korzystasz z zestawu danych w wersji 1 w zadaniu w wersji 2, zauważysz, że są one automatycznie mapowane na typy V2 w następujący sposób:

  • V1 FileDataset = V2 Folder (uri_folder)
  • Tabelaryczny zestaw danych w wersji 1 = tabela V2 (mltable)

Należy zauważyć, że nie podano zgodności przekazywaniadalej, co oznacza, że nie można używać zasobów danych w wersji 2 w wersji 1.

Ten artykuł zawiera więcej informacji na temat obsługi danych w wersji 2 — odczytywanie i zapisywanie danych w zadaniu

Aby zapoznać się z porównaniem kodu zestawu SDK w wersji 1 i 2, zobacz Zasoby danych w zestawie SDK w wersji 1 i w wersji 2.

Compute

Obliczenia typu AmlCompute i ComputeInstance są w pełni dostępne do użycia w wersji 2.

Aby zapoznać się z porównaniem kodu zestawu SDK w wersji 1 i 2, zobacz Zarządzanie obliczeniami w zestawie SDK w wersji 1 i zestaw SDK w wersji 2.

Zadania (eksperymenty, uruchomienia, potoki w wersji 1)

W „eksperymentach” w wersji 2 „przebiegi” i „potoki” są konsolidowane jako zadania. Zadanie ma typ. Większość zadań to command zadania, które uruchamiają polecenie, takie jak python main.py. To, co działa w zadaniu, jest niezależne od dowolnego języka programowania, więc można uruchamiać bash skrypty, wywoływać python interpretery, uruchamiać kilka curl poleceń lub cokolwiek innego. Innym typowym typem zadania jest pipeline, który definiuje zadania podrzędne, które mogą mieć relacje wejściowe/wyjściowe, tworząc skierowany graf acykliczny (DAG).

Aby zapoznać się z porównaniem kodu zestawu SDK w wersji 1 i 2, zobacz

Projektant

Za pomocą projektanta można tworzyć potoki przy użyciu własnych składników niestandardowych w wersji 2 i nowych wstępnie utworzonych składników z rejestru. W takiej sytuacji możesz użyć zasobów danych w wersji 1 lub 2 w potoku.

Możesz nadal używać projektanta do kompilowania potoków przy użyciu klasycznych wstępnie utworzonych składników i typów zestawów danych w wersji 1 (tabelaryczny, plik). Nie można używać istniejących wstępnie utworzonych składników projektanta z zasobem danych w wersji 2.

Nie można utworzyć potoku przy użyciu istniejących wstępnie utworzonych składników projektanta i składników niestandardowych w wersji 2.

Model

Modele utworzone na podstawie wersji 1 mogą być używane w wersji 2.

Aby zapoznać się z porównaniem kodu zestawu SDK w wersji 1 i 2, zobacz Zarządzanie modelami w zestawie SDK w wersji 1 i zestaw SDK w wersji 2

Punkt końcowy i wdrożenie (punkt końcowy i usługa internetowa w wersji 1)

Za pomocą zestawu SDK/interfejsu wiersza polecenia w wersji 1 można wdrażać modele w usłudze ACI lub AKS jako usługi internetowe. Istniejące wdrożenia modelu w wersji 1 i usługi internetowe będą nadal działać tak, jak są, ale wdrażanie modeli w usłudze ACI lub AKS przy użyciu zestawu SDK/interfejsu wiersza polecenia w wersji 1 jest teraz uznawane za starsze. W przypadku nowych wdrożeń modelu zalecamy uaktualnienie do wersji 2. W wersji 2 oferujemy zarządzane punkty końcowe lub punkty końcowe kubernetes. W poniższej tabeli przedstawiono zalecenia:

Typ punktu końcowego w wersji 2 Uaktualnianie z Uwagi
Lokalny ACI Szybki test wdrożenia modelu lokalnie; nie dla środowiska produkcyjnego.
Zarządzany punkt końcowy online ACI, AKS Infrastruktura wdrażania modelu zarządzanego klasy korporacyjnej z odpowiedziami niemal w czasie rzeczywistym i ogromnym skalowaniem w środowisku produkcyjnym.
Zarządzany punkt końcowy wsadowy ParallelRunStep w potoku na potrzeby oceniania wsadowego Infrastruktura wdrażania modelu zarządzanego klasy korporacyjnej z masowo równoległym przetwarzaniem wsadowym na potrzeby produkcji.
Azure Kubernetes Service (AKS) ACI, AKS Zarządzanie własnymi klastrami usługi AKS na potrzeby wdrażania modelu, zapewniając elastyczność i szczegółową kontrolę kosztem obciążeń IT.
Platforma Kubernetes z usługą Azure Arc Nie dotyczy Zarządzaj własnymi klastrami Kubernetes w innych chmurach lub lokalnie, zapewniając elastyczność i szczegółową kontrolę kosztem obciążeń it.

Aby zapoznać się z porównaniem kodu zestawu SDK w wersji 1 i 2, zobacz Uaktualnianie punktów końcowych wdrożenia do zestawu SDK w wersji 2. Aby uzyskać instrukcje migracji z istniejących usług internetowych ACI do zarządzanych punktów końcowych online, zobacz nasz artykuł i blog z przewodnika po uaktualnieniu.

Środowisko

Środowiska utworzone na podstawie wersji 1 mogą być używane w wersji 2. W wersji 2 środowiska mają nowe funkcje, takie jak tworzenie z lokalnego kontekstu platformy Docker.

Zarządzanie wpisami tajnymi

Zarządzanie wpisami tajnymi usługi Key Vault różni się znacznie w wersji 2 w porównaniu z wersją V1. Metody zestawu SDK set_secret i get_secret w wersji 1 nie są dostępne w wersji 2. Zamiast tego należy używać bezpośredniego dostępu przy użyciu bibliotek klienckich usługi Key Vault.

Aby uzyskać szczegółowe informacje na temat usługi Key Vault, zobacz Use authentication credential secrets in Azure Machine Edukacja training jobs (Używanie wpisów tajnych poświadczeń uwierzytelniania w usłudze Azure Machine Edukacja zadania trenowania).

Scenariusze w całym cyklu życia uczenia maszynowego

Istnieje kilka scenariuszy, które są wspólne w całym cyklu życia uczenia maszynowego przy użyciu usługi Azure Machine Edukacja. Przyjrzymy się kilku i przedstawimy ogólne zalecenia dotyczące uaktualniania do wersji 2.

Konfiguracja platformy Azure

Platforma Azure zaleca tworzenie zasobów za pomocą szablonów usługi Azure Resource Manager (często za pośrednictwem aplikacji Bicep). To samo jest dobrym podejściem do tworzenia zasobów usługi Azure Machine Edukacja.

Jeśli Twój zespół korzysta tylko z usługi Azure Machine Edukacja, możesz rozważyć aprowizowanie obszaru roboczego i innych zasobów za pośrednictwem plików YAML i interfejsu wiersza polecenia.

Modele prototypowania

Zalecamy tworzenie prototypów modeli w wersji 2. Możesz rozważyć użycie interfejsu wiersza polecenia w celu interaktywnego użycia usługi Azure Machine Edukacja, podczas gdy kod trenowania modelu to Python lub inny język programowania. Alternatywnie możesz wdrożyć podejście pełnego stosu w języku Python wyłącznie przy użyciu zestawu SDK usługi Azure Machine Edukacja lub mieszanego podejścia z zestawem AZURE Machine Edukacja python SDK i plikami YAML.

Trenowanie modelu produkcyjnego

Zalecamy trenowanie modelu produkcyjnego w wersji 2. Zadania konsolidują terminologię i zapewniają zestaw spójności, który umożliwia łatwiejsze przechodzenie między typami (na przykład command do sweep) oraz przyjazny dla metodyki GitOps proces serializacji zadań w plikach YAML.

W wersji 2 należy oddzielić kod uczenia maszynowego od kodu płaszczyzny sterowania. Ta separacja umożliwia łatwiejsze iterację i umożliwia łatwiejsze przejście między środowiskiem lokalnym a chmurą. Zalecamy również używanie biblioteki MLflow do śledzenia i rejestrowania modeli. Aby uzyskać szczegółowe informacje, zobacz artykuł dotyczący koncepcji platformy MLflow.

Wdrażanie modelu produkcyjnego

Zalecamy wdrożenie modelu produkcyjnego w wersji 2. Zarządzane punkty końcowe stanowią abstrakcję obciążeń it i zapewniają wydajne rozwiązanie do wdrażania i oceniania modeli, zarówno w przypadku scenariuszy online (niemal w czasie rzeczywistym), jak i wsadowych (masowo równoległych).

Wdrożenia platformy Kubernetes są obsługiwane w wersji 2 za pośrednictwem usługi AKS lub Usługi Azure Arc, umożliwiając wdrażanie chmury platformy Azure i wdrożeń lokalnych zarządzanych przez organizację.

Operacje uczenia maszynowego (MLOps)

Przepływ pracy metodyki MLOps zwykle obejmuje ciągłą integrację/ciągłe wdrażanie za pośrednictwem narzędzia zewnętrznego. Zazwyczaj interfejs wiersza polecenia jest używany w ciągłej integracji/ciągłego wdrażania, ale alternatywnie można wywołać język Python lub bezpośrednio użyć interfejsu REST.

Akcelerator rozwiązań dla metodyki MLOps z wersją 2 jest opracowywany w wersji https://github.com/Azure/mlops-v2 2 i może być używany jako odwołanie lub przyjęty do konfigurowania i automatyzacji cyklu życia uczenia maszynowego.

Uwaga dotycząca metodyki GitOps w wersji 2

Kluczowym paradygmatem w wersji 2 jest serializowanie jednostek uczenia maszynowego jako plików YAML na potrzeby kontroli źródła za pomocą gitmetody , co umożliwia lepsze podejścia GitOps niż w wersji 1. Na przykład można wymusić zasady, za pomocą których tylko jednostka usługi używana w potokach ciągłej integracji/ciągłego wdrażania może tworzyć/aktualizować/usuwać niektóre lub wszystkie jednostki, zapewniając przejście zmian przez proces zarządzany, taki jak żądania ściągnięcia z wymaganymi recenzentami. Ponieważ pliki w kontroli źródła to YAML, łatwo je różnicować i śledzić zmiany w czasie. Ty i Twój zespół mogą rozważyć przejście do tego paradygmatu podczas uaktualniania do wersji 2.

Możesz uzyskać reprezentację YAML dowolnej jednostki za pomocą interfejsu wiersza polecenia za pomocą polecenia az ml <entity> show --output yaml. Należy pamiętać, że te dane wyjściowe będą miały właściwości generowane przez system, które można zignorować lub usunąć.

Czy uaktualniję istniejący kod w wersji 1 do wersji 2

Istniejące zasoby w wersji 1 można użyć ponownie w przepływach pracy w wersji 2. Na przykład model utworzony w wersji 1 może służyć do wykonywania wnioskowania zarządzanego w wersji 2.

Opcjonalnie, jeśli chcesz uaktualnić określone części istniejącego kodu w wersji 1 do wersji 2, zapoznaj się z linkami porównania podanymi w tym dokumencie.

Czy można używać razem wersji 1 i 2?

Wersja 1 i wersja 2 mogą współistnieć w obszarze roboczym. Istniejące zasoby można użyć ponownie w przepływach pracy w wersji 2. Na przykład model utworzony w wersji 1 może służyć do wykonywania wnioskowania zarządzanego w wersji 2. Zasoby, takie jak obszar roboczy, obliczenia i magazyn danych, działają w różnych regionach w wersji 1 i 2 z wyjątkami. Użytkownik może wywołać zestaw SDK języka Python w wersji 1, aby zmienić opis obszaru roboczego, a następnie ponownie zmienić go za pomocą rozszerzenia interfejsu wiersza polecenia w wersji 2. Zadania (eksperymenty/przebiegi/potoki w wersji 1) można przesłać do tego samego obszaru roboczego z zestawu SDK języka Python w wersji 1 lub 2. Obszar roboczy może mieć punkty końcowe wdrożenia modelu w wersji 1 i 2.

Używanie razem kodu w wersji 1 i 2

Nie zalecamy używania zestawów SDK w wersji 1 i 2 razem w tym samym kodzie. Technicznie można używać wersji 1 i 2 w tym samym kodzie, ponieważ używają różnych przestrzeni nazw platformy Azure. Istnieje jednak wiele klas o tej samej nazwie w tych przestrzeniach nazw (takich jak Workspace, Model), które mogą powodować nieporozumienie i utrudnić czytelność kodu oraz możliwość debugowania.

Ważne

Jeśli obszar roboczy używa prywatnego punktu końcowego, zostanie v1_legacy_mode automatycznie włączona flaga uniemożliwiająca użycie interfejsów API w wersji 2. Aby uzyskać szczegółowe informacje, zobacz , jak skonfigurować izolację sieci przy użyciu wersji 2 .

Następne kroki