Vytvoření výpočetního clusteru Azure Machine Learning pomocí rozhraní příkazového řádku v1
PLATÍ PRO:Rozšíření Azure CLI ml v1Python SDK azureml v1
Naučte se vytvářet a spravovat výpočetní cluster v pracovním prostoru Azure Machine Learning.
Výpočetní cluster Azure Machine Learning můžete použít k distribuci procesu trénování nebo dávkového odvozování napříč clusterem výpočetních uzlů PROCESORu nebo GPU v cloudu. Další informace o velikostech virtuálních počítačů, které obsahují GPU, najdete v tématu Velikosti virtuálních počítačů optimalizovaných pro GPU.
V tomto článku se dozvíte, jak:
- Vytvoření výpočetního clusteru
- Snížení nákladů na výpočetní cluster
- Nastavení spravované identity pro cluster
Požadavky
Pracovní prostor služby Azure Machine Learning. Další informace najdete v tématu Vytvoření pracovního prostoru Azure Machine Learning.
Rozšíření Azure CLI pro službu Machine Learning Service (v1), sadu Azure Machine Learning Python SDK nebo rozšíření Azure Machine Learning Visual Studio Code.
Důležité
Některé příkazy Azure CLI v tomto článku používají
azure-cli-ml
rozšíření (nebo v1) pro Azure Machine Learning. Podpora rozšíření v1 skončí 30. září 2025. Do tohoto data budete moct nainstalovat a používat rozšíření v1.Doporučujeme přejít na
ml
rozšíření (nebo v2) před 30. zářím 2025. Další informace o rozšíření v2 najdete v tématu Rozšíření Azure ML CLI a Python SDK v2.Pokud používáte sadu Python SDK, nastavte vývojové prostředí s pracovním prostorem. Po nastavení prostředí se připojte k pracovnímu prostoru ve skriptu Pythonu:
PLATÍ PRO: Python SDK azureml v1
from azureml.core import Workspace ws = Workspace.from_config()
Co je výpočetní cluster?
Výpočetní cluster Azure Machine Learning je spravovaná výpočetní infrastruktura, která umožňuje snadno vytvořit výpočetní prostředky s jedním nebo více uzly. Výpočetní cluster je prostředek, který je možné sdílet s ostatními uživateli ve vašem pracovním prostoru. Výpočetní prostředky se automaticky škálují při odeslání úlohy a dají se umístit do služby Azure Virtual Network. Výpočetní cluster nepodporuje žádné nasazení veřejných IP adres ani ve virtuální síti. Výpočetní prostředí se spustí v kontejnerizovaném prostředí a zabalí závislosti modelu do kontejneru Dockeru.
Výpočetní clustery můžou bezpečně spouštět úlohy v prostředí virtuální sítě, aniž by podniky musely otevírat porty SSH. Úloha se spustí v kontejnerizovaném prostředí a zabalí závislosti modelu do kontejneru Dockeru.
Omezení
Výpočetní clustery je možné vytvořit v jiné oblasti a virtuální síti, než je váš pracovní prostor. Tato funkce je ale dostupná jenom pomocí sady SDK verze 2, rozhraní příkazového řádku 2 nebo studia. Další informace najdete ve verzi 2 zabezpečených trénovacích prostředí.
V současné době podporujeme vytváření (a neaktualizuje) clusterů prostřednictvím šablon ARM. Pro aktualizaci výpočetních prostředků doporučujeme prozatím používat sadu SDK, Azure CLI nebo UX.
Výpočetní prostředí Azure Machine Learning má výchozí limity, například počet jader, která je možné přidělit. Další informace najdete v tématu Správa a vyžádání kvót pro prostředky Azure.
Azure umožňuje umístit zámky na prostředky, aby je nebylo možné odstranit nebo jsou jen pro čtení. Nepoužívejte zámky prostředků na skupinu prostředků, která obsahuje váš pracovní prostor. Použití zámku u skupiny prostředků, která obsahuje váš pracovní prostor, zabrání operacím škálování výpočetních clusterů Azure Machine Learning. Další informace o uzamčení prostředků najdete v tématu Uzamčení prostředků, abyste zabránili neočekávaným změnám.
Tip
Clustery můžou obecně vertikálně navýšit kapacitu až na 100 uzlů, pokud máte dostatečnou kvótu pro požadovaný počet jader. Ve výchozím nastavení jsou clustery nastavené s povolenou komunikací mezi uzly mezi uzly clusteru, aby podporovaly například úlohy MPI. Clustery ale můžete škálovat na 1 000 uzlů tak, že jednoduše vytvoříte lístek podpory a požádáte o povolení výpisu předplatného nebo pracovního prostoru nebo konkrétního clusteru pro zakázání komunikace mezi uzly.
Vytvoření
Časový odhad: Přibližně 5 minut.
Výpočetní prostředky Služby Azure Machine Learning je možné opakovaně používat napříč běhy. Výpočetní prostředky je možné sdílet s ostatními uživateli v pracovním prostoru a zachovat mezi spuštěními, automaticky vertikálně navyšovat nebo snížit kapacitu uzlů na základě počtu odeslaných spuštění a max_nodes nastavené v clusteru. Nastavení min_nodes řídí minimální dostupné uzly.
Vyhrazená jádra na oblast na řadu virtuálních počítačů a celková kvóta pro oblast, která se vztahuje na vytvoření výpočetního clusteru, je jednotná a sdílená s kvótou výpočetních instancí pro trénování ve službě Azure Machine Learning.
Důležité
Pokud se chcete vyhnout poplatkům, pokud nejsou spuštěné žádné úlohy, nastavte minimální počet uzlů na 0. Toto nastavení umožňuje službě Azure Machine Learning zrušit přidělení uzlů, když se nepoužívají. Jakákoli hodnota větší než 0 zachová tento počet uzlů spuštěných, i když se nepoužívají.
Pokud se výpočetní prostředky nepoužívají, automaticky se škáluje na nula uzlů. Vyhrazené virtuální počítače se vytvoří pro spouštění úloh podle potřeby.
Pokud chcete vytvořit trvalý výpočetní prostředek Azure Machine Learning v Pythonu, zadejte vm_size a max_nodes vlastnosti. Azure Machine Learning pak pro ostatní vlastnosti používá inteligentní výchozí hodnoty.
- vm_size: Řada virtuálních počítačů uzlů vytvořených službou Azure Machine Learning Compute.
- max_nodes: Maximální počet uzlů pro automatické škálování při spuštění úlohy ve službě Azure Machine Learning Compute.
PLATÍ PRO: Python SDK azureml v1
from azureml.core.compute import ComputeTarget, AmlCompute
from azureml.core.compute_target import ComputeTargetException
# Choose a name for your CPU cluster
cpu_cluster_name = "cpucluster"
# Verify that cluster does not exist already
try:
cpu_cluster = ComputeTarget(workspace=ws, name=cpu_cluster_name)
print('Found existing cluster, use it.')
except ComputeTargetException:
# To use a different region for the compute, add a location='<region>' parameter
compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_D2_V2',
max_nodes=4)
cpu_cluster = ComputeTarget.create(ws, cpu_cluster_name, compute_config)
cpu_cluster.wait_for_completion(show_output=True)
Při vytváření výpočetních prostředků Azure Machine Learning můžete také nakonfigurovat několik pokročilých vlastností. Vlastnosti umožňují vytvořit trvalý cluster s pevnou velikostí nebo v rámci existující virtuální sítě Azure ve vašem předplatném. Podrobnosti najdete v třídě AmlCompute.
Upozorňující
Při nastavování parametru location
, pokud se jedná o jinou oblast než pracovní prostor nebo úložiště dat, může se zobrazit vyšší latence sítě a náklady na přenos dat. Latence a náklady můžou nastat při vytváření clusteru a při spouštění úloh.
Snížení nákladů na výpočetní cluster
K provozování některých nebo všech úloh můžete také použít virtuální počítače s nízkou prioritou. Tyto virtuální počítače nemají zaručenou dostupnost a mohou být při použití předem zrušeny. Budete muset restartovat předem zatěžovanou úlohu.
PLATÍ PRO: Python SDK azureml v1
compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_D2_V2',
vm_priority='lowpriority',
max_nodes=4)
Nastavení spravované identity
Výpočetní clustery Azure Machine Learning podporují také spravované identity pro ověřování přístupu k prostředkům Azure bez zahrnutí přihlašovacích údajů do kódu. Existují dva typy spravovaných identit:
- Spravovaná identita přiřazená systémem je povolená přímo ve výpočetním clusteru a výpočetní instanci služby Azure Machine Learning. Životní cyklus identity přiřazené systémem je přímo svázaný s výpočetním clusterem nebo instancí. Pokud se výpočetní cluster nebo instance odstraní, Azure automaticky vyčistí přihlašovací údaje a identitu v Microsoft Entra ID.
- Spravovaná identita přiřazená uživatelem je samostatný prostředek Azure poskytovaný prostřednictvím služby Azure Managed Identity. Spravovanou identitu přiřazenou uživatelem můžete přiřadit k více prostředkům a zachovají se tak dlouho, jak chcete. Tuto spravovanou identitu je potřeba vytvořit předem a pak ji předat jako identity_id jako povinný parametr.
PLATÍ PRO: Python SDK azureml v1
Konfigurace spravované identity v konfiguraci zřizování:
Spravovaná identita přiřazená systémem vytvořená v pracovním prostoru s názvem
ws
# configure cluster with a system-assigned managed identity compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_D2_V2', max_nodes=5, identity_type="SystemAssigned", ) cpu_cluster_name = "cpu-cluster" cpu_cluster = ComputeTarget.create(ws, cpu_cluster_name, compute_config)
Spravovaná identita přiřazená uživatelem vytvořená v pracovním prostoru s názvem
ws
# configure cluster with a user-assigned managed identity compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_D2_V2', max_nodes=5, identity_type="UserAssigned", identity_id=['/subscriptions/<subcription_id>/resourcegroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user_assigned_identity>']) cpu_cluster_name = "cpu-cluster" cpu_cluster = ComputeTarget.create(ws, cpu_cluster_name, compute_config)
Přidání spravované identity do existujícího výpočetního clusteru s názvem
cpu_cluster
Spravovaná identita přiřazená systémem:
# add a system-assigned managed identity cpu_cluster.add_identity(identity_type="SystemAssigned")
Spravovaná identita přiřazená uživatelem:
# add a user-assigned managed identity cpu_cluster.add_identity(identity_type="UserAssigned", identity_id=['/subscriptions/<subcription_id>/resourcegroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user_assigned_identity>'])
Poznámka:
Výpočetní clustery Azure Machine Learning podporují pouze jednu identitu přiřazenou systémem nebo více identit přiřazených uživatelem, ne obě současně.
Využití spravované identity
Výchozí spravovaná identita je spravovaná identita přiřazená systémem nebo první spravovaná identita přiřazená uživatelem.
Během spuštění existují dvě aplikace identity:
Systém používá identitu k nastavení připojení úložiště uživatele, registru kontejnerů a úložišť dat.
- V tomto případě systém použije výchozí spravovanou identitu.
Uživatel použije identitu pro přístup k prostředkům z kódu pro odeslané spuštění.
- V tomto případě zadejte client_id odpovídající spravované identitě, kterou chcete použít k načtení přihlašovacích údajů.
- Případně získejte ID klienta identity přiřazené uživatelem prostřednictvím proměnné prostředí DEFAULT_IDENTITY_CLIENT_ID .
Pokud například chcete načíst token úložiště dat s výchozí spravovanou identitou:
client_id = os.environ.get('DEFAULT_IDENTITY_CLIENT_ID') credential = ManagedIdentityCredential(client_id=client_id) token = credential.get_token('https://storage.azure.com/')
Řešení problému
Je možné, že někteří uživatelé, kteří vytvořili pracovní prostor Azure Machine Learning z webu Azure Portal před vydáním ga, nemusí v tomto pracovním prostoru vytvářet AmlCompute. Můžete buď vytvořit žádost o podporu pro službu, nebo vytvořit nový pracovní prostor prostřednictvím portálu nebo sady SDK a okamžitě se odblokovat.
Zablokovaný při změně velikosti
Pokud se výpočetní cluster Azure Machine Learning zobrazuje zablokovaný při změně velikosti (0–> 0) stavu uzlu, příčinou můžou být zámky prostředků Azure.
Azure umožňuje umístit zámky na prostředky, aby je nebylo možné odstranit nebo jsou jen pro čtení. Uzamčení prostředku může vést k neočekávaným výsledkům. Některé operace, u kterých se zdá, že prostředek neupravují, ve skutečnosti vyžadují akce, které zámek zablokuje.
Když použijete zámek odstranění u skupiny prostředků pro váš pracovní prostor, zabráníte tím operacím škálování výpočetních clusterů Azure ML. Pokud chcete tento problém obejít, doporučujeme odebrat zámek ze skupiny prostředků a místo toho ho použít u jednotlivých položek ve skupině.
Důležité
Zámek nepoužívejte u následujících prostředků:
Název prostředku | Typ prostředku |
---|---|
<GUID>-azurebatch-cloudservicenetworksecurityggroup |
Skupina zabezpečení sítě |
<GUID>-azurebatch-cloudservicepublicip |
Veřejná IP adresa |
<GUID>-azurebatch-cloudserviceloadbalancer |
Load Balancer |
Tyto prostředky se používají ke komunikaci s výpočetním clusterem a provádějí operace, jako je škálování na výpočetní cluster. Odebrání zámku prostředku z těchto prostředků by mělo umožňovat automatické škálování výpočetních clusterů.
Další informace o uzamčení prostředků najdete v tématu Uzamčení prostředků, abyste zabránili neočekávaným změnám.
Další kroky
Pomocí výpočetního clusteru můžete: