Udostępnij za pośrednictwem


Jak działa usługa Azure Machine Learning: architektura i pojęcia (wersja 1)

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure ml w wersji 1zestawu SDK języka Python azureml v1

Ten artykuł dotyczy pierwszej wersji (wersja 1) interfejsu wiersza polecenia i zestawu SDK usługi Azure Machine Learning. Aby uzyskać informacje o wersji 2, zobacz Jak działa usługa Azure Machine Learning (wersja 2).

Dowiedz się więcej o architekturze i pojęciach dotyczących usługi Azure Machine Learning. Ten artykuł zawiera ogólne informacje o składnikach i sposobie ich współpracy w celu ułatwienia procesu tworzenia, wdrażania i utrzymywania modeli uczenia maszynowego.

Obszar roboczy

Obszar roboczy uczenia maszynowego jest zasobem najwyższego poziomu dla usługi Azure Machine Learning.

Diagram: architektura usługi Azure Machine Learning obszaru roboczego i jego składników

Obszar roboczy to scentralizowane miejsce do:

Obszar roboczy zawiera inne zasoby platformy Azure, które są używane przez obszar roboczy:

  • Azure Container Registry (ACR): rejestruje kontenery platformy Docker używane podczas trenowania i wdrażania modelu. Aby zminimalizować koszty, usługa ACR jest tworzona tylko podczas tworzenia obrazów wdrożenia.
  • Konto usługi Azure Storage: jest używane jako domyślny magazyn danych dla obszaru roboczego. Notesy Jupyter używane z wystąpieniami obliczeniowymi usługi Azure Machine Learning są również przechowywane w tym miejscu.
  • aplikacja systemu Azure Insights: przechowuje informacje monitorowania dotyczące modeli.
  • Azure Key Vault: przechowuje wpisy tajne używane przez docelowe obiekty obliczeniowe i inne poufne informacje potrzebne przez obszar roboczy.

Obszar roboczy można udostępniać innym osobom.

Oblicza

Docelowy obiekt obliczeniowy to dowolna maszyna lub zestaw maszyn używanych do uruchamiania skryptu trenowania lub hostowania wdrożenia usługi. Możesz użyć komputera lokalnego lub zdalnego zasobu obliczeniowego jako celu obliczeniowego. Dzięki docelowym obiektom obliczeniowym możesz rozpocząć trenowanie na komputerze lokalnym, a następnie skalować w poziomie do chmury bez konieczności zmieniania skryptu szkoleniowego.

Usługa Azure Machine Learning wprowadza dwie w pełni zarządzane maszyny wirtualne oparte na chmurze, które są skonfigurowane pod kątem zadań uczenia maszynowego:

  • Wystąpienie obliczeniowe: wystąpienie obliczeniowe to maszyna wirtualna zawierająca wiele narzędzi i środowisk zainstalowanych na potrzeby uczenia maszynowego. Podstawowym zastosowaniem wystąpienia obliczeniowego jest stacja robocza deweloperów. Możesz rozpocząć uruchamianie przykładowych notesów bez konieczności konfigurowania. Wystąpienie obliczeniowe może być również używane jako docelowy obiekt obliczeniowy do trenowania i wnioskowania zadań.

  • Klastry obliczeniowe: Klastry obliczeniowe to klaster maszyn wirtualnych z funkcjami skalowania z wieloma węzłami. Klastry obliczeniowe lepiej nadają się do celów obliczeniowych dla dużych zadań i produkcji. Klaster jest skalowany automatycznie w górę po przesłaniu zadania. Użyj jako docelowego środowiska obliczeniowego trenowania lub wdrożenia tworzenia i testowania.

Aby uzyskać więcej informacji na temat celów obliczeniowych trenowania, zobacz Trenowanie celów obliczeniowych. Aby uzyskać więcej informacji na temat celów obliczeniowych wdrożenia, zobacz Cele wdrożenia.

Zestawy danych i magazyny danych

Zestawy danych usługi Azure Machine Learning ułatwiają uzyskiwanie dostępu do danych i pracę z danymi. Tworząc zestaw danych, utworzysz odwołanie do lokalizacji źródła danych wraz z kopią jego metadanych. Ponieważ dane pozostają w istniejącej lokalizacji, nie ponosisz dodatkowych kosztów magazynowania i nie ryzykujesz integralności źródeł danych.

Aby uzyskać więcej informacji, zobacz Tworzenie i rejestrowanie zestawów danych usługi Azure Machine Learning. Aby uzyskać więcej przykładów przy użyciu zestawów danych, zobacz przykładowe notesy.

