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

郭一璞 夏乙 发自 凹非寺 量子位 报道 | 公众号 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~

原文发布于微信公众号 - 量子位(QbitAI)

原文发表时间:2018-11-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能头条

本周必看 | 7月ML&Python 最佳开源项目Top 10 :从几百个项目中脱颖而出,都在收藏!

【导读】七月就要结束了,在即将到来的 7 月最后一个周末,人工智能头条为大家整理了本月 ML 和 Python 最受欢迎的十大开源项目。就算放假在家也可以知道大...

1223
来自专栏美团技术团队

美团技术团队博客:推荐算法实践

前言 推荐系统并不是新鲜的事物,在很久之前就存在,但是推荐系统真正进入人们的视野,并且作为一个重要的模块存在于各个互联网公司,还是近几年的事情。 随着互联网的深...

46311
来自专栏AI科技评论

谷歌机器学习白皮书全解析 43条黄金法则(二)

【AI科技评论按】:此白皮书为谷歌总结的机器学习(ML)最优实践方法,浓缩了其多年技术积累与经验,尤其是 YouTube、Google Play 和 Googl...

3466
来自专栏AI科技大本营的专栏

AI 技术讲座精选:TensorFlow 图像识别功能在树莓派上的应用

【AI100 导读】上周 TensorFlow 1.0 的发布使之成为最有前景的深度学习框架,也在中国 AI 社区中掀起了学习 TensorFlow 的热潮,不...

4418
来自专栏目标检测和深度学习

Github 平均 Star 979!一文了解 Top 10 机器学习开源项目

1302
来自专栏ArrayZoneYour的专栏

TensorFlow强化学习入门(2)——基于策略的Agents

在本教程系列的(1)中,我演示了如何构建一个agent来在多个选择中选取最有价值的一个。在本文中,我将讲解如何得到一个从现实世界中获取 观测值 ,并作出 长期收...

7246
来自专栏新智元

【重磅】谷歌正式发布TensorFlowLite,半监督跨平台快速训练ML模型

来源:Google blog 编译:马文 Cecilia 【新智元导读】谷歌宣布推出 TensorFlow Lite,这是 TensorFlow 的针对移动设...

3689
来自专栏机器之心

现在,所有人都可以在18分钟内训练ImageNet了

该团队的主要训练方法是:fast.ai 用于分类任务的渐进式调整大小和矩形图像验证;英伟达的 NCCL 库,该库整合了 PyTorch 的 all-reduce...

1011
来自专栏PaddlePaddle

AI不思议|说说那些偶尔混淆的概念

但是产品和运营两队小伙伴一不小心就遇到概念混淆的场景,有些时候是自己记模糊了、有些时候自己没记错、却被别人“拐到沟里“了…

1001
来自专栏AI科技评论

谷歌机器学习白皮书全解析 43条黄金法则(三)

AI科技评论按:此白皮书为谷歌总结的机器学习(ML)最优实践方法,浓缩了其多年技术积累与经验,尤其是 YouTube、Google Play 和 Google+...

3988

扫码关注云+社区