资讯 人工智能学术

Pytorch-Transformers 1.0 发布,支持六个预训练框架,含 27 个预训练模型

作者:丛末
2019/07/17 17:23

雷锋网 AI 科技评论按:刚刚,在 Github 上发布了开源 Pytorch-Transformers 1.0,该项目支持 BERT, GPT, GPT-2, Transfo-XL, XLNet, XLM 等,并包含 27 个预训练模型。

我们来看。

哪些支持

PyTorch-Transformers(此前叫做pytorch-pretrained-bert)是面向自然语言处理,当前性能最高的预训练模型开源库。

该开源库现在包含了 PyTorch 实现、预训练模型权重、运行脚本和以下模型的转换工具:

1、谷歌的 BERT,论文:“BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”,论文作者:Jacob Devlin, Ming-Wei Chang, Kenton Lee ,Kristina Toutanova

2、OpenAI 的GPT,论文:“ Improving Language Understanding by Generative Pre-Training”,论文作者:Alec Radford, Karthik Narasimhan, Tim Salimans , Ilya Sutskever

3、OpenAI 的 GPT-2,论文:“ Language Models are Unsupervised Multitask Learners”,论文作者:Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei,Ilya Sutskever

4、谷歌和 CMU 的 Transformer-XL ,论文:“ Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context”,论文作者:Zihang Dai*, Zhilin Yang*, Yiming Yang, Jaime Carbonell, Quoc V. Le, Ruslan Salakhutdinov.

5、谷歌和 CMU 的XLNet,论文:“XLNet: Generalized Autoregressive Pretraining for Language Understanding”,论文作者:Zhilin Yang*, Zihang Dai*, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, Quoc V. Le

6、Facebook的 XLM,论文:“ Cross-lingual Language Model Pretraining”,论文作者:Guillaume Lample,Alexis Conneau

这些实现都在几个数据集(参见示例脚本)上进行了测试,性能与原始实现相当,例如 BERT中文全词覆盖在 SQuAD数据集上的F1分数为93 , OpenAI GPT 在 RocStories上的F1分数为88, Transformer-XL在 WikiText 103 上的困惑度为18.3, XLNet在STS-B的皮尔逊相关系数为0.916。

27个预训练模型

项目中提供了27个预训练模型,下面是这些模型的完整列表,以及每个模型的简短介绍。

Pytorch-Transformers 1.0 发布,支持六个预训练框架,含 27 个预训练模型

Pytorch-Transformers 1.0 发布,支持六个预训练框架,含 27 个预训练模型

例子

BERT-base和BERT-large分别是110M和340M参数模型,并且很难在单个GPU上使用推荐的批量大小对其进行微调,来获得良好的性能(在大多数情况下批量大小为32)。

为了帮助微调这些模型,我们提供了几种可以在微调脚本中激活的技术 run_bert_classifier.py 和 run_bert_squad.py:梯度累积(gradient-accumulation),多GPU训练(multi-gpu training),分布式训练(distributed training )和16- bits 训练( 16-bits training)。注意,这里要使用分布式训练和16- bits 训练,你需要安装NVIDIA的apex扩展。

作者在doc中展示了几个基于BERT原始实现(https://github.com/google-research/bert/)和扩展的微调示例,分别为:

我们这里仅展示GLUE的结果:

Pytorch-Transformers 1.0 发布,支持六个预训练框架,含 27 个预训练模型

这里是使用uncased BERT基础模型在GLUE基准测试开发集上得到的结果。所有实验均在批量大小为32的P100 GPU上运行。尽管比较原始,但结果看起来还不错。

安装

该项目是在Python 2.7和3.5+上测试(例子只在python 3.5+上测试)和PyTorch 0.4.1到1.1.0测试

pip 安装:

pip install pytorch-transformers

测试:

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

python -m pytest -sv ./examples/

传送门:

源码:https://github.com/huggingface/pytorch-transformers

文档:https://huggingface.co/pytorch-transformers/index.html

延伸阅读

[深度]周明:自然语言处理的未来之路,https://www.leiphone.com/news/201907/djMxwOkOO5u4sf6O.html

多图带你读懂 Transformers 的工作原理,https://www.leiphone.com/news/201903/ELyRKiBJOx8agF1Q.html

超越 BERT 和 GPT,微软亚洲研究院开源新模型 MASS!https://www.leiphone.com/news/201906/21E6GehD0d9SHC2Q.html

一个续写故事达到人类水平的AI,OpenAI大规模无监督语言模型GPT-2, https://www.leiphone.com/news/201902/wuK3G9qDcrf5dX0r.html    雷锋网(公众号:雷锋网)雷锋网

文章点评
相关文章