Zestawy danych używają magazynu danych do bezpiecznego nawiązywania połączenia z usługami usługi Azure Storage. Magazyny danych przechowują informacje o połączeniu bez narażania poświadczeń uwierzytelniania i integralności oryginalnego źródła danych na ryzyko. Przechowują informacje o połączeniu, takie jak identyfikator subskrypcji i autoryzacja tokenu w usłudze Key Vault skojarzonej z obszarem roboczym, dzięki czemu można bezpiecznie uzyskać dostęp do magazynu bez konieczności kodowania ich w skrypcie.

Środowiska

Środowiska obszarów roboczych>

Środowisko to hermetyzacja środowiska, w którym odbywa się trenowanie lub ocenianie modelu uczenia maszynowego. Środowisko określa pakiety języka Python, zmienne środowiskowe i ustawienia oprogramowania wokół skryptów trenowania i oceniania.

Przykłady kodu można znaleźć w sekcji "Zarządzanie środowiskami" w temacie How to use environments (Jak używać środowisk).

Eksperymenty

Eksperymenty obszaru roboczego>

Eksperyment to grupowanie wielu przebiegów z określonego skryptu. Zawsze należy do obszaru roboczego. Podczas przesyłania przebiegu należy podać nazwę eksperymentu. Informacje dotyczące przebiegu są przechowywane w ramach tego eksperymentu. Jeśli nazwa nie istnieje podczas przesyłania eksperymentu, zostanie automatycznie utworzony nowy eksperyment.

Aby zapoznać się z przykładem użycia eksperymentu, zobacz Samouczek: trenowanie pierwszego modelu.

Przebiegi

Uruchamianie eksperymentów>obszaru roboczego>

Uruchomienie to pojedyncze wykonanie skryptu szkoleniowego. Eksperyment zwykle zawiera wiele przebiegów.

Usługa Azure Machine Learning rejestruje wszystkie uruchomienia i przechowuje następujące informacje w eksperymencie:

  • Metadane dotyczące przebiegu (znacznik czasu, czas trwania itd.)
  • Metryki rejestrowane przez skrypt
  • Pliki wyjściowe, które są automatycznie generowane przez eksperyment lub jawnie przekazane przez Użytkownika
  • Migawka katalogu zawierającego skrypty przed uruchomieniem

Uruchomienie jest wykonywane podczas przesyłania skryptu w celu wytrenowania modelu. Uruchomienie może mieć zero lub więcej przebiegów podrzędnych. Na przykład uruchomienie najwyższego poziomu może mieć dwa uruchomienia podrzędne, z których każdy może mieć własne uruchomienie podrzędne.

Uruchamianie konfiguracji

Uruchamianie konfiguracji przebiegów>eksperymentów>obszaru roboczego>

Konfiguracja przebiegu definiuje sposób uruchamiania skryptu w określonym obiekcie docelowym obliczeniowym. Konfiguracja służy do określania skryptu, docelowego obiektu obliczeniowego i środowiska usługi Azure Machine Learning do uruchamiania, wszelkich konfiguracji specyficznych dla zadania rozproszonego i niektórych dodatkowych właściwości. Aby uzyskać więcej informacji na temat pełnego zestawu konfigurowalnych opcji dla przebiegów, zobacz ScriptRunConfig.

Konfigurację przebiegu można utrwalić w pliku w katalogu zawierającym skrypt szkoleniowy. Można go też utworzyć jako obiekt w pamięci i użyć do przesłania przebiegu.

Aby na przykład uruchomić konfiguracje, zobacz Konfigurowanie przebiegu trenowania.

Migawki

Uruchamianie migawki eksperymentów>>obszaru roboczego>

Po przesłaniu przebiegu usługa Azure Machine Learning kompresuje katalog zawierający skrypt jako plik zip i wysyła go do docelowego obiektu obliczeniowego. Plik zip jest następnie wyodrębniany, a skrypt jest tam uruchamiany. Usługa Azure Machine Learning przechowuje również plik zip jako migawkę w ramach rekordu przebiegu. Każda osoba mająca dostęp do obszaru roboczego może przeglądać rekord przebiegu i pobierać migawkę.

Rejestrowanie

Usługa Azure Machine Learning automatycznie rejestruje standardowe metryki uruchamiania. Można jednak również użyć zestawu SDK języka Python do rejestrowania dowolnych metryk.

Istnieje wiele sposobów wyświetlania dzienników: monitorowanie stanu uruchomienia w czasie rzeczywistym lub wyświetlanie wyników po zakończeniu. Aby uzyskać więcej informacji, zobacz Monitorowanie i wyświetlanie dzienników uruchamiania uczenia maszynowego.

