bojone / bert4keras

keras implement of transformers for humans
https://kexue.fm/archives/6915
Apache License 2.0
5.36k stars 927 forks source link

加载NEZHA预训练模型的疑问 #321

Open Copilot-X opened 3 years ago

Copilot-X commented 3 years ago

bug:

return CheckpointReader_GetTensor(self, compat.as_bytes(tensor_str)) tensorflow.python.framework.errors_impl.NotFoundError: Key bert/embeddings/position_embeddings not found in checkpoint

keras4bert加载nezha的预训练模型,出现上述错误;但是加载bert-base中文预训练模型却是可以执行;不知道是不是版本问题导致的; Verison: tensorflow: 1.15.1 keras4bert: 0.10.0 keras: 2.3.1

请问有知道这是什么问题导致?

bojone commented 3 years ago

这是没有理解bert4keras和nezha导致的。

nezha是跟bert不一样的预训练模型,怎么可以用一样的方式加载呢?你没有在某个地方声明这是nezha而不是bert,难道不觉得奇怪吗?

model = build_transformer_mdel(xxx, model='nezha')
Copilot-X commented 3 years ago

这是没有理解bert4keras和nezha导致的。

nezha是跟bert不一样的预训练模型,怎么可以用一样的方式加载呢?你没有在某个地方声明这是nezha而不是bert,难道不觉得奇怪吗?

model = build_transformer_mdel(xxx, model='nezha')

是的,上星期看了源码, 已经解决了这个问题了;但是还存在一个问题, 当加载ELECTRA模型的时候,也会存在类似上面的错误;model = build_transformer_mdel(xxx, model='electra') 版本信息: Verison: tensorflow: 1.15.1 keras4bert: 0.10.0 keras: 2.3.1, 苏老师,这是因为版本问题所致吗nezha bert这些模型能正常加载了

Copilot-X commented 3 years ago

这是没有理解bert4keras和nezha导致的。 nezha是跟bert不一样的预训练模型,怎么可以用一样的方式加载呢?你没有在某个地方声明这是nezha而不是bert,难道不觉得奇怪吗?

model = build_transformer_mdel(xxx, model='nezha')

是的,上星期看了源码, 已经解决了这个问题了;但是还存在一个问题, 当加载ELECTRA模型的时候,也会存在类似上面的错误;model = build_transformer_mdel(xxx, model='electra') 版本信息: Verison: tensorflow: 1.15.1 keras4bert: 0.10.0 keras: 2.3.1, 苏老师,这是因为版本问题所致吗nezha bert这些模型能正常加载了

是with_discriminator参数设置问题吗