THUDM / Chinese-Transformer-XL

218 stars 36 forks source link

模型并行时加载checkpoint导致word embedding size不匹配 #3

Open Billijk opened 3 years ago

Billijk commented 3 years ago

作者你好,

我在尝试使用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

makeme-zgz commented 2 years ago

请问你成功地进行finetune或者pretrain了吗?@Billijk 我这边通过下载链接得到的checkpoint在加载的时候会有runtime error