Uwaga

Aby zapobiec dołączaniu niepotrzebnych plików do migawki, utwórz plik ignoruj (.gitignore lub .amlignore) w katalogu. Dodaj do tego pliku katalogi i pliki do wykluczenia. Aby uzyskać więcej informacji na temat składni używanej w tym pliku, zobacz składnię i wzorce dla programu .gitignore. Plik .amlignore używa tej samej składni. Jeśli oba pliki istnieją, .amlignore zostanie użyty plik, a .gitignore plik jest nieużywany.

Śledzenie i integracja z usługą Git

Po uruchomieniu przebiegu trenowania, w którym katalog źródłowy jest lokalnym repozytorium Git, informacje o repozytorium są przechowywane w historii uruchamiania. Działa to z przebiegami przesłanymi przy użyciu konfiguracji przebiegu skryptu lub potoku uczenia maszynowego. Działa również w przypadku przebiegów przesłanych z zestawu SDK lub interfejsu wiersza polecenia usługi Machine Learning.

Aby uzyskać więcej informacji, zobacz Integracja z usługą Git dla usługi Azure Machine Learning.

Przepływ pracy trenowania

Po uruchomieniu eksperymentu w celu wytrenowania modelu wykonywane są następujące kroki. Przedstawiono je na poniższym diagramie przepływu pracy trenowania:

  • Usługa Azure Machine Learning jest wywoływana przy użyciu identyfikatora migawki dla migawki kodu zapisanej w poprzedniej sekcji.

  • Usługa Azure Machine Learning tworzy identyfikator przebiegu (opcjonalnie) i token usługi Machine Learning, który jest później używany przez obiekty docelowe obliczeniowe, takie jak obliczenia/maszyny wirtualne usługi Machine Learning do komunikowania się z usługą Machine Learning.

  • Do uruchamiania zadań szkoleniowych można wybrać obiekt docelowy zarządzanych zasobów obliczeniowych (na przykład obliczenia usługi Machine Learning) lub niezarządzany obiekt obliczeniowy (na przykład maszyny wirtualne). Poniżej przedstawiono przepływy danych dla obu scenariuszy:

    • Maszyny wirtualne/usługa HDInsight dostępne przez poświadczenia SSH w magazynie kluczy w subskrypcji firmy Microsoft. Usługa Azure Machine Learning uruchamia kod zarządzania na docelowym obiekcie obliczeniowym, który:
    1. Przygotowuje środowisko. (Platforma Docker jest opcją dla maszyn wirtualnych i komputerów lokalnych. Aby dowiedzieć się, jak działają eksperymenty na kontenerach platformy Docker, zapoznaj się z poniższymi krokami dla usługi Machine Learning Compute).
    2. Pobiera kod.
    3. Konfiguruje zmienne środowiskowe i konfiguracje.
    4. Uruchamia skrypty użytkownika (migawka kodu wymieniona w poprzedniej sekcji).
    • Usługa Machine Learning Compute uzyskuje dostęp za pośrednictwem tożsamości zarządzanej przez obszar roboczy. Ponieważ usługa Machine Learning Compute jest zarządzanym obiektem docelowym obliczeniowym (czyli zarządzanym przez firmę Microsoft) jest uruchamiana w ramach subskrypcji firmy Microsoft.
    1. Zdalna konstrukcja platformy Docker jest uruchamiana w razie potrzeby.
    2. Kod zarządzania jest zapisywany w udziale usługi Azure Files użytkownika.
    3. Kontener jest uruchamiany przy użyciu początkowego polecenia. Oznacza to, że kod zarządzania zgodnie z opisem w poprzednim kroku.
  • Po zakończeniu przebiegu można wykonywać zapytania dotyczące przebiegów i metryk. Na poniższym diagramie przepływu ten krok występuje, gdy docelowy obiekt obliczeniowy trenowania zapisuje metryki przebiegu z powrotem do usługi Azure Machine Learning z magazynu w bazie danych usługi Azure Cosmos DB. Klienci mogą wywoływać usługę Azure Machine Learning. Usługa Machine Learning z kolei pobierze metryki z bazy danych usługi Azure Cosmos DB i zwróci je z powrotem do klienta.

Przepływ pracy trenowania

Modele

