专栏名称: 机器学习AI算法工程
深度学习、机器学习、大数据技术社区,分享各类算法原理与源码、数据处理、可视化、爬虫、竞赛开源代码等资源。 如需推送广告合作请联系微个人号: hai299014
目录
相关文章推荐
GiantPandaCV  ·  【Efficient AIGC】SiTo_ ... ·  4 天前  
GiantPandaCV  ·  Fused ... ·  6 天前  
51好读  ›  专栏  ›  机器学习AI算法工程

最强 NLP 预训练模型库 PyTorch-Transformers 正式开源:支持 6 个预训练框架,27 个预训练模型

机器学习AI算法工程  · 公众号  ·  · 2019-08-08 08:00

正文



向AI转型的程序员都关注了这个号👇👇👇

机器学习AI算法工程  公众号:datayx



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


该项目支持 BERT, GPT, GPT-2, Transfo-XL, XLNet, XLM 等,并包含 27 个预训练模型。


先上开源地址:

https://github.com/huggingface/pytorch-transformers#quick-tour

官网:

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


该开源库现在包含了 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个预训练模型,下面是这些模型的完整列表,以及每个模型的简短介绍。


这些实现已在几个数据集上进行测试(参见示例脚本),应该与原始实现的性能相当(例如,BERT 全词覆盖(Whole-Word-Masking)在 SQUAD 数据集上的 F1 分数为 93,OpenAI GPT 在 RocStories 上的 F1 分数为 88,Transformer-XL 在 WikiText 103 上的 困惑度为 18.3、XLNet 的 STS-B 上的皮尔逊积矩相关系数为 0.916)。用户可以在官方网站的文档示例部分中,找到有关性能的更多详细信息。

安 装

此 repo 在 Python 2.7 和 3.5+(示例代码仅在 Python 3.5+ 上通过测试)以及 PyTorch 0.4.1 到 1.1.0 上进行了测试。


使用 pip 进行安装


pip install pytorch-transformers


测试


该库和示例脚本包含了一系列测试。库测试可在 “tests” 文件夹中找到,示例脚本的测试可以在 “examples”文件夹 中找到。

这些测试可以使用 pytest 运行(如果需要,可以使用 pip install pytest 来安装 pytest)。

你可以使用以下命令从克隆存储库的根目录进行测试:

快速指南

让我们快速导览一下 PyTorch-Transformer。每个模型架构(Bert、GPT、GPT-2、Transformer-XL、XLNet、XLM)的详细示例均可在完整的文档中找到。

https://huggingface.co/pytorch-transformers/


例子

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任务的序列级分类器;


    问答集数据集SQUAD上的令牌级分类器;

    SWAG分类语料库中的序列级多选分类器;

    另一个目标语料库上的BERT语言模型。

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



  • 这里是使用uncased BERT基础模型在GLUE基准测试开发集上得到的结果。





阅读过本文的人还看了以下:


分享《深度学习入门:基于Python的理论与实现》高清中文版PDF+源代码


《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码


《深度学习之pytorch》pdf+附书源码


李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材


笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!


《神经网络与深度学习》最新2018版中英PDF+源码


将机器学习模型部署为REST API


FashionAI服装属性标签图像识别Top1-5方案分享


重要开源!CNN-RNN-CTC 实现手写汉字识别


yolo3 检测出图像中的不规则汉字


同样是机器学习算法工程师,你的面试为什么过不了?


前海征信大数据算法:风险概率预测


【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类


VGG16迁移学习,实现医学图像识别分类工程项目


特征工程(一)


特征工程(二) :文本数据的展开、过滤和分块


特征工程(三):特征缩放,从词袋到 TF-IDF


特征工程(四): 类别特征


特征工程(五): PCA 降维


特征工程(六): 非线性特征提取和模型堆叠


特征工程(七):图像特征提取和深度学习


如何利用全新的决策树集成级联结构gcForest做特征工程并打分?


Machine Learning Yearning 中文翻译稿


蚂蚁金服2018秋招-算法工程师(共四面)通过


全球AI挑战-场景分类的比赛源码(多模型融合)


斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)


python+flask搭建CNN在线识别手写中文网站


中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程


不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  

长按图片,识别二维码,点关注


AI项目体验

https://loveai.tech