一个API调用27个NLP预训练模型:BERT、GPT-2全囊括,就像导入NumPy一样

网友惊呼:上帝的工作

鱼羊 发自 凹非寺
量子位 报道 | 公众号 QbitAI

只需一个API,就能调用BERT、XLM等多种语言模型,逆天的GPT-2也一样轻松到碗里来,这样的模型库你是否期待?

现在,真的有人完成了这一惊人工作,推出了堪称最先进的自然语言处理预训练模型库。

六种架构,27个预训练模型,简单易用,鹅妹子嘤。

一个API调27个NLP预训练模型:BERT、GPT-2全囊括,就像导入NumPy

其名为Pytorch-Transformers 1.0

登场数小时,获赞1000+,网友忍不住惊叹:这简直就是上帝的工作。

一个API调27个NLP预训练模型:BERT、GPT-2全囊括,就像导入NumPy

Pytorch-Transformers 1.0

从模型分析到生产加速,对自然语言处理研究人员来说,简直是一库在手,天下我有。

目前这个库中包含PyTorch实现,预训练模型权重,数据集和六个模型的转换工具。

六种NLP模型

库中囊括了现在自然语言处理(NLP)领域最常用的六种模型:

  • BERT
  • GPT
  • GPT-2
  • Transformer-XL
  • XLNet
  • XLM

这些实现已经在GLUE、SQuAD上进行了测试,基本能与原始实现的性能相匹配。

一个API调27个NLP预训练模型:BERT、GPT-2全囊括,就像导入NumPy

BERT原始实现性能

一个API调27个NLP预训练模型:BERT、GPT-2全囊括,就像导入NumPy

Pytorch-Transformers 1.0中BERT实现性能

27个预训练模型

一个API调27个NLP预训练模型:BERT、GPT-2全囊括,就像导入NumPy

快速上手

这么强大的工具,上手也很简单。

作者已经在Python 2.7和 3.5+上进行过测试,PyTorch的版本则是 0.4.1到 1.1.0。

首先pip一下:

pip install pytorch-transformers

克隆储存库并运行:

pip install [--editable] .

可以用pytest进行一些测试:

python -m pytest -sv ./pytorch_transformers/tests/
python -m pytest -sv ./examples/

接着,就可以看一下快速入门示例了。

BERT

首先,使用BertTokenizer从文本字符串中准备一个标记化的输入:

一个API调27个NLP预训练模型:BERT、GPT-2全囊括,就像导入NumPy

使用BertModel在隐藏状态下编码输入:

一个API调27个NLP预训练模型:BERT、GPT-2全囊括,就像导入NumPy

用BertForMaskedLM预测masked token:

一个API调27个NLP预训练模型:BERT、GPT-2全囊括,就像导入NumPy

OpenAI GPT-2

准备输入:

一个API调27个NLP预训练模型:BERT、GPT-2全囊括,就像导入NumPy

预测下一句:

一个API调27个NLP预训练模型:BERT、GPT-2全囊括,就像导入NumPy

就像这样,每一个模型都有相应的示例,可以在文档中查看详情。

不懂法律的物理学博士不是好工程师

一个API调27个NLP预训练模型:BERT、GPT-2全囊括,就像导入NumPy

Pytorch-Transformers 1.0的作者小哥是一位真正的跨界人才。

10岁学编程,大学却入了物理坑。

第一份工作是在劳伦斯伯克利国家实验室的BELLA中心研究激光等离子体相互作用。

被麻省理工录取为博士研究生,最后在索邦大学和ESPCI(巴黎高等物理化工学院)拿到了量子物理学博士学位。

在这之后,他又转行去知识产权律师事务所当起了欧洲专利律师。

现在,他在创业公司Huggingface Inc. 领导一支科学团队,致力于自然语言生成和自然语言理解领域。

真乃神人也。

传送门

教程文档:

https://huggingface.co/pytorch-transformers/quickstart.html#documentation

— 完 —

版权所有,未经授权不得以任何形式转载及使用,违者必究。