Share via


Azure Machine Tanulás számítási fürt létrehozása cli v1 használatával

ÉRVÉNYES:Azure CLI ml-bővítmény v1Python SDK azureml v1

Megtudhatja, hogyan hozhat létre és kezelhet számítási fürtöt az Azure Machine Tanulás-munkaterületen.

Az Azure Machine Tanulás számítási fürt használatával kioszthat egy betanítási vagy kötegelt következtetési folyamatot a felhőben található CPU- vagy GPU-számítási csomópontokból álló fürtök között. A GPU-kat tartalmazó virtuálisgép-méretekről további információt a GPU-ra optimalizált virtuálisgép-méretekben talál.

Ebből a cikkből megtudhatja, hogyan:

  • Számítási fürt létrehozása
  • A számítási fürt költségeinek csökkentése
  • Felügyelt identitás beállítása a fürthöz

Előfeltételek

Mi az a számítási fürt?

Az Azure Machine Tanulás számítási fürt egy felügyelt számítási infrastruktúra, amely lehetővé teszi egyetlen vagy többcsomópontos számítás egyszerű létrehozását. A számítási fürt olyan erőforrás, amely megosztható a munkaterület többi felhasználójával. A számítási kapacitás automatikusan felskálázódik egy feladat elküldésekor, és elhelyezhető egy Azure-beli virtuális hálózatban. A számítási fürt nem támogatja a nyilvános IP-telepítést , valamint a virtuális hálózaton. A számítás tárolóalapú környezetben fut, és a modell függőségeit egy Docker-tárolóba csomagolja.

A számítási fürtök biztonságosan futtathatnak feladatokat virtuális hálózati környezetben anélkül, hogy a vállalatoknak SSH-portokat kellene megnyitniuk. A feladat tárolóalapú környezetben fut, és a modell függőségeit egy Docker-tárolóba csomagolja.

Korlátozások

  • A számítási fürtök a munkaterülethez képest más régióban és virtuális hálózaton hozhatók létre. Ez a funkció azonban csak az SDK v2, CLI v2 vagy studio használatával érhető el. További információt a biztonságos betanítási környezetek v2-es verziójában talál.

  • Jelenleg csak a fürtök létrehozását támogatjuk (és nem frissítjük) ARM-sablonokon keresztül. A számítás frissítéséhez egyelőre az SDK, az Azure CLI vagy az UX használatát javasoljuk.

  • Az Azure Machine Tanulás Compute alapértelmezett korlátokkal rendelkezik, például a lefoglalható magok számával. További információ: Az Azure-erőforrások kvótáinak kezelése és kérése.

  • Az Azure lehetővé teszi, hogy zárolja az erőforrásokat, így azok nem törölhetők vagy csak olvashatók. Ne alkalmazza az erőforrás-zárolásokat a munkaterületet tartalmazó erőforráscsoportra. A munkaterületet tartalmazó erőforráscsoport zárolásának alkalmazása megakadályozza az Azure Machine Tanulás számítási fürtök skálázási műveleteit. Az erőforrások zárolásával kapcsolatos további információkért lásd : Erőforrások zárolása a váratlan változások megelőzése érdekében.

Tipp.

A fürtök általában akár 100 csomópontot is skálázhatnak, feltéve, hogy elegendő kvótával rendelkezik a szükséges magok számára. Alapértelmezés szerint a fürtök úgy vannak beállítva, hogy a csomópontok közötti kommunikáció engedélyezve van a fürt csomópontjai között, például az MPI-feladatok támogatásához. A fürtöket azonban 1000 csomópontra skálázhatja úgy, hogy egyszerűen felvesz egy támogatási jegyet, és kéri, hogy engedélyezze az előfizetés vagy a munkaterület listázását, vagy egy adott fürtöt, amely letiltja a csomópontok közötti kommunikációt.

Create

Időbecslés: Körülbelül 5 perc.

Az Azure Machine Tanulás Compute a futtatások között újra felhasználható. A számítás megosztható a munkaterület többi felhasználójával, és a futtatások között megmarad, automatikusan fel- vagy leskálázva a csomópontokat a beküldött futtatások száma alapján, valamint a fürtön beállított max_nodes alapján. A min_nodes beállítás szabályozza az elérhető minimális csomópontokat.

