Jak działa usługa Azure Machine Edukacja: zasoby i zasoby

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (current)Zestaw PYTHON SDK azure-ai-ml v2 (bieżąca)

Ten artykuł dotyczy drugiej wersji zestawu AZURE Machine Edukacja interfejsu wiersza polecenia i zestawu Python SDK (wersja 2). Aby uzyskać wersję 1 (wersja 1), zobacz How Azure Machine Edukacja works: Architecture and concepts (v1) (Jak działa usługa Azure Machine Edukacja: Architektura i pojęcia (wersja 1)

Usługa Azure Machine Edukacja zawiera kilka zasobów i zasobów umożliwiających wykonywanie zadań uczenia maszynowego. Te zasoby i zasoby są potrzebne do uruchomienia dowolnego zadania.

  • Zasoby: konfigurowanie lub zasoby infrastrukturalne potrzebne do uruchomienia przepływu pracy uczenia maszynowego. Zasoby obejmują:
  • Zasoby: utworzone przy użyciu poleceń usługi Azure Machine Edukacja lub w ramach przebiegu trenowania/oceniania. Zasoby są wersjonowane i można je zarejestrować w obszarze roboczym usługi Azure Machine Edukacja. Obejmują one:

Ten dokument zawiera krótkie omówienie tych zasobów i zasobów.

Wymagania wstępne

Aby użyć przykładów kodu zestawu SDK języka Python w tym artykule:

  1. Instalowanie zestawu Python SDK w wersji 2

  2. Utwórz połączenie z subskrypcją usługi Azure Machine Edukacja. Wszystkie przykłady bazują na .ml_client Aby utworzyć obszar roboczy, połączenie nie wymaga nazwy obszaru roboczego, ponieważ być może jeszcze go nie ma. Wszystkie inne przykłady w tym artykule wymagają, aby nazwa obszaru roboczego została uwzględniona w połączeniu.

    # import required libraries
    from azure.ai.ml import MLClient
    from azure.ai.ml.entities import Workspace
    from azure.identity import DefaultAzureCredential
    
    # Enter details of your subscription
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
    
    # get a handle to the subscription (use this if you haven't created a workspace yet)
    ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
    
    # all other examples in this article require the connection to include workspace name
    workspace_name = "<WORKSPACE_NAME>"
    ml_client = ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name)
    

Obszar roboczy

Obszar roboczy jest zasobem najwyższego poziomu dla usługi Azure Machine Learning, który udostępnia scentralizowane miejsce do pracy z wszystkimi tworzonymi podczas korzystania usługi Azure Machine Learning artefaktami. Obszar roboczy przechowuje historię wszystkich zadań, w tym dzienniki, metryki, dane wyjściowe i migawkę skryptów. Obszar roboczy przechowuje odwołania do zasobów, takich jak magazyny danych i zasoby obliczeniowe. Zawiera również wszystkie zasoby, takie jak modele, środowiska, składniki i zasób danych.

Tworzenie obszaru roboczego

Aby utworzyć obszar roboczy przy użyciu zestawu Python SDK w wersji 2, możesz użyć następującego kodu:

DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)

# specify the workspace details
ws = Workspace(
    name="my_workspace",
    location="eastus",
    display_name="My workspace",
    description="This example shows how to create a workspace",
    tags=dict(purpose="demo"),
)

ml_client.workspaces.begin_create(ws) # use MLClient to connect to the subscription and resource group and create workspace

Ten notes Jupyter zawiera więcej sposobów tworzenia obszaru roboczego usługi Azure Machine Edukacja przy użyciu zestawu SDK w wersji 2.

Compute

