lightseq icon indicating copy to clipboard operation
lightseq copied to clipboard

有什么方法将fairseq transformer的weight 转换为 lightseq transformer的weight?

Open MeJerry215 opened this issue 1 year ago • 0 comments

在fairseq中的weight都是单个op的weight,而在ligthseq中可能是融合了整层的参数,所以如何将这些整层的参数对应上?让我能够直接用到fairseq中已经训练好的weigth。

比如如下是ls中的weight信息

dict_keys(['encoder.embed_tokens.para', 'encoder.layers.0.para', 'encoder.layers.1.para', 'encoder.layers.2.para', 'encoder.layers.3.para', 'encoder.layers.4.para', 'encoder.layers.5.para', 'encoder.layer_norm.weight', 'encoder.layer_norm.bias', 'decoder.embed_tokens.para', 'decoder.layers.0.para', 'decoder.layers.1.para', 'decoder.layers.2.para', 'decoder.layers.3.para', 'decoder.layers.4.para', 'decoder.layers.5.para', 'decoder.layer_norm.weight', 'decoder.layer_norm.bias', 'decoder.output_projection.clip_max'])

选择其中的decoer.layer.5 预期对应的weight应该是 fairseq中的

['decoder.layers.5.self_attn.in_proj_weight', 'decoder.layers.5.self_attn.in_proj_bias', 'decoder.layers.5.self_attn.out_proj.weight', 'decoder.layers.5.self_attn.out_proj.bias', 'decoder.layers.5.encoder_attn.in_proj_weight', 'decoder.layers.5.encoder_attn.in_proj_bias', 'decoder.layers.5.encoder_attn.out_proj.weight', 'decoder.layers.5.encoder_attn.out_proj.bias', 'decoder.layers.5.fc1.weight', 'decoder.layers.5.fc1.bias', 'decoder.layers.5.fc2.weight', 'decoder.layers.5.fc2.bias', 'decoder.layers.5.layer_norms.0.weight', 'decoder.layers.5.layer_norms.0.bias', 'decoder.layers.5.layer_norms.1.weight', 'decoder.layers.5.layer_norms.1.bias', 'decoder.layers.5.layer_norms.2.weight', 'decoder.layers.5.layer_norms.2.bias']

但是我把这些weight size相加之后,得到的size 对不上。

MeJerry215 avatar Mar 07 '23 11:03 MeJerry215