A virtuális gépek családkvóta szerinti régiónkénti dedikált magok és a számítási fürtök létrehozására vonatkozó teljes regionális kvóta egységesítve van, és meg van osztva az Azure Machine Tanulás számítási példányok betanítási kvótájával.

Fontos

Ha el szeretné kerülni a díjakat, ha nem futnak feladatok, állítsa a minimális csomópontokat 0 értékre. Ezzel a beállítással az Azure Machine Tanulás megszüntethetik a csomópontok lefoglalását, ha nincsenek használatban. A 0-nál nagyobb értékek akkor is futtatják a csomópontok számát, ha nincsenek használatban.

A számítás automatikusan nulla csomópontra skáláz le, ha nincs használatban. A feladatok szükség szerinti futtatásához dedikált virtuális gépek jönnek létre.

Állandó Azure Machine-Tanulás számítási erőforrás Pythonban való létrehozásához adja meg a vm_size és max_nodes tulajdonságait. Az Azure Machine Tanulás ezután intelligens alapértelmezett értékeket használ a többi tulajdonsághoz.

  • vm_size: Az Azure Machine Tanulás Compute által létrehozott csomópontok virtuálisgép-családja.
  • max_nodes: Az automatikusan skálázható csomópontok maximális száma az Azure Machine Tanulás Compute-n végzett feladatok futtatásakor.

ÉRVÉNYES: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)

Az Azure Machine Tanulás Compute létrehozásakor több speciális tulajdonságot is konfigurálhat. A tulajdonságok lehetővé teszik egy rögzített méretű állandó fürt létrehozását, vagy egy meglévő Azure-beli virtuális hálózaton belül az előfizetésben. Részletekért tekintse meg az AmlCompute osztályt .

Figyelmeztetés:

A paraméter beállításakor location , ha a munkaterületétől vagy adattáraitól eltérő régióról van szó, nagyobb hálózati késés és adatátviteli költségek jelentkezhetnek. A késés és a költségek a fürt létrehozásakor és a rajta futó feladatok esetén fordulhatnak elő.

A számítási fürt költségeinek csökkentése

Dönthet úgy is, hogy alacsony prioritású virtuális gépeket használ a számítási feladatok egy részének vagy mindegyikének futtatásához. Ezek a virtuális gépek nem rendelkeznek garantált rendelkezésre állási garanciával, és használat közben előre ki vannak állítva. Újra kell indítania egy előre elkészített feladatot.

ÉRVÉNYES:Python SDK azureml v1

compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_D2_V2',
                                                            vm_priority='lowpriority',
                                                            max_nodes=4)

Felügyelt identitás beállítása

Az Azure Machine Tanulás számítási fürtök a felügyelt identitásokat is támogatják az Azure-erőforrásokhoz való hozzáférés hitelesítéséhez anélkül, hogy hitelesítő adatokat is beleszámítanának a kódba. A felügyelt identitásoknak két típusa létezik:

  • A rendszer által hozzárendelt felügyelt identitás közvetlenül az Azure Machine Tanulás számítási fürtön és számítási példányon engedélyezve van. A rendszer által hozzárendelt identitás életciklusa közvetlenül a számítási fürthöz vagy -példányhoz van kötve. A számítási fürt vagy példány törlésekor az Azure automatikusan törli a hitelesítő adatokat és az identitást a Microsoft Entra-azonosítóban.
  • A felhasználó által hozzárendelt felügyelt identitás egy önálló Azure-erőforrás, amely az Azure Managed Identity szolgáltatáson keresztül érhető el. A felhasználó által hozzárendelt felügyelt identitásokat több erőforráshoz is hozzárendelheti, és az a kívánt ideig megmarad. Ezt a felügyelt identitást előzetesen létre kell hozni, majd át kell adni identity_id kötelező paraméterként.

