You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Machine Learning上运行EAST及自定义PyTorch代码?

问题解答

1. 无需Jupyter Notebook,直接通过Azure SDK操作云端数据集并保存模型作业输出

完全可以脱离Jupyter Notebook,直接使用Azure Machine Learning Python SDK在本地终端或云端计算实例的命令行环境中完成操作,核心步骤如下:

  • 安装Azure ML SDK:
    pip install azure-ai-ml
    
  • 连接Azure ML工作区:
    先从Azure ML Studio工作区页面下载config.json文件,然后在代码中初始化连接:
    from azure.ai.ml import MLClient
    from azure.identity import DefaultAzureCredential
    
    # 方式一:通过config.json初始化
    ml_client = MLClient.from_config(DefaultAzureCredential())
    
    # 方式二:手动指定参数
    # ml_client = MLClient(
    #     DefaultAzureCredential(),
    #     subscription_id="你的订阅ID",
    #     resource_group_name="你的资源组名",
    #     workspace_name="你的工作区名"
    # )
    
  • 访问云端数据集:
    若数据集已在工作区注册,可直接获取并下载到本地计算环境:
    # 获取已注册的数据集
    dataset = ml_client.data.get(name="你的数据集名称", version="版本号")
    # 下载到本地指定路径
    dataset.download(target_path="./local_data_dir", overwrite=True)
    
  • 提交训练作业并保存模型输出:
    定义训练作业时,指定模型保存路径为./outputs(Azure ML会自动将该目录下的所有文件作为作业输出上传至工作区),示例代码:
    from azure.ai.ml import command
    from azure.ai.ml.entities import Environment, Data
    
    # 绑定云端数据集作为作业输入
    input_data = Data(path=dataset.path, type="uri_folder")
    
    # 指定PyTorch运行环境
    env = Environment(
        image="mcr.microsoft.com/azureml/openmpi4.1.0-pytorch1.9.0-cuda11.1-cudnn8-ubuntu20.04",
        name="pytorch-training-env"
    )
    
    # 定义训练作业
    job = command(
        code="./east-local-code",  # 本地EAST项目代码目录
        command="python train.py --data_dir ${{inputs.data}}",
        inputs={"data": input_data},
        environment=env,
        compute="你的计算集群名称",  # 比如预先创建的GPU集群
        outputs={"trained_model": "./outputs/"}
    )
    
    # 提交作业并实时查看日志
    returned_job = ml_client.jobs.create_or_update(job)
    ml_client.jobs.stream(returned_job.name)
    
    训练脚本中只需将模型文件写入./outputs目录,作业完成后即可在Azure ML Studio的作业详情页查看并下载模型输出。

2. 在Azure Machine Learning上运行PyTorch的方法

Azure ML原生支持PyTorch训练,主要通过以下两种环境配置方式实现:

方式一:使用预构建的PyTorch环境

Azure ML提供了官方维护的PyTorch环境,可直接在作业中引用,无需手动配置依赖:

from azure.ai.ml.entities import Environment

# 引用预注册的PyTorch环境(版本可根据需求调整)
env = Environment.get(ml_client, name="AzureML-pytorch-1.13-ubuntu20.04-py38-cuda11.6")

方式二:自定义PyTorch环境

如果需要特定版本的PyTorch或额外依赖,可编写conda.yml文件:

name: custom-pytorch-env
channels:
  - pytorch
  - conda-forge
dependencies:
  - python=3.8
  - pytorch=1.12.1
  - torchvision=0.13.1
  - cudatoolkit=11.3
  - pip:
      - opencv-python
      - tqdm

然后创建并注册自定义环境到工作区:

env = Environment(
    conda_file="./conda.yml",
    image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04",
    name="east-pytorch-env"
)
ml_client.environments.create_or_update(env)

提交PyTorch训练作业

不管使用预构建还是自定义环境,都可以通过CommandJob提交训练作业,核心逻辑和第一部分的作业提交一致:

  • 训练脚本中通过命令行参数读取输入数据集路径
  • 将训练好的模型写入./outputs目录,Azure ML会自动同步该目录到工作区的输出资产中

内容的提问来源于stack exchange,提问作者Ericson Willians

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 07:12:30