W najprostszym przypadku model jest fragmentem kodu, który pobiera dane wejściowe i generuje dane wyjściowe. Tworzenie modelu uczenia maszynowego polega na wybraniu algorytmu, udostępnieniu go danych i dostrajaniu hiperparametrów. Trenowanie to proces iteracyjny, który tworzy wytrenowany model, który hermetyzuje to, czego nauczył się model podczas procesu trenowania.

Możesz skorzystać z modelu, który został wytrenowany poza usługą Azure Machine Learning. Możesz też wytrenować model, przesyłając przebieg eksperymentu do docelowego obiektu obliczeniowego w usłudze Azure Machine Learning. Po utworzeniu modelu należy zarejestrować model w obszarze roboczym.

Usługa Azure Machine Learning jest niezależna od platformy. Podczas tworzenia modelu można użyć dowolnej popularnej platformy uczenia maszynowego, takiej jak Scikit-learn, XGBoost, PyTorch, TensorFlow i Chainer.

Aby zapoznać się z przykładem trenowania modelu przy użyciu biblioteki Scikit-learn, zobacz Samouczek: trenowanie modelu klasyfikacji obrazów przy użyciu usługi Azure Machine Learning.

Rejestr modeli

Modele obszarów roboczych>

Rejestr modeli umożliwia śledzenie wszystkich modeli w obszarze roboczym usługi Azure Machine Learning.

Modele są identyfikowane według nazwy i wersji. Za każdym razem, gdy rejestrujesz model o takiej samej nazwie jak istniejący, rejestr zakłada, że jest to nowa wersja. Wersja jest zwiększana, a nowy model jest rejestrowany pod tą samą nazwą.

Podczas rejestrowania modelu można podać dodatkowe tagi metadanych, a następnie użyć tagów podczas wyszukiwania modeli.

Napiwek

Zarejestrowany model jest kontenerem logicznym dla co najmniej jednego pliku tworzącego model. Jeśli na przykład masz model, który jest przechowywany w wielu plikach, możesz zarejestrować go jako pojedynczy model w obszarze roboczym usługi Azure Machine Learning. Po rejestracji możesz pobrać lub wdrożyć zarejestrowany model i otrzymać wszystkie zarejestrowane pliki.

Nie można usunąć zarejestrowanego modelu, który jest używany przez aktywne wdrożenie.

Aby zapoznać się z przykładem rejestrowania modelu, zobacz Trenowanie modelu klasyfikacji obrazów za pomocą usługi Azure Machine Learning.

Wdrożenie

Wdrażasz zarejestrowany model jako punkt końcowy usługi. Potrzebne są następujące składniki:

  • Środowisko. To środowisko hermetyzuje zależności wymagane do uruchomienia modelu na potrzeby wnioskowania.
  • Kod oceniania. Ten skrypt akceptuje żądania, ocenia żądania przy użyciu modelu i zwraca wyniki.
  • Konfiguracja wnioskowania. Konfiguracja wnioskowania określa środowisko, skrypt wejścia i inne składniki potrzebne do uruchomienia modelu jako usługi.

Aby uzyskać więcej informacji na temat tych składników, zobacz Wdrażanie modeli za pomocą usługi Azure Machine Learning.

Punkty końcowe

Punkty końcowe obszaru roboczego>

Punkt końcowy to wystąpienie modelu w usłudze internetowej, która może być hostowana w chmurze.

Punkt końcowy usługi sieci Web

Podczas wdrażania modelu jako usługi internetowej punkt końcowy można wdrożyć w usłudze Azure Container Instances lub Azure Kubernetes Service. Usługa jest tworzona na podstawie modelu, skryptu i skojarzonych plików. Są one umieszczane w podstawowym obrazie kontenera, który zawiera środowisko wykonawcze dla modelu. Obraz ma punkt końcowy HTTP o zrównoważonym obciążeniu, który odbiera żądania oceniania wysyłane do usługi internetowej.

Możesz włączyć telemetrię usługi Application Insights lub model telemetrii, aby monitorować usługę internetową. Dane telemetryczne są dostępne tylko dla Ciebie. Są przechowywane w wystąpieniach usługi Application Insights i konta magazynu. Jeśli włączono automatyczne skalowanie, platforma Azure automatycznie skaluje wdrożenie.

Na poniższym diagramie przedstawiono przepływ pracy wnioskowania dla modelu wdrożonego jako punkt końcowy usługi internetowej:

