ZhuiyiTechnology / pretrained-models

Open Language Pre-trained Model Zoo
Apache License 2.0
986 stars 136 forks source link

pytorch加载simbert问题 #12

Closed Nipi64310 closed 3 years ago

Nipi64310 commented 3 years ago

hello 苏神 请问pytorch加载simbert问题。

直接用transformers的包加载,维度会不一致 image

看起来tf的权重是embedding部分多了一个linear层,torch版本没有这一层[bert/encoder/embedding_hidden_mapping_in/] image

为什么开源权重多了这部分,是不是,torch版本的model的embedding部分加上这个linear,然后加载即可。

Nipi64310 commented 3 years ago

torch版本的权重的 embedding的layernorm部分,size是d.state_dict()['embeddings.LayerNorm.weight'].size() torch.Size([312]) 开源的tf权重部分,size是 128

sorry, 上面2个图贴错了,实际上一个是tiny 312,一个是small 384的,出现的情况是一样的。

bojone commented 3 years ago

small版和tiny版的embedding层像albert一样用了低秩分解,base版本正常。应该是这个转换脚本可以考虑到低秩分解。