我们首先把 initialize_model_parallel 代码摘录出来。initialize_model_parallel 作用就是对模型进行分组,然后初始化进程组相关的各种全局变量。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 def initialize_model_parallel(tensor_model_parallel_size_=1, pipeline_model_parallel_size_=1, virtual_pipeline_mod...
在_initialize_distributed()里,它会调用mpu.initialize_model_parallel()来设定并行策略: mpu.initialize_model_parallel(args.tensor_model_parallel_size,args.pipeline_model_parallel_size,args.virtual_pipeline_model_parallel_size,args.pipeline_model_parallel_split_rank,...) 你可以把initialize_megatron()看作...
b.通过调用mpu.initialize_model_parallel()来初始化分布式训练环境中的数据并行(DP)、张量并行(TP)、和流水线并行(PP)的分组,如下图。 mpu.initialize_model_parallel()的入参解释如下: tensor_model_parallel_size:张量并行的大小。 pipeline_model_parallel_size:流水线并行的大小。 virtual_pipeline_model_paralle...
我们首先把 initialize_model_parallel 代码摘录出来。initialize_model_parallel 作用就是对模型进行分组,然后初始化进程组相关的各种全局变量。 definitialize_model_parallel(tensor_model_parallel_size_=1, pipeline_model_parallel_size_=1, virtual_pipeline_model_parallel_size_=None, pipeline_model_parallel_split...
_initialize_distributed#pytorch里的get_world_size 返回的是gpu总卡数初始化torch.distributedmpu.initialize_model_parallel (并行设置,核心函数)#RankGenerator:在每块GPU上启动一个进程(process),每个进程独立执行自己所维护的那部分模型的计算,实现并行训练 存储tp/pp/dp/ep/cp 各种并行度配置大小. 并且能够从 tp...
initialize_model_parallel 方法用来设置模型并行,所以我们接下来就具体分析。 2.1 全局变量 因为前文_initialize_distributed之中调用了torch.distributed.init_process_group 初始化分布式环境,所以我们知道,每个进程都有自己的 gloabl rank 和 local rank,都有自己的全局变量。
在实现这一策略时,主要代码位于Megatron-LM/megatron/training/initialize.py文件中的initialize_megatron函数,核心在于_initialize_distributed()函数。这个函数利用mpu.initialize_model_parallel方法来划分各个进程组。具体的组划分逻辑通过RankGenerator类实现。分组策略包括数据并行、张量+专家并行等多种方式。
utils.zero_to_fp32 import load_state_dict_from_zero_checkpoint fp32_model = load_state_dict_from_zero_checkpoint(deepspeed.module, checkpoint_dir) 请注意,该模型适合保存,但不再适合继续训练,并且需要重新执行deepspeed.initialize()。如果你只想要state_dict,可以执行以下操作: 代码语言:javascript 代码...
回pretrain函数,它的第一行就通过initialize_megatron执行了分布式初始化: defpretrain( train_valid_test_dataset_provider, model_provider, forward_step_func, valid_forward_step_func=None, extra_args_provider=None, args_defaults={}, ):initialize_megatron( ...
在`_initialize_distributed`函数中,通过将`args.expert_model_parallel`参数传入`initialize_model_parallel`函数,进一步实现了MoE的并行化。在`megatron/core/parallel_state.py`文件中,可以看到一个名为`_TENSOR_AND_EXPERT_PARALLEL_GROUP`的变量,它与`_TENSOR_MODEL_PARALLEL_GROUP`类似,用于指定...