'GitHub超9千星:一個API調用六種架構,27個預訓練模型'

"


"


GitHub超9千星:一個API調用六種架構,27個預訓練模型

【新智元導讀】只需一個API,直接調用BERT, GPT, GPT-2, Transfo-XL, XLNet, XLM等6大框架,包含了27個預訓練模型。簡單易用,功能強大。

One API to rule them all。

3天前,著名最先進的自然語言處理預訓練模型庫項目pytorch-pretrained-bert改名Pytorch-Transformers重裝襲來,1.0.0版橫空出世。

"


GitHub超9千星:一個API調用六種架構,27個預訓練模型

【新智元導讀】只需一個API,直接調用BERT, GPT, GPT-2, Transfo-XL, XLNet, XLM等6大框架,包含了27個預訓練模型。簡單易用,功能強大。

One API to rule them all。

3天前,著名最先進的自然語言處理預訓練模型庫項目pytorch-pretrained-bert改名Pytorch-Transformers重裝襲來,1.0.0版橫空出世。

GitHub超9千星:一個API調用六種架構,27個預訓練模型

只需一個API,直接調用BERT, GPT, GPT-2, Transfo-XL, XLNet, XLM等6大框架,包含了27個預訓練模型。

簡單易用,功能強大。目前已經包含了PyTorch實現、預訓練模型權重、運行腳本和以下模型的轉換工具:

  • BERT,論文:“BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”,論文作者:Jacob Devlin, Ming-Wei Chang, Kenton Lee,Kristina Toutanova
  • OpenAI 的GPT,論文:“Improving Language Understanding by Generative Pre-Training”,論文作者:Alec Radford, Karthik Narasimhan, Tim Salimans, Ilya Sutskever
  • OpenAI的GPT-2,論文:“Language Models are Unsupervised Multitask Learners”,論文作者:Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei,Ilya Sutskever
  • 谷歌和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.
  • 谷歌和CMU的XLNet,論文:“XLNet: Generalized Autoregressive Pretraining for Language Understanding”,論文作者:Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, Quoc V. Le
  • 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個預訓練模型,下面是這些模型的完整列表,以及每個模型的簡短介紹。

"


GitHub超9千星:一個API調用六種架構,27個預訓練模型

【新智元導讀】只需一個API,直接調用BERT, GPT, GPT-2, Transfo-XL, XLNet, XLM等6大框架,包含了27個預訓練模型。簡單易用,功能強大。

One API to rule them all。

3天前,著名最先進的自然語言處理預訓練模型庫項目pytorch-pretrained-bert改名Pytorch-Transformers重裝襲來,1.0.0版橫空出世。

GitHub超9千星:一個API調用六種架構,27個預訓練模型

只需一個API,直接調用BERT, GPT, GPT-2, Transfo-XL, XLNet, XLM等6大框架,包含了27個預訓練模型。

簡單易用,功能強大。目前已經包含了PyTorch實現、預訓練模型權重、運行腳本和以下模型的轉換工具:

  • BERT,論文:“BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”,論文作者:Jacob Devlin, Ming-Wei Chang, Kenton Lee,Kristina Toutanova
  • OpenAI 的GPT,論文:“Improving Language Understanding by Generative Pre-Training”,論文作者:Alec Radford, Karthik Narasimhan, Tim Salimans, Ilya Sutskever
  • OpenAI的GPT-2,論文:“Language Models are Unsupervised Multitask Learners”,論文作者:Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei,Ilya Sutskever
  • 谷歌和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.
  • 谷歌和CMU的XLNet,論文:“XLNet: Generalized Autoregressive Pretraining for Language Understanding”,論文作者:Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, Quoc V. Le
  • 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個預訓練模型,下面是這些模型的完整列表,以及每個模型的簡短介紹。

GitHub超9千星:一個API調用六種架構,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原始實現和擴展的微調示例,分別為:

  • 九個不同GLUE任務的序列級分類器;
  • 問答集數據集SQUAD上的令牌級分類器;
  • SWAG分類語料庫中的序列級多選分類器;
  • 另一個目標語料庫上的BERT語言模型。

這裡僅展示GLUE的結果:

"


GitHub超9千星:一個API調用六種架構,27個預訓練模型

【新智元導讀】只需一個API,直接調用BERT, GPT, GPT-2, Transfo-XL, XLNet, XLM等6大框架,包含了27個預訓練模型。簡單易用,功能強大。

One API to rule them all。

3天前,著名最先進的自然語言處理預訓練模型庫項目pytorch-pretrained-bert改名Pytorch-Transformers重裝襲來,1.0.0版橫空出世。

GitHub超9千星:一個API調用六種架構,27個預訓練模型

只需一個API,直接調用BERT, GPT, GPT-2, Transfo-XL, XLNet, XLM等6大框架,包含了27個預訓練模型。

簡單易用,功能強大。目前已經包含了PyTorch實現、預訓練模型權重、運行腳本和以下模型的轉換工具:

  • BERT,論文:“BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”,論文作者:Jacob Devlin, Ming-Wei Chang, Kenton Lee,Kristina Toutanova
  • OpenAI 的GPT,論文:“Improving Language Understanding by Generative Pre-Training”,論文作者:Alec Radford, Karthik Narasimhan, Tim Salimans, Ilya Sutskever
  • OpenAI的GPT-2,論文:“Language Models are Unsupervised Multitask Learners”,論文作者:Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei,Ilya Sutskever
  • 谷歌和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.
  • 谷歌和CMU的XLNet,論文:“XLNet: Generalized Autoregressive Pretraining for Language Understanding”,論文作者:Zhilin Yang, Zihang Dai, Yiming Yang, Jaime Carbonell, Ruslan Salakhutdinov, Quoc V. Le
  • 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個預訓練模型,下面是這些模型的完整列表,以及每個模型的簡短介紹。

GitHub超9千星:一個API調用六種架構,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原始實現和擴展的微調示例,分別為:

  • 九個不同GLUE任務的序列級分類器;
  • 問答集數據集SQUAD上的令牌級分類器;
  • SWAG分類語料庫中的序列級多選分類器;
  • 另一個目標語料庫上的BERT語言模型。

這裡僅展示GLUE的結果:

GitHub超9千星:一個API調用六種架構,27個預訓練模型

該項目是在Python 2.7和3.5+上測試(例子只在python 3.5+上測試)和PyTorch 0.4.1到1.1.0測試。

項目地址:

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

"