Zarządzanie obszarami roboczymi usługi Azure Machine Learning w portalu lub przy użyciu zestawu SDK języka Python (wersja 2)
DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)
W tym artykule tworzysz, wyświetlasz i usuwasz obszary robocze usługi Azure Machine Learning dla usługi Azure Machine Learning przy użyciu Azure Portal lub zestawu SDK dla języka Python.
Wraz ze zmianami wymagań lub wymaganiami dotyczącymi automatyzacji można również zarządzać obszarami roboczymi przy użyciu interfejsu wiersza polecenia, Azure PowerShell lub za pośrednictwem rozszerzenia programu VS Code.
Wymagania wstępne
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto. Wypróbuj bezpłatną lub płatną wersję usługi Azure Machine Learning już dziś.
- Jeśli używasz zestawu SDK języka Python:
Podaj szczegóły subskrypcji
# Enter details of your subscription subscription_id = "<SUBSCRIPTION_ID>" resource_group = "<RESOURCE_GROUP>"
Uzyskaj dojście do subskrypcji.
ml_client
będzie używany we wszystkich kodzie języka Python w tym artykule.# get a handle to the subscription from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
(Opcjonalnie) Jeśli masz wiele kont, dodaj identyfikator dzierżawy usługi Azure Active Directory, której chcesz użyć w usłudze
DefaultAzureCredential
. Znajdź swój identyfikator dzierżawy z Azure Portal w obszarze Azure Active Directory, External Identities.DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")
(Opcjonalnie) Jeśli pracujesz nad suwerenną chmurą**, określ suwerenną chmurę do uwierzytelniania w pliku
DefaultAzureCredential
..from azure.identity import AzureAuthorityHosts DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT))
Ograniczenia
Podczas tworzenia nowego obszaru roboczego można automatycznie tworzyć usługi wymagane przez obszar roboczy lub korzystać z istniejących usług. Jeśli chcesz używać istniejących usług z innej subskrypcji platformy Azure niż obszar roboczy, musisz zarejestrować przestrzeń nazw usługi Azure Machine Learning w subskrypcji zawierającej te usługi. Na przykład utworzenie obszaru roboczego w subskrypcji A korzystającej z konta magazynu z subskrypcji B, przestrzeń nazw usługi Azure Machine Learning musi być zarejestrowana w subskrypcji B, zanim będzie można używać konta magazynu z obszarem roboczym.
Dostawca zasobów dla usługi Azure Machine Learning to Microsoft.MachineLearningServices. Aby uzyskać informacje na temat sposobu rejestrowania i rejestrowania go, zobacz artykuł Azure resource providers and types (Dostawcy zasobów i typy zasobów platformy Azure ).
Ważne
Dotyczy to tylko zasobów udostępnianych podczas tworzenia obszaru roboczego; Konta usługi Azure Storage, rejestr kontenerów platformy Azure, usługa Azure Key Vault i usługa Application Insights.
Jeśli używasz usługi Azure Container Registry (ACR), konta magazynu, Key Vault lub usługi Application Insights w innej subskrypcji niż obszar roboczy, nie możesz używać izolacji sieciowej z zarządzanymi punktami końcowymi online. Jeśli chcesz używać izolacji sieciowej z zarządzanymi punktami końcowymi online, musisz mieć usługi ACR, konto magazynu, Key Vault i usługę Application Insights w tej samej subskrypcji z obszarem roboczym. Aby uzyskać ograniczenia dotyczące izolacji sieciowej z zarządzanymi punktami końcowymi online, zobacz Jak zabezpieczyć punkt końcowy online.
Domyślnie utworzenie obszaru roboczego powoduje również utworzenie Azure Container Registry (ACR). Ponieważ usługa ACR nie obsługuje obecnie znaków Unicode w nazwach grup zasobów, użyj grupy zasobów, która nie zawiera tych znaków.
Usługa Azure Machine Learning nie obsługuje hierarchicznej przestrzeni nazw (Azure Data Lake Storage Gen2 funkcji) dla domyślnego konta magazynu obszaru roboczego.
Porada
Wystąpienie usługi aplikacja systemu Azure Insights jest tworzone podczas tworzenia obszaru roboczego. Jeśli chcesz, możesz usunąć wystąpienie usługi Application Insights po utworzeniu klastra. Usunięcie go ogranicza informacje zebrane z obszaru roboczego i może utrudnić rozwiązywanie problemów. Jeśli usuniesz wystąpienie usługi Application Insights utworzone przez obszar roboczy, nie będzie można utworzyć go ponownie bez usuwania i ponownego tworzenia obszaru roboczego.
Aby uzyskać więcej informacji na temat korzystania z tego wystąpienia usługi Application Insights, zobacz Monitorowanie i zbieranie danych z punktów końcowych usługi sieci Web Machine Learning.
Tworzenie obszaru roboczego
Obszar roboczy można utworzyć bezpośrednio w Azure Machine Learning studio z ograniczonymi dostępnymi opcjami. Możesz też użyć jednej z poniższych metod, aby uzyskać większą kontrolę nad opcjami.
DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)
Specyfikacja domyślna. Domyślnie zasoby zależne i grupa zasobów zostaną utworzone automatycznie. Ten kod tworzy obszar roboczy o nazwie
myworkspace
i grupę zasobów o nazwiemyresourcegroup
w .eastus2
# Creating a unique workspace name with current datetime to avoid conflicts from azure.ai.ml.entities import Workspace import datetime basic_workspace_name = "mlw-basic-prod-" + datetime.datetime.now().strftime( "%Y%m%d%H%M" ) ws_basic = Workspace( name=basic_workspace_name, location="eastus", display_name="Basic workspace-example", description="This example shows how to create a basic workspace", hbi_workspace=False, tags=dict(purpose="demo"), ) ws_basic = ml_client.workspaces.begin_create(ws_basic).result() print(ws_basic)
Użyj istniejących zasobów platformy Azure. Możesz również utworzyć obszar roboczy, który używa istniejących zasobów platformy Azure z formatem identyfikatora zasobu platformy Azure. Znajdź określone identyfikatory zasobów platformy Azure w Azure Portal lub za pomocą zestawu SDK. W tym przykładzie przyjęto założenie, że grupa zasobów, konto magazynu, magazyn kluczy, usługa App Insights i rejestr kontenerów już istnieją.
# Creating a unique workspace name with current datetime to avoid conflicts import datetime from azure.ai.ml.entities import Workspace basic_ex_workspace_name = "mlw-basicex-prod-" + datetime.datetime.now().strftime( "%Y%m%d%H%M" ) # Change the following variables to resource ids of your existing storage account, key vault, application insights # and container registry. Here we reuse the ones we just created for the basic workspace existing_storage_account = ( # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT>" ws_basic.storage_account ) existing_container_registry = ( # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ContainerRegistry/registries/<CONTAINER_REGISTRY>" ws_basic.container_registry ) existing_key_vault = ( # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT>" ws_basic.key_vault ) existing_application_insights = ( # e.g. "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.insights/components/<APP_INSIGHTS>" ws_basic.application_insights ) ws_with_existing_resources = Workspace( name=basic_ex_workspace_name, location="eastus", display_name="Bring your own dependent resources-example", description="This sample specifies a workspace configuration with existing dependent resources", storage_account=existing_storage_account, container_registry=existing_container_registry, key_vault=existing_key_vault, application_insights=existing_application_insights, tags=dict(purpose="demonstration"), ) ws_with_existing_resources = ml_client.begin_create_or_update( ws_with_existing_resources ).result() print(ws_with_existing_resources)
Aby uzyskać więcej informacji, zobacz Workspace SDK reference (Dokumentacja zestawu SDK obszaru roboczego).
Jeśli masz problemy z dostępem do subskrypcji, zobacz Konfigurowanie uwierzytelniania dla zasobów i przepływów pracy usługi Azure Machine Learning oraz Uwierzytelnianie w notesie usługi Azure Machine Learning .
Sieć
Ważne
Aby uzyskać więcej informacji na temat korzystania z prywatnego punktu końcowego i sieci wirtualnej z obszarem roboczym, zobacz Izolacja sieciowa i prywatność.
DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)
# Creating a unique workspace name with current datetime to avoid conflicts
import datetime
from azure.ai.ml.entities import Workspace
basic_private_link_workspace_name = (
"mlw-privatelink-prod-" + datetime.datetime.now().strftime("%Y%m%d%H%M")
)
ws_private = Workspace(
name=basic_private_link_workspace_name,
location="eastus",
display_name="Private Link endpoint workspace-example",
description="When using private link, you must set the image_build_compute property to a cluster name to use for Docker image environment building. You can also specify whether the workspace should be accessible over the internet.",
image_build_compute="cpu-compute",
public_network_access="Disabled",
tags=dict(purpose="demonstration"),
)
ml_client.workspaces.begin_create(ws_private).result()
Ta klasa wymaga istniejącej sieci wirtualnej.
Zaawansowany
Domyślnie metadane obszaru roboczego są przechowywane w wystąpieniu usługi Azure Cosmos DB utrzymywanym przez firmę Microsoft. Te dane są szyfrowane przy użyciu kluczy zarządzanych przez firmę Microsoft.
Aby ograniczyć dane zbierane przez firmę Microsoft w obszarze roboczym, wybierz pozycję Obszar roboczy o dużym wpływie na działalność biznesową w portalu lub ustaw go w języku hbi_workspace=true
Python. Aby uzyskać więcej informacji na temat tego ustawienia, zobacz Szyfrowanie magazynowane.
Ważne
Podczas tworzenia obszaru roboczego można wybrać duży wpływ na działalność biznesową. Nie można zmienić tego ustawienia po utworzeniu obszaru roboczego.
Korzystanie z własnego klucza szyfrowania danych
Możesz podać własny klucz do szyfrowania danych. Spowoduje to utworzenie wystąpienia usługi Azure Cosmos DB, które przechowuje metadane w subskrypcji platformy Azure. Aby uzyskać więcej informacji, zobacz Klucze zarządzane przez klienta.
Aby podać własny klucz, wykonaj następujące kroki:
Ważne
Przed wykonaniem tych kroków należy najpierw wykonać następujące czynności:
Wykonaj kroki opisane w temacie Konfigurowanie kluczy zarządzanych przez klienta w celu:
- Rejestrowanie dostawcy usługi Azure Cosmos DB
- Tworzenie i konfigurowanie usługi Azure Key Vault
- Generowanie klucza
DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)
from azure.ai.ml.entities import Workspace, CustomerManagedKey
# specify the workspace details
ws = Workspace(
name="my_workspace",
location="eastus",
display_name="My workspace",
description="This example shows how to create a workspace",
customer_managed_key=CustomerManagedKey(
key_vault="/subscriptions/<SUBSCRIPTION_ID>/resourcegroups/<RESOURCE_GROUP>/providers/microsoft.keyvault/vaults/<VAULT_NAME>"
key_uri="<KEY-IDENTIFIER>"
)
tags=dict(purpose="demo")
)
ml_client.workspaces.begin_create(ws)
Pobieranie pliku konfiguracji
Jeśli będziesz uruchamiać kod w wystąpieniu obliczeniowym, pomiń ten krok. Wystąpienie obliczeniowe utworzy i zapisze kopię tego pliku.
Jeśli planujesz używać kodu w środowisku lokalnym, który odwołuje się do tego obszaru roboczego, pobierz plik:
Wybieranie obszaru roboczego w programie Azure Studio
W prawym górnym rogu wybierz nazwę obszaru roboczego, a następnie wybierz pozycję Pobierz plik config.json
Umieść plik w strukturze katalogów za pomocą skryptów języka Python lub notesów Jupyter Notebook. Może on znajdować się w tym samym katalogu, podkatalogu o nazwie .azureml lub w katalogu nadrzędnym. Podczas tworzenia wystąpienia obliczeniowego ten plik jest dodawany do odpowiedniego katalogu na maszynie wirtualnej.
Łączenie z obszarem roboczym
Podczas uruchamiania zadań uczenia maszynowego przy użyciu zestawu SDK wymagany jest obiekt MLClient określający połączenie z obszarem roboczym. Obiekt można utworzyć MLClient
na podstawie parametrów lub za pomocą pliku konfiguracji.
DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)
Za pomocą pliku konfiguracji: Ten kod odczytuje zawartość pliku konfiguracji, aby znaleźć obszar roboczy. Jeśli jeszcze nie uwierzytelniono, zostanie wyświetlony monit o zalogowanie się.
from azure.ai.ml import MLClient # read the config from the current directory ws_from_config = MLClient.from_config()
Z parametrów: nie ma potrzeby, aby plik config.json był dostępny, jeśli używasz tej metody.
from azure.ai.ml import MLClient from azure.ai.ml.entities import Workspace from azure.identity import DefaultAzureCredential ws = MLClient( DefaultAzureCredential(), subscription_id="<SUBSCRIPTION_ID>", resource_group_name="<RESOURCE_GROUP>", workspace_name="<AML_WORKSPACE_NAME>", ) print(ws)
Jeśli masz problemy z dostępem do subskrypcji, zobacz Konfigurowanie uwierzytelniania dla zasobów i przepływów pracy usługi Azure Machine Learning oraz Uwierzytelnianie w notesie usługi Azure Machine Learning .
Znajdowanie obszaru roboczego
Zobacz listę wszystkich obszarów roboczych, których można użyć.
Możesz również wyszukać obszar roboczy wewnątrz programu Studio. Zobacz Wyszukiwanie zasobów usługi Azure Machine Learning (wersja zapoznawcza).
DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)
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>"
my_ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
for ws in my_ml_client.workspaces.list():
print(ws.name, ":", ws.location, ":", ws.description)
Aby uzyskać szczegółowe informacje o określonym obszarze roboczym:
ws = my_ml_client.workspaces.get("<AML_WORKSPACE_NAME>")
# uncomment this line after providing a workspace name above
# print(ws.location,":", ws.resource_group)
Usuwanie obszaru roboczego
Jeśli obszar roboczy nie jest już potrzebny, usuń go.
Ostrzeżenie
Jeśli usuwanie nietrwałe jest włączone dla obszaru roboczego, można go odzyskać po usunięciu. Jeśli usuwanie nietrwałe nie jest włączone lub wybrano opcję trwałego usunięcia obszaru roboczego, nie można go odzyskać. Aby uzyskać więcej informacji, zobacz Odzyskiwanie usuniętego obszaru roboczego.
Jeśli obszar roboczy został przypadkowo usunięty, nadal możesz pobrać notesy. Aby uzyskać szczegółowe informacje, zobacz Tryb failover na potrzeby ciągłości działania i odzyskiwania po awarii.
DOTYCZY: Zestaw PYTHON SDK azure-ai-ml w wersji 2 (bieżąca)
ml_client.workspaces.begin_delete(name=ws_basic.name, delete_dependent_resources=True)
Domyślną akcją nie jest usuwanie zasobów skojarzonych z obszarem roboczym, czyli rejestru kontenerów, konta magazynu, magazynu kluczy i usługi Application Insights. Ustaw również wartość delete_dependent_resources
True, aby usunąć te zasoby.
Czyszczenie zasobów
Ważne
Utworzone zasoby mogą być używane jako wymagania wstępne w innych samouczkach usługi Azure Machine Learning i artykułach z instrukcjami.
Jeśli nie planujesz korzystać z żadnych utworzonych zasobów, usuń je, aby nie ponosić żadnych opłat:
W witrynie Azure Portal na końcu z lewej strony wybierz pozycję Grupy zasobów.
Z listy wybierz utworzoną przez siebie grupę zasobów.
Wybierz pozycję Usuń grupę zasobów.
Wpisz nazwę grupy zasobów. Następnie wybierz pozycję Usuń.
Rozwiązywanie problemów
Obsługiwane przeglądarki w Azure Machine Learning studio: zalecamy korzystanie z najbardziej aktualnej przeglądarki zgodnej z systemem operacyjnym. Obsługiwane są następujące przeglądarki:
- Microsoft Edge (nowa przeglądarka Microsoft Edge, najnowsza wersja. Nie starsza wersja przeglądarki Microsoft Edge)
- Safari (najnowsza wersja, tylko Mac)
- Chrome (najnowsza wersja)
- Firefox (najnowsza wersja)
Azure Portal:
- Jeśli przejdziesz bezpośrednio do obszaru roboczego z linku udostępniania z zestawu SDK lub Azure Portal, nie możesz wyświetlić standardowej strony Przegląd zawierającej informacje o subskrypcji w rozszerzeniu. W tym scenariuszu nie można również przełączyć się do innego obszaru roboczego. Aby wyświetlić inny obszar roboczy, przejdź bezpośrednio do Azure Machine Learning studio i wyszukaj nazwę obszaru roboczego.
- Wszystkie zasoby (dane, eksperymenty, obliczenia itd.) są dostępne tylko w Azure Machine Learning studio. Nie są one dostępne w Azure Portal.
- Próba wyeksportowania szablonu dla obszaru roboczego z Azure Portal może spowodować zwrócenie błędu podobnego do następującego tekstu:
Could not get resource of the type <type>. Resources of this type will not be exported.
Jako obejście użyj jednego z szablonów udostępnionych jako https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices podstawy szablonu.
Diagnostyka obszaru roboczego
Diagnostykę obszaru roboczego można uruchomić z poziomu Azure Machine Learning studio lub zestawu SDK języka Python. Po uruchomieniu diagnostyki zostanie zwrócona lista wykrytych problemów. Ta lista zawiera linki do możliwych rozwiązań. Aby uzyskać więcej informacji, zobacz Jak używać diagnostyki obszaru roboczego.
Błędy dostawcy zasobów
Podczas tworzenia obszaru roboczego usługi Azure Machine Learning lub zasobu używanego przez obszar roboczy może zostać wyświetlony błąd podobny do następujących komunikatów:
No registered resource provider found for location {location}
The subscription is not registered to use namespace {resource-provider-namespace}
Większość dostawców zasobów jest automatycznie rejestrowana, ale nie wszystkie. Jeśli zostanie wyświetlony ten komunikat, musisz zarejestrować wymienionego dostawcę.
Poniższa tabela zawiera listę dostawców zasobów wymaganych przez usługę Azure Machine Learning:
Dostawca zasobów | Dlaczego jest to potrzebne |
---|---|
Microsoft.MachineLearningServices | Tworzenie obszaru roboczego usługi Azure Machine Learning. |
Microsoft.Storage | Konto usługi Azure Storage jest używane jako domyślny magazyn dla obszaru roboczego. |
Microsoft.ContainerRegistry | Azure Container Registry jest używany przez obszar roboczy do tworzenia obrazów platformy Docker. |
Microsoft.KeyVault | Usługa Azure Key Vault jest używana przez obszar roboczy do przechowywania wpisów tajnych. |
Microsoft.Notebooks/NotebookProxies | Zintegrowane notesy w wystąpieniu obliczeniowym usługi Azure Machine Learning. |
Microsoft.ContainerService | Jeśli planujesz wdrażanie wytrenowanych modeli w usługach Azure Kubernetes Services. |
Jeśli planujesz korzystanie z klucza zarządzanego przez klienta w usłudze Azure Machine Learning, należy zarejestrować następujących dostawców usług:
Dostawca zasobów | Dlaczego jest to potrzebne |
---|---|
Microsoft.DocumentDB/databaseAccounts | Wystąpienie usługi Azure CosmosDB, które rejestruje metadane obszaru roboczego. |
Microsoft.Search/searchServices | Usługa Azure Search udostępnia funkcje indeksowania dla obszaru roboczego. |
Aby uzyskać informacje na temat rejestrowania dostawców zasobów, zobacz Rozwiązywanie błędów dotyczących rejestracji dostawcy zasobów.
Usuwanie Azure Container Registry
Obszar roboczy usługi Azure Machine Learning używa Azure Container Registry (ACR) dla niektórych operacji. Spowoduje to automatyczne utworzenie wystąpienia usługi ACR, gdy będzie ono najpierw potrzebne.
Ostrzeżenie
Po utworzeniu Azure Container Registry dla obszaru roboczego nie usuwaj go. Spowoduje to przerwanie obszaru roboczego usługi Azure Machine Learning.
Przykłady
Przykłady w tym artykule pochodzą z pliku workspace.ipynb.
Następne kroki
Po utworzeniu obszaru roboczego dowiedz się, jak trenować i wdrażać model.
Aby dowiedzieć się więcej na temat planowania obszaru roboczego pod kątem wymagań organizacji, zobacz Organizowanie i konfigurowanie usługi Azure Machine Learning.
- Jeśli musisz przenieść obszar roboczy do innej subskrypcji platformy Azure, zobacz Jak przenieść obszar roboczy.
Aby uzyskać informacje na temat aktualizowania usługi Azure Machine Learning przy użyciu najnowszych aktualizacji zabezpieczeń, zobacz Zarządzanie lukami w zabezpieczeniach.