Oto szczegóły:

  • Użytkownik rejestruje model przy użyciu klienta, takiego jak zestaw SDK usługi Azure Machine Learning.
  • Użytkownik tworzy obraz przy użyciu modelu, pliku oceny i innych zależności modelu.
  • Obraz platformy Docker jest tworzony i przechowywany w usłudze Azure Container Registry.
  • Usługa internetowa jest wdrażana w docelowym obiekcie obliczeniowym (Container Instances/AKS) przy użyciu obrazu utworzonego w poprzednim kroku.
  • Szczegóły żądania oceniania są przechowywane w usłudze Application Insights, która znajduje się w subskrypcji użytkownika.
  • Dane telemetryczne są również wypychane do subskrypcji platformy Microsoft Azure.

Przepływ pracy wnioskowania

Aby zapoznać się z przykładem wdrażania modelu jako usługi internetowej, zobacz Samouczek: trenowanie i wdrażanie modelu.

Punkty końcowe w czasie rzeczywistym

Podczas wdrażania wytrenowanego modelu w projektancie można wdrożyć model jako punkt końcowy w czasie rzeczywistym. Punkt końcowy w czasie rzeczywistym często odbiera pojedyncze żądanie za pośrednictwem punktu końcowego REST i zwraca przewidywanie w czasie rzeczywistym. Jest to w przeciwieństwie do przetwarzania wsadowego, które przetwarza wiele wartości jednocześnie i zapisuje wyniki po zakończeniu w magazynie danych.

Punkty końcowe potoku

Punkty końcowe potoku umożliwiają programowe wywoływanie potoków uczenia maszynowego za pośrednictwem punktu końcowego REST. Punkty końcowe potoku umożliwiają automatyzowanie przepływów pracy potoku.

Punkt końcowy potoku to kolekcja opublikowanych potoków. Ta organizacja logiczna umożliwia zarządzanie wieloma potokami i wywoływanie ich przy użyciu tego samego punktu końcowego. Każdy opublikowany potok w punkcie końcowym potoku jest wersjonowany. Możesz wybrać domyślny potok dla punktu końcowego lub określić wersję wywołania REST.

Automation

Interfejs wiersza polecenia usługi Azure Machine Learning

Interfejs wiersza polecenia usługi Azure Machine Learning w wersji 1 to rozszerzenie interfejsu wiersza polecenia platformy Azure, międzyplatformowego interfejsu wiersza polecenia dla platformy Azure. To rozszerzenie udostępnia polecenia automatyzujące działania uczenia maszynowego.

Potoki uczenia maszynowego

Potoki uczenia maszynowego służą do tworzenia przepływów pracy łączących fazy uczenia maszynowego i zarządzania nimi. Na przykład potok może obejmować przygotowywanie danych, trenowanie modelu, wdrażanie modelu oraz fazy wnioskowania/oceniania. Każda faza może obejmować wiele kroków, z których każda może działać nienadzorowane w różnych celach obliczeniowych.

Kroki potoku są wielokrotnego użytku i można je uruchomić bez ponownego uruchamiania poprzednich kroków, jeśli dane wyjściowe tych kroków nie uległy zmianie. Na przykład możesz ponownie trenować model bez ponownego uruchamiania kosztowych kroków przygotowywania danych, jeśli dane nie uległy zmianie. Potoki umożliwiają również analitykom danych współpracę podczas pracy nad oddzielnymi obszarami przepływu pracy uczenia maszynowego.

Monitorowanie i rejestrowanie

Usługa Azure Machine Learning oferuje następujące możliwości monitorowania i rejestrowania:

Interakcja z obszarem roboczym

Studio

Usługa Azure Machine Learning Studio udostępnia widok internetowy wszystkich artefaktów w obszarze roboczym. Możesz wyświetlić wyniki i szczegóły zestawów danych, eksperymentów, potoków, modeli i punktów końcowych. Możesz również zarządzać zasobami obliczeniowymi i magazynami danych w studio.

Studio to również miejsce, w którym uzyskujesz dostęp do interaktywnych narzędzi, które są częścią usługi Azure Machine Learning:

  • Projektant usługi Azure Machine Learning do wykonywania kroków przepływu pracy bez pisania kodu
  • Środowisko internetowe zautomatyzowanego uczenia maszynowego
  • Notesy usługi Azure Machine Learning służące do pisania i uruchamiania własnego kodu na zintegrowanych serwerach notesów Jupyter.
  • Projekty etykietowania danych do tworzenia i monitorowania projektów na potrzeby etykietowania obrazów lub tekstu oraz zarządzania nimi.

Narzędzia programistyczne

Ważne

Narzędzia oznaczone (wersja zapoznawcza) poniżej są obecnie dostępne w publicznej wersji zapoznawczej. Wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie jest zalecana w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.

Następne kroki

Aby rozpocząć pracę z usługą Azure Machine Learning, zobacz: