资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

自定义代码

星河社区命令行工具(AI Studio CLI)

星河社区命令行工具(AI Studio CLI)是基于 aistudio_hub sdk 建立的管理工具,借助此工具,用户可以不受开发环境限制,方便快捷地提交模型训练任务,并通过模型产线完成日志监控、效果评估与在线部署。

在 AI 模型训练场景下,通常对 GPU 的要求较高,更大显存、更多卡数的计算资源配置对于提升模型训练的效率和质量至关重要。在 notebook 环境下,通常仅能使用单卡资源,网页端进行长时间的模型训练也可能会遇到页面关闭、浏览器崩溃等不稳定的情况,导致模型训练被迫中断。

通过星河社区命令行工具(AI Studio CLI)可以发起模型产线任务(后台任务),不依赖前端界面响应,调用 V100 32G 多卡集群资源(最多支持单机八卡),提升训练效率的同时保障了任务的稳定性,同时可以通过运行日志实时监控训练进度,训练结束后支持对结果目录下的文件进行评估、部署与单文件下载。

准备任务代码

星河社区命令行工具(AI Studio CLI)通过终端命令行的方式与星河社区模型产线交互,不限制用户的编程与调试环境。你可以选择云端开发环境 BML CodeLab,也可以选择本地 IDE 进行编程与调试。

注:任务运行镜像(paddle2.6_py3.10、paddle2.5_py3.10、paddle2.4_py3.7)分别对应 notebook 项目中的框架版本(pp2.6.0、pp2.5.2、pp2.4.0),方便用户在 notebook 镜像环境中调通脚本后,一行命令发布到模型产线进行模型训练。

模型训练相关的代码文件(小文件)需要整体放到一个文件夹下,通过 CLI 打包(zip包)上传,总体积不超过 50MB。在任务环境中,文件夹内的代码文件会被解压缩到根目录 /home/aistudio 下(不含文件夹),用户需要确保代码文件中含可执行脚本,并通过启动命令来控制代码运行。

大体积文件推荐使用数据集挂载的方式,自定义代码模型产线支持最多挂载3个数据集,只需要为 mount_dataset 传入 {dataset_id} 即可。dataset 文件会在启动任务时拉取到任务环境的 /home/aistudio/data 目录下,依据 {dataset_id} 分别存放对应的数据(与 notebook 项目存放逻辑一致),支持用户在任务环境中读取数据集参与模型训练。

此外,仅 /home/aistudio/output 目录下的文件会被持久化保存,并支持在产线运行结束后查看文件列表。需要保存的产出文件,请注意设置正确的保存路径哦。

总结一下,任务环境中的文件目录结构如下示例:

/home/aistudio               # 任务环境的根目录
├── data                     # 挂载数据的存储目录
│   ├── data264391           # 通过{dataset_id}区分
│   └── dataxxxxx            
├── output                   # 产出文件的保存路径,持久化存储
│   ├── log                  # 训练日志
│   ├── save_modelxxx        # 其他用户自定义的存储文件
│   └── ...
├── run.sh                   # 用户自定义的可执行脚本
├── requirments.txt          # (可选)声明环境依赖,通过可执行脚本完成安装
├── train.py                 # (可选)与模型训练相关的执行文件
└── ...                      # (可选)其他自定义文件等

可以看到,整个任务环境的自定义程度非常高,用户可以选择灵活的方式发起任务,设置运行环境,定义产出文件存储方式,并支持在评估环节对产出文件(/home/aistudio/output 目录下的文件)重新修改,支持把结果文件部署为在线服务。

请注意,模型产线对输出结果的总体积大小限制是100GB,文件数量限制是10000,超过限制任务会立即失败,建议用户在训练时保存必要文件,阶段性删除非必要文件。

使用 CLI 提交任务

用户认证

首次使用 AI Studio CLI 提交与管理任务,需要安装 aistudio-sdk 库,并通过 访问令牌 完成身份认证。

安装方式:

$ pip install --upgrade aistudio-sdk

认证方式:

$ aistudio config --token <yourToken>

任务提交

AI Studio CLI 的命令行结构如下:

$ aistudio submit job [flags]

参数详情:

参数 是否必填 功能介绍 类型 默认值
--name, -n 产线名称:最多64个字符,支持中英文、数字、下划线、中划线、点,且符号不能在首尾 String
--path, -p 任务代码本地路径(文件夹):文件夹内的文件总体积不超过50MB String
--cmd, -c 任务代码启动命令,建议使用 ' ' 包裹 String
--env, -e 飞桨框架版本:paddle2.6_py3.10;paddle2.5_py3.10;paddle2.4_py3.7 String paddle2.6_py3.10
--device, -d 硬件资源型号:当前仅支持 v100 String v100
--gpus, -g gpu数量:1,4,8 Int 1
--payment, -pay 计费方式:acoin-A币支付;coupon-算力点支付 String acoin
--mount_dataset, -m 数据集挂载:填写 {dataset_id},支持主站数据集挂载到任务盘(/home/aistudio/data),以便用户在任务中使用。单个任务最多挂载3个数据集 String none

使用示例:

$ aistudio submit job \
--name ppyoloe_MiniFashionPedia_gpu1 \
--path ./code_gpu1 \
--cmd 'sh run.sh' \
--payment coupon \
--gpus 1 \
--mount_dataset 264391

# 返回name, pipeline_id, status, create_time,url

用户脚本中可以使用挂载的数据:

######处理数据集######
tar -xf ./data/data264391/MiniFashionPedia.tar -C ./data
rm -rf ./data/data264391/MiniFashionPedia.tar

######拉取PaddleDetection开源代码,安装环境依赖######
git clone https://gitee.com/paddlepaddle/PaddleDetection
pip install -r ./PaddleDetection/requirements.txt -Uq

######启动单卡训练######
export CUDA_VISIBLE_DEVICES=0
python ./PaddleDetection/tools/train.py -c config.yml --eval

######启动多卡训练######
# export CUDA_VISIBLE_DEVICES=0,1,2,3
# python -m paddle.distributed.launch --gpus 0,1,2,3 ./PaddleDetection/tools/train.py -c config.yml --fleet --eval
上一篇
零代码产线
下一篇
通用目标检测产线使用文档