-
Notifications
You must be signed in to change notification settings - Fork 641
自定义任务模板
栾鹏 edited this page Feb 2, 2024
·
1 revision
- job-template # job模板合计
- $job_template_name # 自定义模板
- src # 项目代码
- build.sh # job镜像构建过程
- Dockerfile # 构建所需的Dockerfile
- readme.md # 使用方法,规定格式定义
可参照ray目录下的模板格式
1、 统一的构建脚本 sh job/$job_template_name/build.sh
2、 Dcokerfile文件定义镜像构建过程,构建路径为当前路径
不关注代码的实现,只要最终形成docker即可,镜像的输入参数统一为字符串
建议镜像的tag使用日期
ccr.ccs.tencentyun.com/cube-studio/$image_name:$image_tag
在 Cube Stdio页面上,训练->任务模板->添加按钮
在 Cube Stdio页面上,训练->仓库、镜像。先注册完仓库和镜像,再注册任务模板。
1、模板的名称和描述:会显示在pipeline编排界面
2、模板版本: release版本的模板才会出现在pipeline编排界面
3、目录和启动命令:会覆盖Dockerfile中的启动目录和命令,比如Dockerfile中未定义启动命令,或多个模板使用同一个镜像时为了实现不同的功能配置不同的启动命令
4、挂载目录:会为使用此模板的任务自动添加此挂载配置。比如
kubeflow-user-workspace(pvc):/mnt pvc的挂载方式,会自动在pvc下挂载个人子目录
/data/k8s/kubeflow/pipeline/workspace/xxxx(hostpath):/mnt 挂载主机目录的方式
4G(memory):/dev/shm 内存挂载为磁盘的书写方式
kubernetes-config(configmap):/root/.kube 挂载configmap成文件夹
5、启动参数编写实例
{
"group1":{ # 属性分组,仅做web显示使用
"attr1":{ # 属性名
"type":"str", # int,str,text,bool,enum,float,multiple,date,datetime,file,dict,list
"item_type": "", # 在type为enum,multiple,list时每个子属性的类型
"label":"属性1", # 中文名
"require":1, # 是否必须
"choice":[], # type为enum/multiple时,可选值
"range":"$min,$max", # 最小最大取值,在int,float时使用,包含$min,但是不包含$max
"default":"", # 默认值
"placeholder":"", # 输入提示内容
"describe":"这里是这个字段的描述和备注",
"editable":1 # 是否可修改
},
"attr2":{
...
}
},
"group2":{
}
}
6、环境变量:会为基于此模板的任务运行时均添加该环境变量。 同时可以通过一些特殊的环境变量来控制任务配置。
模板中特殊的环境变量
NO_RESOURCE_CHECK=true 使用该模板的task不会进行资源配置的自动校验
TASK_RESOURCE_CPU=4 使用该模板的task 忽略用户的资源配置,cpu固定配置资源为4核
TASK_RESOURCE_MEMORY=4G 使用该模板的task 忽略用户的资源配置,mem固定配置资源为4G
TASK_RESOURCE_GPU=0 使用该模板的task 忽略用户的资源配置,gpu固定配置资源为0卡
7、k8s账号:表示此类任务运行时所附带的k8s账号,主要是此类任务要启动一个分布式的pod集群,用来进行分布式数据处理或训练。
8、扩展:扩展是json格式,index用来控制在同一分组中,排序的位置,help_url用来表示此类模板的帮助文档
{
"index": 1,
"help_url": "https://github.com/tencentmusic/cube-studio/tree/master/job-template/job/pytorch"
}
参照页面上的说明