开源啦!开源啦!UNILM中文模型开源啦!

帅比萌擦擦* 提交于 2020-08-07 09:07:17

本着一颗开源之心,我司开源了中文版的base_unilm模型。

链接地址如下https://github.com/YunwenTechnology/Unilm

UniLM论文全名为Unified Language Model Pre-training for Natural Language Understanding and Generation,译为自然语言理解与生成的统一预训练语言模型,来自于微软研究院。

论文地址:paper

UniLM模型之所以强大,是因为它既可以应用于自然语言理解(NLU)任务,又可以应用于自然语言生成(NLG)任务。结构与BERT一致,是由一个多层Transformer网络构成,通过修改训练时的Mask矩阵,使模型拥有更多的能力。详细论文解读如下:

刘聪NLP:UniLM论文阅读笔记zhuanlan.zhihu.com图标

Pre-train

预训练数据:CLUE中的维基百科数据和新闻语料数据,链接:github

训练参数:在模型预训练过程中,在一个训练batch中,使用1/3的数据进行双向语言模型优化,1/3的数据进行序列到序列语言模型优化,1/6的数据进行从左向右的单向语言模型优化,1/6的数据进行从右向左的单向语言模型优化。

模型结构与BERT-base模型一致,由一个12层768隐藏节点和12个头的Transformer编码器组成,并由训练好的BERT-base模型初始化参数。token掩码的概率为15%,在被掩掉的token中,有80%使用[MASK]替换,10%使用字典中随机词进行替换,10%保持越来token不变,与BERT模型一致。此外,在80%的情况下,每次随机掩掉一个token,在剩余的20%情况下,掩掉一个二元token组或三元token组。

学习率是3e-5,最大长度是512,batch_size大小是80。共训练为16.4万步。使用4张Nvidia Telsa V100 16GB GPU卡,通过混合精度训练。

Fine-tune

如何使用该模型进行NLU任务?
可以直接使用BERT代码,只需加载unilm的model、config、vocab即可。

如何使用该模型进行NLG任务?


nohup python3 -u run_seq2seq.py --data_dir /data/unilm/data_file/ --src_file train_data.json --model_type unilm --model_name_or_path /data/unilm/yunwen_unilm/ --output_dir /data/unilm/output_dir/ --max_seq_length 512 --max_position_embeddings 512 --do_train --do_lower_case --train_batch_size 32 --learning_rate 1e-5 --num_train_epochs 3 > log.log 2>&1 &

详细代码见GitHub

python3 -u decode_seq2seq.py --model_type unilm --model_name_or_path /data/unilm/yunwen_unilm/ --model_recover_path /data/unilm/output_dir/model.bin --max_seq_length 512 --input_file /data/unilm/data_file/test.json --output_file /data/unilm/data_file/predict_.json --do_lower_case --batch_size 32 --beam_szie 5 --max_tgt_length 128

注:根据论文,在NLU任务时,type_token_id为[0,1];在NLG任务时,type_token_id为[4,5]。

Test-Result

在CLUE中的部分分类数据集和阅读理解数据集上进行了简单测试,具体效果如下:

对CLUE中新闻摘要数据,训练了摘要模型,并进行的简单的测试,具体效果如下:

具体生成的摘要如下:

标准摘要:

生成摘要:

认为有帮助的同学,可以star呦~~~~~



广告时间,哈哈哈哈。

推荐几篇文章:

刘聪NLP:智能扩充机器人的“标准问”库之Query生成

刘聪NLP:短文本相似度算法研究

喜欢的同学,可以关注一下专栏,关注一下作者,还请多多点赞~~~~~~

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!