更新时间:2023-05-05 GMT+08:00
分享

Runner

本小节介绍了基于算法开发套件进行算法的训练、测试和推理等阶段的相关参数。

其中,训练、测试支持单节点或多节点分布式运行,单节点分布式启动时只需给定local_size,即会在一个机器上启动多次算法脚本,从而实现单节点多进程;多节点分布式启动则需要在各个node上指定int_method(当前仅支持TCPmethod)、rank(节点序号)、world_size(节点数)、local_size(单节点进程数)。

启动ModelArt远程分布式作业时,仅需传递world_size和local_size参数,其余参数ModelArts平台会自动传递。

通过算法外壳启动分布式会给算法脚本传递如下分布式参数,其中rank和world_size分别表示总进程序号和总进程数,local_rank表示单节点进程序号,需要脚本自行解析和配置,配置方式可以参考领域套件代码。

--launcher=utility  # 分布式启动方法,基于算法外壳启动称为utility
--init_method=${init_method}  # TCP初始化方法,指定IP和Port
--rank=${rank}  # 总进程序号
--world_size=${world_size}  # 总进程数
--local_rank=${local_rank}  # 单节点进程序号
--local_size=${local_size}  # 单节点进程数

公共参数

- alg_type:表示使用的算法类型,继承Global参数。

- run_dir:表示runner的工作目录,继承Global参数。

- pipeline:表示不同算法管控模式构成的流水线,允许command传入`--pipeline mode1,mode2,...`进行覆盖。如train, evaluate,infer。

- pipeline_maps:表示算法支持的管控模式及其对应的算法入口脚本。

算法参数

- common_args:表示算法的共性参数,所有mode的算法参数会基于其进行update,不存在时默认为空字典。

- ${mode}_args:表示pipeline_maps中各mode对应的特性参数,在特定mode进行运行时,会和common_args进行组装(common_args.update(mode_args))以构成mode最终的参数,并且允许command传入算法的任意参数进行覆盖(通过argparse解析时的无法识别参数进行传递,因此不能与common_algorithm_utility的参数重叠)。

value为None时不传递,value为''(空字符串)时作为`store_arg`传递,采用`position_args=[arg1, arg2, ...]`的形式传递位置参数,采用`arg=[val1, val2, ...]`的形式传递列表参数。

远程训练参数

adapter:对算法运行过程中的所有环境切换、依赖安装、数据下载、结果上传等功能进行管理与实现。对本地启动远程作业的方式进行管控。

分享:

    相关文档

    相关产品