最强NLP模型BERT喜迎PyTorch版!谷歌官方推荐,也会支持中文

2018 年 11 月 7 日 量子位
郭一璞 夏乙 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

谷歌的最强NLP模型BERT发布以来,一直非常受关注,上周开源的官方TensorFlow实现在GitHub上已经收获了近6000星。

TensorFlow爱好者们已经可以开心的玩耍,PyTorch用户还在焦虑吗?

不要担心,就在这两天,一个名叫“抱抱脸(HuggingFace🤗)”的团队在PyTorch上实现了BERT,开源不久,Google在官方BERT实现的说明开头热情推荐,已经在GitHub上攒了将近700星。

这个PyTorch版本是Google官方TensorFlow开源模型的“重实现”,可以加载任何预训练TensorFlow BERT检查点,当然也包括那些Google官方预训练模型。同时,他们还提供转换脚本。

重要的是,官方多语言和中文版模型已经放出,PyTorch版的作者们也会在本周添加中文版模型哦~

三个PyTorch模型

在这个库里,作者们准备了三个PyTorch模型:

BertModel

原味BERT,是一个基本的BERT Transformer模型,带有一层求和的token、位置和序列嵌入,还有一系列相同的自注意块(12个用于BERT-base,24个用于BERT-large)。

其中,输入和输出与TensorFlow模型的输入和输出相同。

BertForSequenceClassification

带序列分类器的BERT模型,其中包含BertModel本身和序列级(序列或序列对)分类器。

序列级分类器是一个线性层,它将输入序列中第一个字符的最后隐藏状态作为输入。

BertForQuestionAnswering

带token分类器的BERT模型,包含BertModel和最终隐藏状态完整序列上的token级分类器。

这个模型可以用来搞定SQuAD等问答任务。

token级分类器将最终隐藏状态的完整序列作为输入,并为每个token计算几个分数,例如,分别可以是给定令牌是否属于start_span和end_span令牌的分数。

TensorFlow模型转换脚本

前边也提到过,这份开源代码中还包含一个脚本,能将任何预训练BERT TensorFlow检查点转换成PyTorch保存文件,特别是Google官方发布的那几个预训练模型。

就是根目录下的这个脚本文件:

convert_tf_checkpoint_to_pytorch.py

使用这个脚本需要注意两点。

一是想要得到一个PyTorch模型的话,运行一次就够了,接下来只需要忽略TensorFlow检查点文件,保留配置文件和词表文件;

二是虽说最终用的都是PyTorch模型,但TensorFlow也得安装。

作者简介

推出PyTorch版BERT代码的“抱抱脸”团队,在NLP领域贡献了不少(基于PyTorch的)开源代码和走心教程。

比如,他们会教你给NLP任务加速100倍:
https://medium.com/huggingface/100-times-faster-natural-language-processing-in-python-ee32033bdced

用PyTorch实现了从语言中识别情绪情感反讽的DeepMoji模型:
https://github.com/huggingface/torchMoji

还用PyTorch实现了OpenAI优化过的Transformer模型:
https://github.com/huggingface/pytorch-openai-transformer-lm

“抱抱脸”团队的科学主管Thomas Wolf,他同时也是PyTorch版BERT的主要贡献者。

不要以为抱抱脸是个学生科研社团,他们是个正经创业公司,主业是开发一个支持文本、照片、表情包的聊天机器人,他们称为Social AI。

传送门

想用PyTorch实现,去这里:

https://github.com/huggingface/pytorch-pretrained-BERT

最后在啰嗦一句,BERT官方TensorFlow实现最近新增了多语言版和中文版模型,对中文世界真的很友好了:

https://github.com/google-research/bert

🤗 Enjoy~

年度评选申请

加入社群

量子位AI社群开始招募啦,欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“交流群”,获取入群方式;


此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。


进专业群请在量子位公众号(QbitAI)对话界面回复关键字“专业群”,获取入群方式。(专业群审核较严,敬请谅解)

活动策划招聘

量子位正在招聘活动策划,将负责不同领域维度的线上线下相关活动策划、执行。欢迎聪明靠谱的小伙伴加入,并希望你能有一些活动策划或运营的相关经验。相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态


登录查看更多
13

相关内容

Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
【模型泛化教程】标签平滑与Keras, TensorFlow,和深度学习
专知会员服务
20+阅读 · 2019年12月31日
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
84+阅读 · 2019年12月27日
谷歌机器学习速成课程中文版pdf
专知会员服务
142+阅读 · 2019年12月4日
【文章|BERT三步使用NLP迁移学习】NLP Transfer Learning In 3 Steps
下载 | 最全中文文本分类模型库,上手即用
机器学习算法与Python学习
30+阅读 · 2019年10月17日
开发 | PyTorch好助手:PyTorch Hub一键复现各路模型
资源 | 最强预训练模型BERT的Pytorch实现(非官方)
全球人工智能
7+阅读 · 2018年10月18日
Heterogeneous Graph Transformer
Arxiv
27+阅读 · 2020年3月3日
Arxiv
6+阅读 · 2019年7月11日
Arxiv
11+阅读 · 2019年6月19日
Arxiv
8+阅读 · 2019年3月21日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Arxiv
12+阅读 · 2019年2月28日
Arxiv
10+阅读 · 2018年3月22日
VIP会员
相关论文
Heterogeneous Graph Transformer
Arxiv
27+阅读 · 2020年3月3日
Arxiv
6+阅读 · 2019年7月11日
Arxiv
11+阅读 · 2019年6月19日
Arxiv
8+阅读 · 2019年3月21日
Universal Transformers
Arxiv
5+阅读 · 2019年3月5日
Arxiv
12+阅读 · 2019年2月28日
Arxiv
10+阅读 · 2018年3月22日
Top
微信扫码咨询专知VIP会员