Obliczenia to wyznaczony zasób obliczeniowy, w którym uruchamiasz zadanie lub hostujesz punkt końcowy. Usługa Azure Machine Edukacja obsługuje następujące typy obliczeń:

  • Wystąpienie obliczeniowe — w pełni skonfigurowane i zarządzane środowisko programistyczne w chmurze. Możesz użyć wystąpienia jako środowiska obliczeniowego trenowania lub wnioskowania na potrzeby programowania i testowania. Jest ona podobna do maszyny wirtualnej w chmurze.
  • Klaster obliczeniowy — zarządzana infrastruktura obliczeniowa, która umożliwia łatwe tworzenie klastra węzłów obliczeniowych procesora CPU lub procesora GPU w chmurze.
  • Obliczenia bezserwerowe — klaster obliczeniowy dostępny na bieżąco. W przypadku korzystania z bezserwerowych obliczeń nie trzeba tworzyć własnego klastra. Wszystkie zarządzanie cyklem życia zasobów obliczeniowych jest odciążane do usługi Azure Machine Edukacja.
  • Klaster wnioskowania — służy do wdrażania wytrenowanych modeli uczenia maszynowego w usłudze Azure Kubernetes Service. Klaster usługi Azure Kubernetes Service (AKS) można utworzyć z poziomu obszaru roboczego usługi Azure Machine Edukacja lub dołączyć istniejący klaster usługi AKS.
  • Dołączone zasoby obliczeniowe — możesz dołączyć własne zasoby obliczeniowe do obszaru roboczego i użyć ich do trenowania i wnioskowania.

Tworzenie obliczeń

Aby utworzyć klaster obliczeniowy przy użyciu zestawu Python SDK w wersji 2, możesz użyć następującego kodu:

DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)

cluster_basic = AmlCompute(
    name="basic-example",
    type="amlcompute",
    size="STANDARD_DS3_v2",
    location="westus",
    min_instances=0,
    max_instances=2,
    idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic)

Ten notes Jupyter zawiera więcej sposobów tworzenia zasobów obliczeniowych przy użyciu zestawu SDK w wersji 2.

Magazyn danych

Usługa Azure Machine Edukacja magazyny danych bezpiecznie przechowują informacje o połączeniu z magazynem danych na platformie Azure, więc nie musisz kodować ich w skryptach. Możesz zarejestrować i utworzyć magazyn danych, aby łatwo nawiązać połączenie z kontem magazynu i uzyskać dostęp do danych w podstawowej usłudze magazynu. Interfejs wiersza polecenia w wersji 2 i zestaw SDK w wersji 2 obsługują następujące typy usług magazynu w chmurze:

  • Azure Blob Container
  • Udział plików platformy Azure
  • Azure Data Lake
  • Azure Data Lake Gen2

Tworzenie magazynu danych

Aby utworzyć magazyn danych przy użyciu zestawu SDK języka Python w wersji 2, możesz użyć następującego kodu:

DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)

import AzureBlobDatastore

blob_datastore1 = AzureBlobDatastore(
    name="blob_example",
    description="Datastore pointing to a blob container.",
    account_name="mytestblobstore",
    container_name="data-container",
    credentials={
        "account_key": "XXXxxxXXXxXXXXxxXXXXXxXXXXXxXxxXxXXXxXXXxXXxxxXXxxXXXxXxXXXxxXxxXXXXxxxxxXXxxxxxxXXXxXXX"
    },
)
ml_client.create_or_update(blob_datastore1)

Ten notes Jupyter zawiera więcej sposobów tworzenia magazynów danych przy użyciu zestawu SDK w wersji 2.

Aby dowiedzieć się więcej na temat korzystania z magazynu danych, zobacz Tworzenie zasobów danych i zarządzanie nimi.

Model

Modele usługi Azure Machine Edukacja składają się z plików binarnych reprezentujących model uczenia maszynowego i wszelkie odpowiednie metadane. Modele można tworzyć na podstawie lokalnego lub zdalnego pliku lub katalogu. W przypadku lokalizacji zdalnych httpswasbs i azureml lokalizacji są obsługiwane. Utworzony model będzie śledzony w obszarze roboczym pod określoną nazwą i wersją. Usługa Azure Machine Edukacja obsługuje trzy typy formatów magazynu dla modeli:

  • custom_model
  • mlflow_model
  • triton_model

