全部产品
Search
文档中心

人工智能平台 PAI:DLC MNIST训练最佳实践

更新时间:Jul 22, 2026

AutoML支持使用DLC计算资源进行超参数调优。本方案采用PyTorch框架训练MNIST手写数字识别模型,提供单机、分布式和嵌套参数三种训练模式,自动搜索最优超参数组合。

前提条件

步骤一:创建数据集

  1. 将脚本文件mnist.py上传到已创建的OSS Bucket存储空间中。具体操作,请参见控制台快速入门。

  2. 创建OSS类型的数据集,用于存储超参数调优实验生成的数据文件。具体操作,请参见创建及管理数据集。

    其中关键参数说明如下,其他参数使用默认配置:

    • 数据集名称:自定义数据集名称。

    • 选择数据存储:选择脚本文件所在的OSS存储目录。

    • 属性:选择文件夹。

步骤二:新建实验

进入新建实验页面,配置以下关键参数,其他参数详情请参见新建实验。配置完成后,单击提交。

  1. 设置执行配置。

    本方案提供单机训练、分布式训练以及嵌套参数训练三种方式,选择其中一种即可。

    执行配置中,任务类型选择DLC;资源组选择公共资源组;框架选择PyTorch;数据集选择test_automl;节点镜像选择PAI平台镜像,镜像为pytorch-training:1.12pai-gpu-py38-cu113-ubuntu20.04;机器规格选择CPU,规格为16vCPU+64GB Mem ecs.g6.4xlarge;节点数量为1;节点启动命令为python3 /mnt/data/mnist.py --save_model=/mnt/data/examples/search/model/model_${exp_id}_${trial_id} --batch_size=${batch_size} --lr=${lr};超参数包含batch_size(choice类型,搜索空间[16,32,64])和lr(choice类型,搜索空间[0.0001,0.001,0.01])。

    单机训练参数配置说明

    参数

    描述

    任务类型

    选择DLC。

    资源组

    选择公共资源组。

    框架

    选择PyTorch。

    数据集

    选择步骤一中已创建的数据集。

    节点镜像

    选择PAI平台镜像 > pytorch-training:1.12PAI-gpu-py38-cu113-ubuntu20.04。

    机器规格

    选择CPU > ecs.g6.4xlarge。

    节点数量

    设置为1。

    启动命令

    配置为python3 /mnt/data/mnist.py --save_model=/mnt/data/examples/search/model/model_${exp_id}_${trial_id} --batch_size=${batch_size} --lr=${lr}。

    超参数

    • batch_size

      • 约束类型:选择choice。

      • 搜索空间:单击image.png,增加3个枚举值,分别为16,32和64。

    • lr

      • 约束类型:选择choice。

      • 搜索空间:单击image.png,增加3个枚举值,分别为0.0001、0.001和0.01。

    使用上述配置可以生成9种超参数组合,后续实验会分别为每种超参数组合创建一个Trial,在每个Trial中使用一组超参数组合来运行脚本。

    执行配置中,任务类型选择DLC,资源组选择公共资源组,框架选择PyTorch,数据集选择test_automl,节点镜像选择PAI平台镜像 pytorch-training:1.12pai-gpu-py38-cu113-ubuntu20.04,机器规格选择CPU 16vCPU+64GB Mem(ecs.g6.4xlarge),节点数量设为3。节点启动命令使用 python -m torch.distributed.launch 进行分布式训练,命令中引用 $MASTER_ADDR 等环境变量及 ${batch_size}、${lr} 超参数占位符。底部超参数表格中,batch_size 约束类型为choice,搜索空间为 [16,32,64];lr 约束类型为choice,搜索空间为 [0.0001,0.001,0.01]。

    分布式训练参数配置说明

    参数

    描述

    任务类型

    选择DLC。

    资源组

    选择公共资源组。

    框架

    选择PyTorch。

    数据集

    选择步骤一中已创建的数据集。

    节点镜像

    选择PAI平台镜像 > pytorch-training:1.12PAI-gpu-py38-cu113-ubuntu20.04。

    机器规格

    选择CPU > ecs.g6.4xlarge。

    节点数量

    设置为3。

    启动命令

    配置为python -m torch.distributed.launch --master_addr=$MASTER_ADDR --master_port=$MASTER_PORT --nproc_per_node=1 --nnodes=$WORLD_SIZE --node_rank=$RANK /mnt/data/mnist.py --data_dir=/mnt/data/examples/search/data --save_model=/mnt/data/examples/search/pai/model/model_${exp_id}_${trial_id} --batch_size=${batch_size} --lr=${lr}。

    超参数

    • batch_size

      • 约束类型:选择choice。

      • 搜索空间:单击image.png,增加3个枚举值,分别为16、32和64。

    • lr

      • 约束类型:选择choice。

      • 搜索空间:单击image.png,增加3个枚举值,分别为0.0001、0.001和0.01。

    使用上述配置可以生成9种超参数组合,后续实验会分别为每种超参数组合创建一个Trial,在每个Trial中使用一组超参数组合来运行脚本。

    执行配置表单中,任务类型选择DLC,资源组选择公共资源组,框架选择PyTorch,数据集选择test_automl,节点镜像选择PAI平台镜像 pytorch-training:1.12pai-gpu-py38-cu113-ubuntu20.04,机器规格选择CPU 16vCPU+64GB Mem ecs.g6.4xlarge,节点数量设为1。节点启动命令填写 python3 /mnt/data/mnist.py 及相关参数。超参数表格中添加两行:nested_params约束类型为choice,搜索空间为嵌套JSON配置;gamma约束类型为choice,搜索空间为[0.8,0.7,0.9]。

    嵌套参数训练参数配置说明

    参数

    描述

    任务类型

    选择DLC。

    资源组

    选择公共资源组。

    框架

    选择PyTorch。

    数据集

    选择步骤一中已创建的数据集。

    节点镜像

    选择PAI平台镜像 > pytorch-training:1.12PAI-gpu-py38-cu113-ubuntu20.04。

    机器规格

    选择CPU > ecs.g6.4xlarge。

    节点数量

    设置为1。

    启动命令

    配置为python3 /mnt/data/mnist.py --save_model=/mnt/data/examples/search/pai/model/model_${exp_id}_${trial_id} --batch_size=${nested_params}.{batch_size} --lr=${nested_params}.{lr} --gamma=${gamma}。

    超参数

    • nested_params

      • 约束类型:选择choice。

      • 搜索空间:单击image.png,增加2个枚举值,分别为{"_name":"large","{lr}":{"_type":"choice","_value":[0.02,0.2]},"{batch_size}":{"_type":"choice","_value":[256,128]}}和{"_name":"small","{lr}":{"_type":"choice","_value":[0.01,0.1]},"{batch_size}":{"_type":"choice","_value":[64,32]}}。

    • gamma

      • 约束类型:选择choice。

      • 搜索空间:单击image.png,增加3个枚举值,分别为0.8、0.7和0.9。

    使用上述配置可以生成9种超参数组合,后续实验会分别为每种超参数组合创建一个Trial,在每个Trial中使用一组超参数组合来运行脚本。

  2. 设置Trial配置。

    参数

    描述

    优化指标

    指标类型

    选择stdout。表示最终指标从运行过程中的stdout中提取。

    计算方式

    选择best。

    指标权重

    配置如下:

    • key:validation: accuracy=([0-9\\.]+)。

    • Value:1。

    指标来源

    命令关键字配置为cmd1。

    优化方向

    选择越大越好。

    模型存储路径

    设置为保存模型的OSS路径。本方案配置为oss://examplebucket/examples/model/model_${exp_id}_${trial_id}。

  3. 设置搜索配置。

    参数

    描述

    搜索算法

    选择TPE。算法详情说明,请参见支持的搜索算法。

    最大搜索次数

    配置为3。表示该实验允许运行的最多Trial个数为3个。

    最大并发量

    配置为2。表示该实验允许并行运行的最多Trial个数为2个。

    开启earlystop

    打开开关。如果一个Trial在评估一组特定的超参数组合时发现效果明显很差,则会提前终止该Trial的评估过程。

    start step

    配置为5。表示该Trial在最早执行完5次评估后,可以决定是否提前停止。

步骤三:查看实验详情和运行结果

  1. 在实验列表中,单击目标实验名称,进入实验详情页面。页面包含基本配置、Trial状态统计、Trial配置和搜索配置四个区域。实验根据搜索算法和最大搜索次数自动创建3个Trial。

  2. 单击Trial列表,查看所有Trial的执行状态、最终指标和超参数组合。

相关文档