管理 Azure 机器学习计算实例

适用范围:Azure CLI ml 扩展 v2(最新版)Python SDK azure-ai-ml v2(最新版)

了解如何管理 Azure 机器学习工作区中的计算实例

可将计算实例用作云中的完全配置、完全托管的开发环境。 对于开发和测试,还可将该实例用作训练计算目标。 计算实例可以并行运行多个作业,它有一个作业队列。 作为开发环境的计算实例不能与工作区中的其他用户共享。

本文介绍如何启动、停止、重启、删除计算实例。 若要了解如何创建计算实例,请参阅创建 Azure 机器学习计算实例

注意

本文将在后面的部分介绍 CLI v2。 如果你仍在使用 CLI v1,请参阅使用 CLI v1 创建 Azure 机器学习计算群集

先决条件

  • Azure 机器学习工作区。 有关详细信息,请参阅创建 Azure 机器学习工作区。 在存储帐户中,必须启用“允许存储帐户密钥访问”选项才能成功创建计算实例。

  • 机器学习服务的 Azure CLI 扩展 (v2)Azure 机器学习 Python SDK (v2)Azure 机器学习 Visual Studio Code 扩展

  • 如果使用 Python SDK,请使用工作区设置开发环境。 设置环境后,附加到 Python 脚本中的工作区:

    适用于:Python SDK azure-ai-ml v2(当前版本)

    运行此代码以连接到 Azure ML 工作区。

    替换下列代码中的订阅 ID、资源组名称和工作区名称。 若要查找这些值:

    1. 登录到 Azure 机器学习工作室

    2. 打开要使用的工作区。

    3. 在右上方的 Azure 机器学习工作室工具栏中,选择你的工作区名称。

    4. 将工作区、资源组和订阅 ID 的值复制到代码中。

    5. 如果在工作室中使用笔记本,则需要复制一个值、关闭该区域再粘贴该值,然后返回继续复制下一个值。

      # Enter details of your AML workspace
      "subscription_id = \"<SUBSCRIPTION_ID>
      "resource_group = \"<RESOURCE_GROUP>\
      "workspace = \"<AML_WORKSPACE_NAME>\
      
      # get a handle to the workspace
      from azure.ai.ml import MLClient
      from azure.identity import DefaultAzureCredential
      
      ml_client = MLClient(
          DefaultAzureCredential(), subscription_id, resource_group, workspace
      )
      

    ml_client 是用于管理其他资源和作业的工作区处理程序。

管理

启动、停止、重启和删除计算实例。 计算实例并不总是自动纵向缩减,因此请确保停止该资源以免产生费用。 停止计算实例会将其解除分配。 然后在需要时重启。 虽然停止计算实例将停止按计算小时数计费,但仍会对磁盘、公共 IP 和标准负载均衡器计费。

可以启用自动关闭以在指定时间后自动停止计算实例。

也可以为计算实例创建计划,以基于时间和星期几自动启动和停止。

提示

计算实例具有 120GB 的 OS 磁盘。 如果磁盘空间不足,则在停止或重启计算实例之前,使用终端可至少清空 1-2 GB 空间。 请勿通过从终端分发 sudo shutdown 来停止计算实例。 计算实例上的临时磁盘大小取决于所选 VM 大小,它装载在 /mnt 上。

适用于:Python SDK azure-ai-ml v2(当前版本)

在下例中,计算实例的名称存储在变量 ci_basic_name 中。

  • 获取状态

      from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
      # Get compute
      ci_basic_state = ml_client.compute.get(ci_basic_name)
    
  • 停止

      from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
      # Stop compute
      ml_client.compute.begin_stop(ci_basic_name).wait()
    
  • 开始

      from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
      # Start compute
      ml_client.compute.begin_start(ci_basic_name).wait()
    
  • 重启

      from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
      # Restart compute
      ml_client.compute.begin_restart(ci_basic_name).wait()
    
  • Delete

      from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
      ml_client.compute.begin_delete(ci_basic_name).wait()
    

使用 Azure RBAC 可以对工作区中的哪些用户能够创建、删除、启动、停止、重启计算实例进行控制。 充当工作区参与者和所有者角色的所有用户可以在整个工作区中创建、删除、启动、停止和重启计算实例。 但是,只有特定计算实例的创建者或分配的用户(如果该计算实例是以其名义创建的)可在该计算实例上访问 Jupyter、JupyterLab 和 RStudio。 一个计算实例专用于具有根访问权限的一个用户。 该用户有权访问实例上运行的 Jupyter/JupyterLab/RStudio。 计算实例具有单用户登录名,所有操作将使用该用户的身份进行 Azure RBAC 和试验作业的归属。 SSH 访问是通过公钥/私钥机制控制的。

可以通过 Azure RBAC 来控制这些操作:

  • Microsoft.MachineLearningServices/workspaces/computes/read
  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/computes/delete
  • Microsoft.MachineLearningServices/workspaces/computes/start/action
  • Microsoft.MachineLearningServices/workspaces/computes/stop/action
  • Microsoft.MachineLearningServices/workspaces/computes/restart/action
  • Microsoft.MachineLearningServices/workspaces/computes/updateSchedules/action

若要创建计算实例,需要以下操作的权限:

  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/checkComputeNameAvailability/action

审核和观察计算实例版本

部署计算实例后,不会自动更新该实例。 Microsoft 每月发布新的 VM 映像。 若要了解使用最新版本来保持最新状态的选项,请参阅漏洞管理

要对实例的操作系统版本是否为最新版本进行跟踪,可以使用 CLI、SDK 或 Studio UI 查询其版本。

适用于:Python SDK azure-ai-ml v2(当前版本)

from azure.ai.ml.entities import ComputeInstance, AmlCompute

# Display operating system version
instance = ml_client.compute.get("myci")
print instance.os_image_metadata

有关此示例中使用的类、方法和参数的详细信息,请参阅以下参考文档:

IT 管理员可以使用 Azure Policy 在 Azure Policy 合规性门户中跨工作区监视实例清单。 在 Azure 订阅或 Azure 管理组范围内分配内置策略审核具有过时操作系统的 Azure 机器学习计算实例

后续步骤