Udostępnij za pośrednictwem


Samouczek: rozpoczynanie pracy ze skryptem języka Python w usłudze Azure Machine Learning (zestaw SDK w wersji 1, część 1 z 3)

DOTYCZY: Zestaw SDK języka Python w wersji 1

W tym samouczku uruchomisz swój pierwszy skrypt języka Python w chmurze za pomocą usługi Azure Machine Learning. Ten samouczek jest częścią 1 dwuczęściowej serii samouczków.

Ten samouczek pozwala uniknąć złożoności trenowania modelu uczenia maszynowego. Uruchomisz skrypt języka Python "Hello World" w chmurze. Dowiesz się, jak skrypt sterujący jest używany do konfigurowania i tworzenia przebiegu w usłudze Azure Machine Learning.

Ten samouczek obejmuje następujące kroki:

  • Tworzenie i uruchamianie "Hello world!" Skrypt języka Python.
  • Utwórz skrypt sterujący języka Python, aby przesłać element "Hello world!" do usługi Azure Machine Learning.
  • Zapoznaj się z pojęciami dotyczącymi usługi Azure Machine Learning w skrywcie sterującym.
  • Prześlij i uruchom skrypt "Hello world!".
  • Wyświetlanie danych wyjściowych kodu w chmurze.

Wymagania wstępne

  • Ukończ tworzenie zasobów, które należy rozpocząć , aby utworzyć obszar roboczy i wystąpienie obliczeniowe do użycia w tej serii samouczków.
    • Utwórz klaster obliczeniowy oparty na chmurze. Nadaj mu nazwę "cpu-cluster", aby pasować do kodu w tym samouczku.

Tworzenie i uruchamianie skryptu języka Python

W tym samouczku użyto wystąpienia obliczeniowego jako komputera programistycznego. Najpierw utwórz kilka folderów i skryptu:

  1. Zaloguj się do usługi Azure Machine Learning Studio i wybierz swój obszar roboczy, jeśli zostanie wyświetlony monit.
  2. Po lewej stronie wybierz pozycję Notesy
  3. Na pasku narzędzi Pliki wybierz pozycję +, a następnie wybierz pozycję Utwórz nowy folder. Zrzut ekranu przedstawiający tworzenie nowego narzędzia folderu na pasku narzędzi.
  4. Nadaj folderowi nazwę get-started.
  5. Po prawej stronie nazwy folderu użyj ... , aby utworzyć inny folder w obszarze rozpoczynania pracy. Zrzut ekranu przedstawia menu tworzenia podfolderu.
  6. Nazwij nowy folder src. Użyj linku Edytuj lokalizację, jeśli lokalizacja pliku jest niepoprawna.
  7. Po prawej stronie folderu src użyj ... , aby utworzyć nowy plik w folderze src.
  8. Nadaj plikowi nazwę hello.py. Przełącz typ pliku na język Python (.py)*.

Skopiuj ten kod do pliku:

# src/hello.py
print("Hello world!")

Struktura folderów projektu będzie teraz wyglądać następująco:

Struktura folderów pokazuje hello.py w podfolderze src.

Testowanie skryptu

Możesz uruchomić kod lokalnie, co w tym przypadku oznacza wystąpienie obliczeniowe. Uruchamianie kodu lokalnie ma korzyść z interaktywnego debugowania kodu.

Jeśli wcześniej zatrzymano wystąpienie obliczeniowe, uruchom je teraz za pomocą narzędzia Rozpocznij obliczenia po prawej stronie listy rozwijanej obliczeniowej. Poczekaj około minuty, aż stan zmieni się na Uruchomiono.

Zrzut ekranu przedstawiający uruchamianie wystąpienia obliczeniowego, jeśli zostało zatrzymane

Wybierz pozycję Zapisz i uruchom skrypt w terminalu , aby uruchomić skrypt.

Zrzut ekranu przedstawiający zapisywanie i uruchamianie skryptu w narzędziu terminalu na pasku narzędzi

Dane wyjściowe skryptu są widoczne w oknie terminalu, który zostanie otwarty. Zamknij kartę i wybierz pozycję Zakończ , aby zamknąć sesję.

Tworzenie skryptu sterującego

Skrypt sterujący umożliwia uruchamianie skryptu hello.py na różnych zasobach obliczeniowych. Skrypt sterujący służy do kontrolowania sposobu i miejsca uruchamiania kodu uczenia maszynowego.

Wybierz folder ... na końcu folderu get-started, aby utworzyć nowy plik. Utwórz plik w języku Python o nazwie run-hello.py i skopiuj/wklej następujący kod do tego pliku:

# get-started/run-hello.py
from azureml.core import Workspace, Experiment, Environment, ScriptRunConfig

ws = Workspace.from_config()
experiment = Experiment(workspace=ws, name='day1-experiment-hello')

