极简 BERT 预训练

2020 年 2 月 29 日 AINLP

HuggingFace  🤗 造福大家已经不是第一次了,前不久放出预处理工具 Tokenizers,然后写了篇博客,让预训练模型彻底成了傻瓜式。

自己试用了一下,就简单的把这部分抽了出来。

地址:https://github.com/andy-yangz/easy_bert_pretrain

顺便写写使用感想。

Tokenizers

主要是将之前 Transformers 库里面关于 Tokenizer 的一些代码直接抽出来,加上训练各种 Tokenize 策略的代码,然后用 Rust 语言实现了一下。

现在还处于开发的早期,使用过程中还是会碰到一些问题。

主要包含的 Tokenizer 有:

  1. ByteLevelBPETokenizer,字节级别的 BPE (Byte Pair Encoding) 训练和 tokenize,facebook 那几个预训练模型比如 Roberta 就用的这个,应对多语言比较方便;

  2. CharBPETokenizer,比字节高一个级别,字级别的 BPE,其实就是最经典  Sennrich  教授用的那个,subword-nmt;

  3. SentencePieceTokenizer,现在越来越搞不清这些命名之间的关系了,不过看代码应该是在 BPE 过程之前加了一个 pretokenization 过程,先对文本进行预处理再 BPE;

  4. BertWordPieceTokenizer,应该就是基于  unigram language model 那篇论文来做的。

关于详细的字词算法,可以参考我这篇:子词技巧:The Tricks of Subword

Tokenizers 库速度非常快!

Transformers

这个就不用多说了,各种方便,最近对预训练脚本也给了更好的 example,直接用里面的 run_language_modeling.py就行。

pipeline 功能感觉还处于开发阶段,一些功能没有完善,比如说我调自己的模型就总出问题。

关于使用

文档里面有,差不多就是,安装好

tokenizers==0.5.0
transformers==2.5.0

然后准备好数据,设置好参数先跑 tokenize 脚本,之后直接跑训练脚本。

So easy!妈妈再也不用担心我的预训练了(妈妈:我本来也没担心过)。




推荐阅读


AINLP年度阅读收藏清单


从入门到进阶,全方位提升你的 NLP 实战技能


用 GPT-2 自动写诗,从五言绝句开始


鼠年春节,用 GPT-2 自动写对联和对对联


大幅减少GPU显存占用:可逆残差网络(The Reversible Residual Network)


征稿启示| 让更多的NLPer看到你的文章

AINLP-DBC GPU 云服务器租用平台建立,价格足够便宜

我们建了一个免费的知识星球:AINLP芝麻街,欢迎来玩,期待一个高质量的NLP问答社区


关于AINLP


AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。


登录查看更多
0

相关内容

在搭建网络模型时,需要随机初始化参数,然后开始训练网络,不断调整直到网络的损失越来越小。在训练的过程中,一开始初始化的参数会不断变化。当参数训练到比较好的时候就可以将训练模型的参数保存下来,以便训练好的模型可以在下次执行类似任务时获得较好的结果。
【ICML2020】统一预训练伪掩码语言模型
专知会员服务
25+阅读 · 2020年7月23日
【ACL2020】端到端语音翻译的课程预训练
专知会员服务
5+阅读 · 2020年7月2日
【Amazon】使用预先训练的Transformer模型进行数据增强
专知会员服务
56+阅读 · 2020年3月6日
BERT进展2019四篇必读论文
专知会员服务
67+阅读 · 2020年1月2日
RoBERTa中文预训练模型:RoBERTa for Chinese
PaperWeekly
57+阅读 · 2019年9月16日
站在BERT肩膀上的NLP新秀们(PART I)
AINLP
30+阅读 · 2019年6月4日
进一步改进GPT和BERT:使用Transformer的语言模型
机器之心
16+阅读 · 2019年5月1日
中文版-BERT-预训练的深度双向Transformer语言模型-详细介绍
BERT-预训练的强大
微信AI
60+阅读 · 2019年3月7日
Arxiv
3+阅读 · 2019年9月5日
Arxiv
4+阅读 · 2019年9月5日
Arxiv
11+阅读 · 2019年6月19日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Arxiv
4+阅读 · 2018年9月6日
VIP会员
相关资讯
RoBERTa中文预训练模型:RoBERTa for Chinese
PaperWeekly
57+阅读 · 2019年9月16日
站在BERT肩膀上的NLP新秀们(PART I)
AINLP
30+阅读 · 2019年6月4日
进一步改进GPT和BERT:使用Transformer的语言模型
机器之心
16+阅读 · 2019年5月1日
中文版-BERT-预训练的深度双向Transformer语言模型-详细介绍
BERT-预训练的强大
微信AI
60+阅读 · 2019年3月7日
相关论文
Arxiv
3+阅读 · 2019年9月5日
Arxiv
4+阅读 · 2019年9月5日
Arxiv
11+阅读 · 2019年6月19日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Arxiv
4+阅读 · 2018年9月6日
Top
微信扫码咨询专知VIP会员