Samouczek: trenowanie i wdrażanie modelu usługi Azure Machine Learning
Dotyczy: IoT Edge 1.1
Ważne
Data zakończenia wsparcia usługi IoT Edge 1.1 wynosiła 13 grudnia 2022 r. Zapoznaj się z cyklem życia produktów firmy Microsoft, aby uzyskać informacje na temat sposobu obsługi tego produktu lub interfejsu API albo tej usługi lub technologii. Aby uzyskać więcej informacji na temat aktualizowania do najnowszej wersji usługi IoT Edge, zobacz Aktualizowanie usługi IoT Edge.
W tym artykule wykonamy następujące zadania:
- Trenowanie modelu uczenia maszynowego przy użyciu usługi Azure Machine Learning Studio.
- Spakuj wytrenowany model jako obraz kontenera.
- Wdróż obraz kontenera jako moduł usługi Azure IoT Edge.
Machine Learning Studio to podstawowy blok służący do eksperymentowania, trenowania i wdrażania modeli uczenia maszynowego.
Kroki opisane w tym artykule mogą być zwykle wykonywane przez analityków danych.
W tej sekcji samouczka dowiesz się, jak wykonywać następujące działania:
- Tworzenie notesów Jupyter w obszarze roboczym usługi Azure Machine Learning w celu wytrenowania modelu uczenia maszynowego.
- Konteneryzowanie wytrenowanego modelu uczenia maszynowego.
- Utwórz moduł usługi IoT Edge na podstawie konteneryzowanego modelu uczenia maszynowego.
Wymagania wstępne
Ten artykuł jest częścią serii samouczka dotyczącego korzystania z uczenia maszynowego w usłudze IoT Edge. Każdy artykuł z serii opiera się na pracy w poprzednim artykule. Jeśli dotrzesz bezpośrednio do tego artykułu, zapoznaj się z pierwszym artykułem z serii.
Konfigurowanie usługi Azure Machine Learning
Używamy usługi Machine Learning Studio do hostowania dwóch notesów Jupyter i plików pomocniczych. W tym miejscu utworzymy i skonfigurujemy projekt usługi Machine Learning. Jeśli nie używasz programu Jupyter lub Machine Learning Studio, poniżej przedstawiono dwa dokumenty wprowadzające:
- Notes Jupyter: praca z notesami Jupyter w programie Visual Studio Code
- Azure Machine Learning: rozpoczynanie pracy z usługą Azure Machine Learning w notesach Jupyter
Uwaga
Po skonfigurowaniu usługi dostęp do usługi można uzyskać z dowolnego komputera. Podczas instalacji należy użyć maszyny wirtualnej dewelopera, która zawiera wszystkie potrzebne pliki.
Instalowanie rozszerzenia programu Visual Studio Code w usłudze Azure Machine Learning
Program Visual Studio Code na maszynie wirtualnej dewelopera powinien mieć zainstalowane to rozszerzenie. Jeśli korzystasz z innego wystąpienia, zainstaluj ponownie rozszerzenie zgodnie z opisem w temacie Konfigurowanie rozszerzenia programu Visual Studio Code.
Tworzenie konta usługi Azure Machine Learning
Aby aprowizować zasoby i uruchamiać obciążenia na platformie Azure, zaloguj się przy użyciu poświadczeń konta platformy Azure.
W programie Visual Studio Code otwórz paletę poleceń, wybierając pozycję Wyświetl>paletę poleceń na pasku menu.
Wprowadź polecenie
Azure: Sign In
w palecie poleceń, aby rozpocząć proces logowania. Postępuj zgodnie z instrukcjami, aby ukończyć logowanie.Utwórz wystąpienie obliczeniowe usługi Machine Learning, aby uruchomić obciążenie. Na palecie poleceń wprowadź polecenie
Azure ML: Create Compute
.Wybierz subskrypcję platformy Azure.
Wybierz pozycję + Utwórz nowy obszar roboczy usługi Azure ML i wprowadź nazwę turbofandemo.
Wybierz grupę zasobów używaną na potrzeby tego pokazu.
Postęp tworzenia obszaru roboczego powinien zostać wyświetlony w prawym dolnym rogu okna programu Visual Studio Code: Tworzenie obszaru roboczego: turobofandemo. Ten krok może potrwać minutę lub dwie.
Poczekaj na pomyślne utworzenie obszaru roboczego. Powinno się powiedzieć, że utworzono turbofandemo obszaru roboczego usługi Azure ML.
Przekazywanie plików notesu Jupyter Notebook
Przekażemy przykładowe pliki notesu do nowego obszaru roboczego usługi Machine Learning.
Przejdź do ml.azure.com i zaloguj się.
Wybierz katalog firmy Microsoft, subskrypcję platformy Azure i nowo utworzony obszar roboczy usługi Machine Learning.
Po zalogowaniu się do obszaru roboczego usługi Machine Learning przejdź do sekcji Notesy przy użyciu menu po lewej stronie.
Wybierz kartę Moje pliki .
Wybierz pozycję Przekaż (ikona strzałki w górę).
Przejdź do folderu C:\source\IoTEdgeAndMlSample\AzureNotebooks. Wybierz wszystkie pliki z listy, a następnie wybierz pozycję Otwórz.
Zaznacz pole wyboru Ufam zawartości tych plików .
Wybierz pozycję Przekaż , aby rozpocząć przekazywanie. Następnie wybierz pozycję Gotowe po zakończeniu procesu.
Pliki notesu Jupyter Notebook
Przejrzyjmy pliki przekazane do obszaru roboczego usługi Machine Learning. Działania w tej części samouczka obejmują dwa pliki notesu, które używają kilku plików pomocniczych.
01-turbofan_regression.ipynb: ten notes używa obszaru roboczego usługi Machine Learning do utworzenia i uruchomienia eksperymentu uczenia maszynowego. Ogólnie rzecz biorąc, notes wykonuje następujące czynności:
- Pobiera dane z konta usługi Azure Storage wygenerowanego przez urządzenie.
- Eksploruje i przygotowuje dane, a następnie używa danych do trenowania modelu klasyfikatora.
- Ocenia model z eksperymentu przy użyciu zestawu danych testowych (Test_FD003.txt).
- Publikuje najlepszy model klasyfikatora w obszarze roboczym usługi Machine Learning.
02-turbofan_deploy_model.ipynb: ten notes pobiera model utworzony w poprzednim notesie i używa go do utworzenia obrazu kontenera gotowego do wdrożenia na urządzeniu usługi IoT Edge. Notes wykonuje następujące kroki:
- Tworzy skrypt oceniania dla modelu.
- Tworzy obraz kontenera przy użyciu modelu klasyfikatora, który został zapisany w obszarze roboczym usługi Machine Learning.
- Wdraża obraz jako usługę internetową w usłudze Azure Container Instances.
- Używa usługi internetowej do weryfikowania modelu i obrazu zgodnie z oczekiwaniami. Zweryfikowany obraz zostanie wdrożony na urządzeniu usługi IoT Edge w części Tworzenie i wdrażanie niestandardowych modułów usługi IoT Edge w tym samouczku.
Test_FD003.txt: ten plik zawiera dane, których będziemy używać jako zestawu testów podczas sprawdzania poprawności naszego wytrenowanego klasyfikatora. Wybraliśmy użycie danych testowych, zgodnie z pierwotnym konkursem, jako zestaw testowy dla jego prostoty.
RUL_FD003.txt: ten plik zawiera pozostały okres eksploatacji (RUL) dla ostatniego cyklu każdego urządzenia w pliku Test_FD003.txt. Zobacz readme.txt i pliki propagacji szkód Modeling.pdf w folderze C:\source\IoTEdgeAndMlSample\data\Turbofan, aby uzyskać szczegółowe wyjaśnienie danych.
Utils.py: ten plik zawiera zestaw funkcji narzędzi języka Python do pracy z danymi. Pierwszy notes zawiera szczegółowe wyjaśnienie funkcji.
README.md: w tym pliku readme opisano użycie notesów.
Uruchamianie notesów Jupyter
Po utworzeniu obszaru roboczego możesz uruchomić notesy.
Na stronie Moje pliki wybierz pozycję 01-turbofan_regression.ipynb.
Jeśli notes jest wyświetlany jako Niezauwierzony, wybierz widżet Nie zaufane w prawym górnym rogu notesu. Po wyświetleniu okna dialogowego wybierz pozycję Ufaj.
Aby uzyskać najlepsze wyniki, przeczytaj dokumentację dla każdej komórki i uruchom ją indywidualnie. Wybierz pozycję Uruchom na pasku narzędzi. Później okaże się, że jest to celowe uruchamianie wielu komórek. Możesz zignorować ostrzeżenia dotyczące uaktualniania i wycofywania.
Gdy komórka jest uruchomiona, wyświetla gwiazdkę między nawiasami kwadratowymi ([*]). Po zakończeniu operacji komórki gwiazdka jest zastępowana liczbą, a odpowiednie dane wyjściowe mogą pojawić się. Komórki w notesie są kompilować sekwencyjnie i tylko jedna komórka może być uruchamiana jednocześnie.
Możesz również użyć opcji uruchamiania z menu Komórka . Naciśnij Ctrl+Enter , aby uruchomić komórkę, a następnie wybierz Shift+Enter , aby uruchomić komórkę i przejść do następnej komórki.
Napiwek
W przypadku spójnych operacji na komórkach unikaj uruchamiania tego samego notesu z wielu kart w przeglądarce.
W komórce, która jest zgodna z instrukcjami Ustawianie właściwości globalnych, wprowadź wartości subskrypcji, ustawień i zasobów platformy Azure. Następnie uruchom komórkę.
W komórce poprzedniej niż Szczegóły obszaru roboczego po jej uruchomieniu wyszukaj link, który nakazuje zalogowanie się w celu uwierzytelnienia.
Otwórz link i wprowadź określony kod. Ta procedura logowania uwierzytelnia notes Jupyter w celu uzyskania dostępu do zasobów platformy Azure przy użyciu międzyplatformowego interfejsu wiersza polecenia platformy Microsoft Azure.
W komórce, która poprzedza eksploruj wyniki, skopiuj wartość z identyfikatora przebiegu i wklej ją jako identyfikator przebiegu w komórce, która następuje po ponownym utworzeniu przebiegu.
Uruchom pozostałe komórki w notesie.
Zapisz notes i wróć do strony projektu.
Otwórz plik 02-turbofan_deploy_model.ipynb i uruchom każdą komórkę. Musisz zalogować się, aby uwierzytelnić się w komórce, która jest zgodna z instrukcjami Konfigurowanie obszaru roboczego.
Zapisz notes i wróć do strony projektu.
Weryfikowanie powodzenia
Aby sprawdzić, czy notesy zostały ukończone pomyślnie, sprawdź, czy utworzono kilka elementów.
Na karcie Moje pliki na karcie Notesy usługi Machine Learning wybierz pozycję Odśwież.
Sprawdź, czy zostały utworzone następujące pliki.
Plik opis ./aml_config/.azureml/config.json Plik konfiguracji używany do tworzenia obszaru roboczego usługi Machine Learning. ./aml_config/model_config.json Plik konfiguracji, który musimy wdrożyć model w obszarze roboczym turbofanDemo Machine Learning na platformie Azure. myenv.yml Zawiera informacje o zależnościach wdrożonego modelu uczenia maszynowego. Sprawdź, czy zostały utworzone następujące zasoby platformy Azure. Niektóre nazwy zasobów są dołączane z losowymi znakami.
Zasób platformy Azure Nazwisko Obszar roboczy usługi Azure Machine Learning turborfanDemo Azure Container Registry turbofandemoxxxxxxxxxx Szczegółowe dane dotyczące aplikacji turbofaninsightxxxxxxxx Azure Key Vault turbofankeyvaultbxxxxxx Azure Storage turbofanstoragexxxxxxxxx
Debugowanie
Instrukcje języka Python można wstawić do notesu na potrzeby debugowania, takie jak print()
polecenie, aby wyświetlić wartości. Jeśli widzisz zmienne lub obiekty, które nie są zdefiniowane, uruchom komórki, w których są one najpierw zadeklarowane lub utworzone.
W razie potrzeby ponownego wykonania notesów może być konieczne usunięcie wcześniej utworzonych plików i zasobów platformy Azure.
Czyszczenie zasobów
Ten samouczek jest częścią zestawu, w którym każdy artykuł opiera się na pracy wykonanej w poprzednich. Poczekaj, aż ukończysz ostatni samouczek, zaczekaj na wyczyszczenie wszystkich zasobów.
Następne kroki
W tym artykule użyliśmy dwóch notesów Jupyter działających w usłudze Machine Learning Studio do używania danych z urządzeń turbofan do:
- Trenowanie klasyfikatora RUL.
- Zapisz klasyfikator jako model.
- Utwórz obraz kontenera.
- Wdróż i przetestuj obraz jako usługę internetową.
Przejdź do następnego artykułu, aby utworzyć urządzenie usługi IoT Edge.