Tworzenie modelu w rejestrze modeli

Rejestracja modelu umożliwia przechowywanie i przechowywanie wersji modeli w chmurze platformy Azure w obszarze roboczym. Rejestr modeli ułatwia organizowanie i śledzenie wytrenowanych modeli.

Aby uzyskać więcej informacji na temat tworzenia modeli w rejestrze, zobacz Praca z modelami w usłudze Azure Machine Edukacja.

Środowisko

Środowiska usługi Azure Machine Edukacja to hermetyzacja środowiska, w którym odbywa się zadanie uczenia maszynowego. Określają pakiety oprogramowania, zmienne środowiskowe i ustawienia oprogramowania wokół skryptów trenowania i oceniania. Środowiska są zarządzane i wersjonowane w obszarze roboczym usługi Machine Edukacja. Środowiska umożliwiają odtwarzanie, inspekcję i przenośne przepływy pracy uczenia maszynowego w różnych obliczeniach.

Typy środowiska

Usługa Azure Machine Edukacja obsługuje dwa typy środowisk: wyselekcjonowane i niestandardowe.

Nadzorowane środowiska są udostępniane przez usługę Azure Machine Edukacja i są domyślnie dostępne w obszarze roboczym. Przeznaczone do użycia tak, jak to jest, zawierają kolekcje pakietów i ustawień języka Python, aby ułatwić rozpoczęcie pracy z różnymi strukturami uczenia maszynowego. Te wstępnie utworzone środowiska umożliwiają również krótszy czas wdrażania. Aby uzyskać pełną listę, zobacz artykuł wyselekcjonowane środowiska.

W środowiskach niestandardowych odpowiadasz za konfigurowanie środowiska i instalowanie pakietów lub innych zależności wymaganych przez skrypt trenowania lub oceniania na podstawie obliczeń. Usługa Azure Machine Edukacja umożliwia tworzenie własnego środowiska przy użyciu polecenia

  • Obraz platformy Docker
  • Podstawowy obraz platformy Docker z plikiem YAML conda w celu dalszego dostosowywania
  • Kontekst kompilacji platformy Docker

Tworzenie środowiska niestandardowego usługi Azure Machine Edukacja

Aby utworzyć środowisko przy użyciu zestawu PYTHON SDK w wersji 2, zobacz Tworzenie środowiska.

Ten notes Jupyter zawiera więcej sposobów tworzenia środowisk niestandardowych przy użyciu zestawu SDK w wersji 2.

Data

Usługa Azure Machine Edukacja umożliwia pracę z różnymi typami danych:

  • Identyfikatory URI (lokalizacja w magazynie lokalnym/w chmurze)
    • uri_folder
    • uri_file
  • Tabele (abstrakcja danych tabelarycznych)
    • mltable
  • Pierwotnych
    • string
    • boolean
    • number

W większości scenariuszy użyjesz identyfikatorów URI (uri_folder i uri_file) — lokalizacji w magazynie, która może być łatwo zamapowana na system plików węzła obliczeniowego w zadaniu, instalowania lub pobierania magazynu do węzła.

mltable to abstrakcja danych tabelarycznych, które mają być używane w przypadku zadań automl, zadań równoległych i niektórych zaawansowanych scenariuszy. Jeśli dopiero zaczynasz używać usługi Azure Machine Edukacja i nie używasz rozwiązania AutoML, zdecydowanie zachęcamy do rozpoczęcia od identyfikatorów URI.

Składnik

Składnik usługi Azure Machine Edukacja to samodzielny fragment kodu, który wykonuje jeden krok w potoku uczenia maszynowego. Składniki to bloki konstrukcyjne zaawansowanych potoków uczenia maszynowego. Składniki mogą wykonywać zadania, takie jak przetwarzanie danych, trenowanie modelu, ocenianie modelu itd. Składnik jest analogiczny do funkcji — ma nazwę, parametry, oczekuje danych wejściowych i zwraca dane wyjściowe.

Następne kroki