0
本文作者: 叢末 | 2019-07-17 17:23 |
雷鋒網(wǎng) AI 科技評論按:剛剛,在 Github 上發(fā)布了開源 Pytorch-Transformers 1.0,該項目支持 BERT, GPT, GPT-2, Transfo-XL, XLNet, XLM 等,并包含 27 個預(yù)訓(xùn)練模型。
我們來看。
PyTorch-Transformers(此前叫做pytorch-pretrained-bert)是面向自然語言處理,當(dāng)前性能最高的預(yù)訓(xùn)練模型開源庫。
該開源庫現(xiàn)在包含了 PyTorch 實現(xiàn)、預(yù)訓(xùn)練模型權(quán)重、運行腳本和以下模型的轉(zhuǎn)換工具:
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
這些實現(xiàn)都在幾個數(shù)據(jù)集(參見示例腳本)上進(jìn)行了測試,性能與原始實現(xiàn)相當(dāng),例如 BERT中文全詞覆蓋在 SQuAD數(shù)據(jù)集上的F1分?jǐn)?shù)為93 , OpenAI GPT 在 RocStories上的F1分?jǐn)?shù)為88, Transformer-XL在 WikiText 103 上的困惑度為18.3, XLNet在STS-B的皮爾遜相關(guān)系數(shù)為0.916。
項目中提供了27個預(yù)訓(xùn)練模型,下面是這些模型的完整列表,以及每個模型的簡短介紹。
BERT-base和BERT-large分別是110M和340M參數(shù)模型,并且很難在單個GPU上使用推薦的批量大小對其進(jìn)行微調(diào),來獲得良好的性能(在大多數(shù)情況下批量大小為32)。
為了幫助微調(diào)這些模型,我們提供了幾種可以在微調(diào)腳本中激活的技術(shù) run_bert_classifier.py 和 run_bert_squad.py:梯度累積(gradient-accumulation),多GPU訓(xùn)練(multi-gpu training),分布式訓(xùn)練(distributed training )和16- bits 訓(xùn)練( 16-bits training)。注意,這里要使用分布式訓(xùn)練和16- bits 訓(xùn)練,你需要安裝NVIDIA的apex擴(kuò)展。
作者在doc中展示了幾個基于BERT原始實現(xiàn)(https://github.com/google-research/bert/)和擴(kuò)展的微調(diào)示例,分別為:
九個不同GLUE任務(wù)的序列級分類器;
問答集數(shù)據(jù)集SQUAD上的令牌級分類器;
SWAG分類語料庫中的序列級多選分類器;
另一個目標(biāo)語料庫上的BERT語言模型。
我們這里僅展示GLUE的結(jié)果:
這里是使用uncased BERT基礎(chǔ)模型在GLUE基準(zhǔn)測試開發(fā)集上得到的結(jié)果。所有實驗均在批量大小為32的P100 GPU上運行。盡管比較原始,但結(jié)果看起來還不錯。
該項目是在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
[深度]周明:自然語言處理的未來之路,http://www.ozgbdpf.cn/news/201907/djMxwOkOO5u4sf6O.html
多圖帶你讀懂 Transformers 的工作原理,http://www.ozgbdpf.cn/news/201903/ELyRKiBJOx8agF1Q.html
超越 BERT 和 GPT,微軟亞洲研究院開源新模型 MASS!http://www.ozgbdpf.cn/news/201906/21E6GehD0d9SHC2Q.html
一個續(xù)寫故事達(dá)到人類水平的AI,OpenAI大規(guī)模無監(jiān)督語言模型GPT-2, http://www.ozgbdpf.cn/news/201902/wuK3G9qDcrf5dX0r.html 雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。