config = ScriptRunConfig(source_directory='./src', script='hello.py', compute_target='cpu-cluster')

run = experiment.submit(config)
aml_url = run.get_portal_url()
print(aml_url)

Napiwek

Jeśli podczas tworzenia klastra obliczeniowego użyto innej nazwy, pamiętaj o dostosowaniu nazwy w kodzie compute_target='cpu-cluster' .

Zrozumienie kodu

Oto opis działania skryptu sterującego:

ws = Workspace.from_config()

Obszar roboczy łączy się z obszarem roboczym usługi Azure Machine Learning, aby umożliwić komunikację z zasobami usługi Azure Machine Learning.

experiment = Experiment( ... )

Eksperyment zapewnia prosty sposób organizowania wielu zadań pod jedną nazwą. Później możesz zobaczyć, jak eksperymenty ułatwiają porównywanie metryk między dziesiątkami zadań.

config = ScriptRunConfig( ... )

ScriptRunConfig opakowuje hello.py kod i przekazuje go do obszaru roboczego. Jak sugeruje nazwa, możesz użyć tej klasy, aby skonfigurować sposób uruchamiania skryptu w usłudze Azure Machine Learning. Określa również, w jakim celu obliczeniowym jest uruchamiany skrypt. W tym kodzie obiektem docelowym jest klaster obliczeniowy utworzony w samouczku konfiguracji.

run = experiment.submit(config)

Przesyła skrypt. To przesłanie jest nazywane uruchomieniem. W wersji 2 zmieniono jej nazwę na zadanie. Uruchomienie/zadanie hermetyzuje pojedyncze wykonanie kodu. Użyj zadania, aby monitorować postęp skryptu, przechwytywać dane wyjściowe, analizować wyniki, wizualizować metryki i nie tylko.

aml_url = run.get_portal_url()

Obiekt run zapewnia dojście do wykonania kodu. Monitoruj postęp programu Azure Machine Learning Studio przy użyciu adresu URL, który jest wyświetlany ze skryptu języka Python.

Przesyłanie i uruchamianie kodu w chmurze

  1. Wybierz pozycję Zapisz i uruchom skrypt w terminalu, aby uruchomić skrypt sterujący, który z kolei jest uruchamiany hello.py w klastrze obliczeniowym utworzonym w samouczku konfiguracji.

  2. W terminalu może zostać wyświetlony monit o zalogowanie się w celu uwierzytelnienia. Skopiuj kod i postępuj zgodnie z linkiem, aby ukończyć ten krok.

  3. Po uwierzytelnieniu w terminalu zostanie wyświetlony link. Wybierz link, aby wyświetlić zadanie.

Monitorowanie kodu w chmurze w programie Studio

Dane wyjściowe skryptu zawierają link do programu Studio, który wygląda mniej więcej tak: https://ml.azure.com/experiments/hello-world/runs/<run-id>?wsid=/subscriptions/<subscription-id>/resourcegroups/<resource-group>/workspaces/<workspace-name>.

Postępuj zgodnie z linkiem. Na początku zostanie wyświetlony stan Kolejkowane lub Przygotowywanie. Wykonanie pierwszego uruchomienia trwa od 5 do 10 minut. Dzieje się tak, ponieważ występują następujące kwestie:

  • Obraz platformy Docker jest wbudowany w chmurę
  • Rozmiar klastra obliczeniowego jest zmieniany z zakresu od 0 do 1 węzła
  • Obraz platformy Docker jest pobierany do obliczeń.

Kolejne zadania są szybsze (ok. 15 sekund), ponieważ obraz platformy Docker jest buforowany na obliczeniach. Możesz to przetestować, przesyłając ponownie poniższy kod po zakończeniu pierwszego zadania.

Poczekaj około 10 minut. Zostanie wyświetlony komunikat informujący o zakończeniu zadania. Następnie użyj polecenia Odśwież , aby wyświetlić zmianę stanu na Ukończono. Po zakończeniu zadania przejdź do karty Dane wyjściowe i dzienniki. W folderze user_logs znajduje się std_log.txt plik. Dane wyjściowe skryptu są w tym pliku.

Foldery azureml-logs i system-logs zawierają pliki, które mogą być przydatne podczas debugowania zadań zdalnych w chmurze.

Następny krok

W tym samouczku wykonaliśmy prosty skrypt "Hello world!" i uruchomiliśmy go na platformie Azure. Pokazano, jak nawiązać połączenie z obszarem roboczym usługi Azure Machine Learning, utworzyć eksperyment i przesłać hello.py kod do chmury.

W następnym samouczku utworzysz te informacje, uruchamiając coś bardziej interesującego niż print("Hello world!").

Tutorial: Train a model (Samouczek: uczenie modelu)

Uwaga

Jeśli chcesz ukończyć serię samouczków tutaj i nie przejść do następnego kroku, pamiętaj, aby wyczyścić zasoby.