xiangking / ark-nlp

A private nlp coding package, which quickly implements the SOTA solutions.
Apache License 2.0
310 stars 65 forks source link

如何save,load 训练好的EfficientGlobalPointerBert 模型及Tokenizer 。 #39

Closed browserliu closed 2 years ago

browserliu commented 2 years ago

你好: 在 gobalpoint_bert.ipynb 中的 EfficientGlobalPointerBert 和 gobalpoint_bert 如何save,load 模型及Tokenizer 如何存储和读取训练模型? 直接save EfficientGlobalPointerBert; model.module; 均出错。

xiangking commented 2 years ago

目前框架中使用的还是torch保存权重的方式

本质上ark-nlp中model.module还是torch模型,所以支持torch的保存方式,如下(PS:下面的module便是ipynb中的dl_module):

# 保存模型的参数
torch.save(model.module.state_dict(), 'net_params.pth')

# 加载模型参数
module = Net()
module.load_state_dict(torch.load(PATH))

同时也支持transformers的保存格式:

# 保存模型bin
module.save_pretrained("PATH") # 注意,这里的PATH只要到保存文件夹名就行

至于Tokenizer暂未单独提供保存方式,可以使用pickle等就行保存,同时也支持使用transformers的方式进行保存:

# 保存transformers tokenizer
tokenizer.vocab.save_pretrained("PATH") # 注意,这里的PATH只要到保存文件夹名就行
paulpaulzhang commented 2 years ago

你好,我使用了这些保存方式,虽然成功保存,并且加载,但预测时似乎并没有调用加载的权重,f1在训练时eval很高,但单独加载模型eval时基本等于0,感觉权重没有被加载上

xiangking commented 2 years ago

cat2id是否有保持一致

wx15857152367

@. | 在2022年4月1日 @.> 写道:

你好,我使用了这些保存方式,虽然成功保存,并且加载,但预测时似乎并没有调用加载的权重,f1在训练时eval很高,但单独加载模型eval时基本等于0,感觉权重没有被加载上

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

paulpaulzhang commented 2 years ago

解决了,就是因为cat2id顺序变了,现在sort后结果已经正常,感谢!

xiangking commented 2 years ago

好的,也感谢使用和提issue

browserliu commented 2 years ago

收到,多谢。

YangFW commented 2 years ago

你好,我也遇到类似的问题,f1结果很好,但是保存模型参数重新加载后,再测试,结果很不行了,请问你具体是如何处理的呀

paulpaulzhang commented 2 years ago

对放有标签的set进行排序,sorted(set),然后再训练,推理

在 2022年8月22日,16:12,YangFW @.***> 写道:



你好,我也遇到类似的问题,f1结果很好,但是保存模型参数重新加载后,再测试,结果很不行了,请问你具体是如何处理的呀

— Reply to this email directly, view it on GitHubhttps://github.com/xiangking/ark-nlp/issues/39#issuecomment-1222004581, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJWTA634IMMST2VVSBPH7GLV2MY6JANCNFSM5RWCDBKA. You are receiving this because you commented.Message ID: @.***>

YangFW commented 2 years ago

你好,请问可以私加下你联系方式吗,我按照你这个方式排序后,没有效果,不知道是不是方式不对

paulpaulzhang commented 2 years ago

我是这个原因,其他的我就不太清楚了,训练跟推理需要用相同顺序的set,可以打印一下set看看是不是一样的顺序

在 2022年8月22日,16:54,YangFW @.***> 写道:



你好,请问可以私加下你联系方式吗,我按照你这个方式排序后,没有效果,不知道是不是方式不对

— Reply to this email directly, view it on GitHubhttps://github.com/xiangking/ark-nlp/issues/39#issuecomment-1222054184, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AJWTA63AYLZLLTNHDR5KLHLV2M52NANCNFSM5RWCDBKA. You are receiving this because you commented.Message ID: @.***>