集成流程
断点续训提供故障发现、任务重调度等功能,当K8s集群中执行分布式训练任务发生故障时,可自动重调度和进行训练重启恢复。通过集成相关组件,可为第三方AI平台提供断点续训的能力。本文集成示例以Go编程语言作为实例,创建训练任务。
|
关键流程 |
操作步骤 |
说明 |
|---|---|---|
|
平台集成 |
安装部署 |
在云平台的K8s集群中安装并配置好集群调度组件或自行适配可替换的组件。 |
|
平台二次开发 |
|
|
|
准备任务 |
准备镜像 |
准备训练镜像。 |
|
适配脚本 |
完成训练脚本适配。 |
|
|
启动训练 |
创建任务 |
通过平台配置并创建任务。 |
|
运行任务 |
通过平台查看任务运行结果。 |
前提条件
平台集成
- 以下操作步骤中仅给出了部分示例代码,该代码不能直接使用。
- 以下操作步骤的整体逻辑,可以参见组件调用流程章节。
- 使用Ascend Operator的用户需要创建Ascend Job对象;使用HCCL Controller的用户需要创建Volcano Job对象。
- 芯片型号的数值可通过npu-smi info命令查询,返回的“Name”字段对应信息为芯片型号,下文的{xxx}即取“910”字符作为芯片型号数值。
- 安装部署。
- 创建ConfigMap。该ConfigMap以“rings-config-”开头,用于生成hccl配置信息,后面需要带上任务名,否则Volcano无法正确识别该ConfigMap。该ConfigMap创建时只需写入以下字段。
任务拉起后,会自动填充全量的任务rank信息到ConfigMap中
status :initializing
- 创建Job对象。开启重调度需要配置metedate.labels.fault-scheduling为force。分为以下Volcano Job和Ascend Job两种。
- 平台通过client-go调用K8s服务,创建步骤2生成的ConfigMap对象和步骤3生成的Job对象。
- 平台通过client-go调用k8s服务,查询任务部署状态信息。
集成后使用
平台用户在平台集成后使用断点续训的操作和示例可参考通过平台使用。
父主题: 集成指导