Open Billijk opened 3 years ago
作者你好,
我在尝试使用change_mp.py将checkpoint拆分之后使用模型并行,但是在加载模型时提示word embedding大小不匹配。读过代码之后发现代码会在加载模型时将词表大小pad到某个数的整数倍(以提高计算效率),这个数是args.make_vocab_size_divisible_by * mpu.get_model_parallel_world_size(),因此MP改变时词表大小也会改变,导致无法正常加载模型参数。
args.make_vocab_size_divisible_by * mpu.get_model_parallel_world_size()
https://github.com/THUDM/Chinese-Transformer-XL/blob/0e702e4c9041a21d0d03b0372b26064467e021b0/pretrain_gpt2.py#L669-L677
一个temporary fix是将这里671行的multiple变量固定成args.make_vocab_size_divisible_by。
multiple
args.make_vocab_size_divisible_by
请问你成功地进行finetune或者pretrain了吗?@Billijk 我这边通过下载链接得到的checkpoint在加载的时候会有runtime error
作者你好,
我在尝试使用change_mp.py将checkpoint拆分之后使用模型并行,但是在加载模型时提示word embedding大小不匹配。读过代码之后发现代码会在加载模型时将词表大小pad到某个数的整数倍(以提高计算效率),这个数是
args.make_vocab_size_divisible_by * mpu.get_model_parallel_world_size()
,因此MP改变时词表大小也会改变,导致无法正常加载模型参数。https://github.com/THUDM/Chinese-Transformer-XL/blob/0e702e4c9041a21d0d03b0372b26064467e021b0/pretrain_gpt2.py#L669-L677
一个temporary fix是将这里671行的
multiple
变量固定成args.make_vocab_size_divisible_by
。