使用断点续训特性前,需要配置CheckPoint,用户可参见以下内容进行操作。
流程介绍
模型脚本需要适配之后才可以使用断点续训的“故障恢复”和“临终遗言”功能。可参考图 配置流程中的流程进行脚本适配。其中,配置CheckPoint保存和加载后即可实现断点续训的“故障恢复”功能。如果要使用断点续训特性中的“临终遗言”功能,则需要继续进行相关的脚本适配。
图1 配置流程
- 检查checkpoint是否保存,如果已保存,则执行3;否则执行2。
- 参考MindSpore官网教程,实现checkpoint的保存。
- 检查checkpoint是否可以加载,如果可以,则结束;否则执行4。
- 参考MindSpore官网教程,实现checkpoint的加载。
- 如果需要使用临终遗言功能,则继续参见脚本适配或脚本适配内容对脚本进行适配。
- 模型是否是混合并行,如果不是,则结束;如果是,则执行7。
- 如果需要开启恢复策略加载临终checkpoint功能,如果是,则执行8;如果不是,则结束。
- 参见基于Pangu_alpha模型的混合并行模型代码适配示例,进行恢复策略代码适配。
适配说明
此章节展示的代码为开源代码,其中涉及到的脚本(Python以及shell)需要设置相同的用户和用户组。出于安全的考虑,建议用户对其中的输入参数、文件目录、文件路径等信息进行校验。
输入参数校验项目包括但不限于:
- 涉及使用外部变量作为命令的一部分都进行严格的参数校验和防注入措施。
- 从环境变量中获取的外部变量在用于命令拼接之前都要做严格的校验和防注入措施。
- 所有的进程理应最小权限原则,避免由于注入导致严重后果。
- 代码中不存在直接使用外部变量作为命令。
- 遵守各类编程语言安全规范。
文件路径校验项目包括但不限于:
- 路径长度有做限制。
- 路径有做特殊字符过滤和防绕过机制。
- 不存在命令注入。
- 进程满足最小权限原则。
- 白名单之中不存在高危路径。
- 文件路径真实性有校验,有做抛异常处理。
- 命令注入是可控外部变量导致的非预期行为。
- 临终遗言和恢复策略只支持Python 3.7和Python 3.9版本。
- 脚本适配中,用户需要根据情况对异常进行捕捉并按照业务逻辑处理。