ÉRVÉNYES:Python SDK azureml v1

  • Felügyelt identitás konfigurálása a kiépítési konfigurációban:

    • Rendszer által hozzárendelt felügyelt identitás egy névvel ellátott munkaterületen 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)
      
    • Felhasználó által hozzárendelt felügyelt identitás, amely egy névvel ellátott munkaterületen lett létrehozva 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)
      
  • Felügyelt identitás hozzáadása egy meglévő, névvel ellátott számítási fürthöz cpu_cluster

    • Rendszer által hozzárendelt felügyelt identitás:

      # add a system-assigned managed identity
      cpu_cluster.add_identity(identity_type="SystemAssigned")
      
    • Felhasználó által hozzárendelt felügyelt identitás:

      # 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>'])
      

Megjegyzés:

Az Azure Machine Tanulás számítási fürtök csak egy rendszer által hozzárendelt identitást vagy több felhasználó által hozzárendelt identitást támogatnak, nem egyidejűleg.

Felügyelt identitás használata

Az alapértelmezett felügyelt identitás a rendszer által hozzárendelt felügyelt identitás vagy az első felhasználó által hozzárendelt felügyelt identitás.

A futtatás során két identitásalkalmazás létezik:

  1. A rendszer identitással állítja be a felhasználó tárolócsatlakoztatásait, tárolóregisztrációs adatbázisait és adattárait.

    • Ebben az esetben a rendszer az alapértelmezetten felügyelt identitást fogja használni.
  2. A felhasználó identitást alkalmaz az erőforrások elérésére egy elküldött futtatás kódjából

    • Ebben az esetben adja meg a hitelesítő adatok lekéréséhez használni kívánt felügyelt identitásnak megfelelő client_id .
    • Másik lehetőségként kérje le a felhasználó által hozzárendelt identitás ügyfélazonosítóját a DEFAULT_IDENTITY_CLIENT_ID környezeti változón keresztül.

    Például egy alapértelmezett felügyelt identitással rendelkező adattár jogkivonatának lekérése:

    client_id = os.environ.get('DEFAULT_IDENTITY_CLIENT_ID')
    credential = ManagedIdentityCredential(client_id=client_id)
    token = credential.get_token('https://storage.azure.com/')
    

Hibaelhárítás

Előfordulhat, hogy egyes felhasználók, akik az Azure Portalról hozták létre az Azure Machine Tanulás-munkaterületüket a GA-kiadás előtt, előfordulhat, hogy egyes felhasználók nem tudják létrehozni az AmlCompute-t az adott munkaterületen. Támogatási kérést kezdeményezhet a szolgáltatással szemben, vagy létrehozhat egy új munkaterületet a portálon vagy az SDK-on keresztül, hogy azonnal feloldhassa a letiltást.

Elakadt az átméretezésnél

Ha az Azure Machine Tanulás számítási fürt elakad a csomópont állapotának átméretezésénél (0 –> 0), ezt az Azure-erőforrás-zárolások okozhatják.

Az Azure lehetővé teszi, hogy zárolja az erőforrásokat, így azok nem törölhetők vagy csak olvashatók. Az erőforrás zárolása váratlan eredményekhez vezethet. Egyes műveletek, amelyek látszólag nem módosítják az erőforrást, valójában olyan intézkedéseket igényelnek, amelyeket a zárolás blokkol.

Az Azure Machine Tanulás esetén a munkaterület erőforráscsoportjának törlési zárolása megakadályozza az Azure ML számítási fürtök skálázási műveleteit. A probléma megoldásához javasoljuk, hogy távolítsa el a zárolást az erőforráscsoportból, és inkább alkalmazza azt a csoport egyes elemeire.

Fontos

Ne alkalmazza a zárolást a következő erőforrásokra:

Erőforrás neve Erőforrás típusa
<GUID>-azurebatch-cloudservicenetworksecurityggroup Hálózati biztonsági csoport
<GUID>-azurebatch-cloudservicepublicip Nyilvános IP-cím
<GUID>-azurebatch-cloudserviceloadbalancer Load balancer

Ezek az erőforrások a számítási fürttel való kommunikációra és olyan műveletek végrehajtására használhatók, mint a skálázás. Ha eltávolítja az erőforrás-zárolást ezekről az erőforrásokról, lehetővé kell tenni a számítási fürtök automatikus skálázását.

Az erőforrás-zárolással kapcsolatos további információkért lásd : Erőforrások zárolása a váratlan változások megelőzéséhez.

Következő lépések

Használja a számítási fürtöt a következő célokra: