RoBERTa for Chinese, TensorFlow & PyTorch

项目主页:https://github.com/brightmart/roberta_zh

中文预训练RoBERTa模型

RoBERTa是BERT的改进版,通过改进训练任务和数据生成方式、训练更久、使用更大批次、使用更多数据等获得了State of The Art的效果;可以用Bert直接加载。

本项目是用TensorFlow实现了在大规模中文上RoBERTa的预训练,也会提供PyTorch的预训练模型和加载方式。

中文预训练RoBERTa模型-下载

** 推荐 RoBERTa-zh-Large 通过验证**

RoBERTa-zh-Large TensorFlow版本,Bert 直接加载

RoBERTa 24层版训练数据:30G原始文本,近3亿个句子,100亿个中文字(token),产生了2.5亿个训练数据(instance);

覆盖新闻、社区问答、多个百科数据等。

Roberta_l24_zh_base TensorFlow版本,Bert 直接加载

24层base版训练数据:10G文本,包含新闻、社区问答、多个百科数据等。

What is RoBERTa:

A robustly optimized method for pretraining natural language processing (NLP) systems that improves on Bidirectional Encoder Representations from Transformers, or BERT, the self-supervised method released by Google in 2018.RoBERTa, produces state-of-the-art results on the widely used NLP benchmark, General Language Understanding Evaluation (GLUE). The model delivered state-of-the-art performance on the MNLI, QNLI, RTE, STS-B, and RACE tasks and a sizable performance improvement on the GLUE benchmark. With a score of 88.5, RoBERTa reached the top position on the GLUE leaderboard, matching the performance of the previous leader, XLNet-Large.(Introduction from Facebook blog)

发布计划 Release Plan:

1、24层RoBERTa模型(roberta_l24_zh),使用30G文件训练, 9月8日

2、12层RoBERTa模型(roberta_l12_zh),使用30G文件训练, 9月8日

3、6层RoBERTa模型(roberta_l6_zh), 使用30G文件训练, 9月8日

4、PyTorch版本的模型(roberta_l6_zh_pytorch) 9月8日

5、30G中文语料,预训练格式,可直接训练(bert,xlent,gpt2) 9月14日或待定

6、测试集测试和效果对比 9月14日

效果测试与对比 Performance

自然语言推断:XNLI

注:RoBERTa_l24_zh,只跑了两次,Performance可能还会提升

Sentence Pair Matching (SPM): LCQMC

注:RoBERTa_l24_zh,只跑了一次,目前还不是最佳成绩。保存训练轮次和论文一致:

? 处地方,将会很快更新到具体的值

RoBERTa中文版 Chinese Version

本项目所指的中文预训练RoBERTa模型只指按照RoBERTa论文主要精神训练的模型。包括:

1、数据生成方式和任务改进:取消下一个句子预测,并且数据连续从一个文档中获得(见:Model Input Format and Next Sentence Prediction,DOC-SENTENCES)2、更大更多样性的数据:使用30G中文训练,包含3亿个句子,100亿个字(即token)。由新闻、社区讨论、多个百科,包罗万象,覆盖数十万个主题,所以数据具有多样性(为了更有多样性,可以可以加入网络书籍、小说、故事类文学、微博等)。3、训练更久:总共训练了近20万,总共见过近16亿个训练数据(instance); 在Cloud TPU v3-256 上训练了24小时,相当于在TPU v3-8(128G显存)上需要训练一个月。4、更大批次:使用了超大(8k)的批次batch size。5、调整优化器等超参数。

除以上外,本项目中文版,使用了全词mask(whole word mask)。在全词Mask中,如果一个完整的词的部分WordPiece子词被mask,则同属该词的其他部分也会被mask,即全词Mask。

本项目中并没有直接实现dynamic mask。通过复制一个训练样本得到多份数据,每份数据使用不同mask,并加大复制的分数,可间接得到dynamic mask效果。

中文全词遮蔽 Whole Word Mask

模型加载(以Sentence Pair Matching即句子对任务,LCQMC为例)

下载LCQMC数据集,包含训练、验证和测试集,训练集包含24万口语化描述的中文句子对,标签为1或0。1为句子语义相似,0为语义不相似。

tensorFlow版本:

1、复制本项目: git clone https://github.com/brightmart/roberta_zh2、进到项目(roberta_zh)中。假设你将RoBERTa预训练模型下载并解压到该改项目的roberta_zh_large目录,即roberta_zh/roberta_zh_large运行命令:export BERT_BASE_DIR=./roberta_zh_large
export MY_DATA_DIR=./data/lcqmc
python run_classifier.py \--task_name=lcqmc_pair \--do_train=true \--do_eval=true \--data_dir=$MY_DATA_DIR \--vocab_file=$BERT_BASE_DIR/vocab.txt \--bert_config_file=$BERT_BASE_DIR/bert_config_large.json \--init_checkpoint=$BERT_BASE_DIR/roberta_zh_large_model.ckpt \--max_seq_length=128 \--train_batch_size=64 \--learning_rate=2e-5 \--num_train_epochs=3 \--output_dir=./checkpoint_lcqmc注:task_name为lcqmc_pair。这里已经在run_classifier.py中的添加一个processor,并加到processors中,用于指定做lcqmc任务,并加载训练和验证数据。

PyTorch加载方式,先参考issue 9;将很快提供更具体方式。

Learning Curve 学习曲线

If you have any question, you can raise an issue, or send me an email: brightmart@hotmail.com

项目贡献者,还包括:

skyhawk1990


本项目受到 TensorFlow Research Cloud (TFRC) 资助 / Project supported with Cloud TPUs from Google's TensorFlow Research Cloud (TFRC)

Reference

1、RoBERTa: A Robustly Optimized BERT Pretraining Approach

2、Pre-Training with Whole Word Masking for Chinese BERT

3、BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

4、LCQMC: A Large-scale Chinese Question Matching Corpus

?

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

▽ 点击 | 阅读原文 | 访问项目主页

RoBERTa中文预训练模型:RoBERTa for Chinese相关推荐

  1. ACL 2021 | ChineseBERT:香侬科技提出融合字形与拼音信息的中文预训练模型

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 转载自:PaperWeekly 中文预训练模型 自 BERT 以来, ...

  2. 【ACL2021】ChineseBERT:香侬科技提出融合字形与拼音信息的中文预训练模型

    点击下面卡片,关注我呀,每天给你送来AI技术干货! 来自:PaperWeekly 中文预训练模型 自 BERT 以来,大规模预训练模型已成为自然语言处理研究的一大重点,无论是训练更大的模型,如 BER ...

  3. 天池NLP中文预训练模型赛来了!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale赛事 主办单位:阿里云,CLUE,乐言科技 自从2017年具有划时代意义的Tr ...

  4. bert中文预训练模型_HFL中文预训练系列模型已接入Transformers平台

    哈工大讯飞联合实验室(HFL)在前期陆续发布了多个中文预训练模型,目前已成为最受欢迎的中文预训练资源之一.为了进一步方便广大用户的使用,借助Transformers平台可以更加便捷地调用已发布的中文预 ...

  5. bert 中文 代码 谷歌_ELECTRA中文预训练模型开源,110个参数,性能媲美BERT

    感谢参考原文-http://bjbsair.com/2020-03-27/tech-info/7050/ 在去年11月份,NLP大神Manning联合谷歌做的ELECTRA一经发布,迅速火爆整个NLP ...

  6. 常用的中文预训练模型、预训练词向量下载地址收藏

    中文预训练模型下载 原版:https://huggingface.co/models Google原版bert:https://github.com/google-research/bert 中文XL ...

  7. 【论文泛读】ChineseBERT:融合字形与拼音信息的中文预训练模型

    本次分享的论文ChineseBERT来自于ACL 2021会议,论文全名为ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin I ...

  8. 登顶CLUE榜单,腾讯云小微与腾讯AI Lab联合团队提出基于知识的中文预训练模型...

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 2018年以来,以BERT.GPT等为代表的大规模预训练模型,带来了 ...

  9. 中文预训练模型ZEN开源,效果领域内最佳,创新工场港科大出品

    允中 发自 凹非寺  量子位 报道 | 公众号 QbitAI 改进策略简单有效.收敛速度快,同时小数据效果出色. 这就是中文预训练模型ZEN. 在中文任务中,ZEN不仅性能优于BERT,也比之前中文预 ...

最新文章

  1. httpd中工作模型的比较
  2. 11种常见SQLMAP使用方法详解
  3. 在创建的Silverlight Control中使用图片
  4. printf 指针地址_c语言入门 第十四章指针
  5. heartbeat 日志分析
  6. 一般一个前端项目完成需要多久_制作分销小程序最快要多久
  7. Android之多线程断点下载
  8. 【BZOJ5082】弗拉格 矩阵乘法
  9. Java自学知识点_良心_精心整理
  10. QTP基础教程(讲义)《软件测试技术》
  11. 初识 Speex 语音压缩
  12. python黑魔法指南_python黑魔法
  13. 常用Word 排版要求
  14. 广东惠州港口吞吐量稳中有升
  15. 安徽省2019c语言二级答案,安徽省计算机等级二级考试真题C语言.doc
  16. 【Shader】基于图像的光照(Image Based Lighting,IBL)
  17. linux7 ppt,Linux_7_.ppt
  18. for循环实现的一些例子
  19. Linux 获取磁盘唯一ID方式
  20. IOS 发布被拒 PLA 1.2问题 整个过程介绍 03 个人账户升级公司账户

热门文章

  1. dos命令在vba中应用
  2. centos7安装redis的正确姿势
  3. Kali Linux虚拟机安装完整安装过程及简单配置(视频)
  4. C# SHA1散列算法
  5. 一个最为简单的jquery 分页实现方法!可以用用于理解js分页的原理。
  6. iOS获取缓存文件的大小并清除缓存
  7. java method 创建_java中创建对象的5种方式
  8. php和python和javascript_Node.js与PHP、Python的字符处理性能对比
  9. 分布式mysql保持数据一致性_一种分布式跨数据库保持事务一致性的方法及系统与流程...
  10. java是如何写入文件的