lightseq
lightseq copied to clipboard
有什么方法将fairseq transformer的weight 转换为 lightseq transformer的weight?
在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 对不上。