網站:https://legacyai.github.io/tf-transformers
TF轉換器:Tensorflow 2.0中的更快,更輕鬆的最新變壓器
想像一下自動回歸產生的速度更快90倍。 TF-Transformers(Tensorflow Transformers)旨在利用專為基於變壓器的體系結構設計的TensorFlow 2的全功率。
這些模型可以應用於:
gpt2帶有max_length=64 , num_beams=3 。
tf_transformers : 31 minutes
huggingface_tf : 83 minutes
huggingface_pt : 36 minutes
huggingface_jax : 35 minutes
從83 minutes到31 minutes是一個顯著的加速。 92 %加速。平均而言, TF轉換器比HuggingFace TensorFlow實現是80-90%的速度,並且在大多數情況下,它比Pytorch是可比或更快的。
可以在基準中找到更多基準
該存儲庫在Python 3.7+和Tensorflow 2.7上進行了測試。
pip install sentencepiece
pip install tensorflow-text > = 2.7.3
pip install tqdm根據機器安裝tensorflow >= 2.7.0 [CPU or GPU] 。您應該在虛擬環境中安裝TF轉換器。如果您不熟悉Python虛擬環境,請查看用戶指南。
首先,使用您要使用的Python版本創建虛擬環境並激活它。
然後,您將需要至少安裝一個張量。請參閱TensorFlow安裝頁面,有關平台特定安裝命令的安裝頁面。我們強烈建議安裝[TensorFlow-Text](https://www.tensorflow.org/text)。
當安裝了這些後端之一時,可以使用PIP安裝TF-Transformers,如下所示:
pip install tf-transformersgit clone https://github.com/legacyai/tf-transformers.git
pip install poetry
cd tf-transformers
poetry installTF-Transformers API非常簡單且極簡。
> >> from tf_transformers . models import GPT2Model
> >> model = GPT2Model . from_pretrained ( 'gpt2' )
> >> model . save_checkpoint ( "/tmp/gpt2_model/" ) # Save Model對於文本產生,添加非常重要的是:obj: use_auto_regressive=True 。這是所有模型所必需的。
> >> from tf_transformers . models import GPT2Model
> >> model = GPT2Model . from_pretrained ( 'gpt2' , use_auto_regressive = True )序列化保存和加載模型
> >> from tf_transformers . models import GPT2Model
> >> model = GPT2Model . from_pretrained ( 'gpt2' )
> >> model . save_transformers_serialized ( "/tmp/gpt2_serialized/" )
# To load a serialized models for inference in prodcution:
> >> import tensorflow as tf
> >> loaded = tf . saved_model . load ( "/tmp/gpt2_serialized/" )
> >> model = loaded . signatures [ 'serving_default' ]在TF轉換器中,我們主要遵循KERAS的Functional API 。 tf-transformers中的所有模型均已連接並始終具有以下功能。
如果tf.keras.Model或tf_transformers.core.LegacyModel ,請使用: print(model.input) 。
如果tf.keras.Layer或tf_transformers.core.LegacyLayer ,請使用: print(model.model_inputs) 。
如果tf.keras.Model或tf_transformers.core.LegacyModel ,請使用: print(model.output) 。
如果tf.keras.Layer或tf_transformers.core.LegacyLayer ,請使用: print(model.model_outputs) 。
我們介紹了涵蓋預培訓,填充,階級,質量檢查,QA,NER的教程。
在生產中使用最先進的模型,少於10行代碼。
通過清晰的教程為學生和社區提供基於行業的經驗
訓練與GPU , Multi-GPU , TPU上的任何模型一起使用驚人的tf.keras.Model.fit
自定義任何模型或管道,具有最小或沒有代碼更改。
該研究部分具有預訓練的不同模型的代碼,範圍為** MLM,T5,CLIP等**。所有這些腳本均設計為利用TensorFlow-IO管道的全功能,並在TPU V2和TPU V3上進行了測試。預期的錯誤是錯誤的,但它是從事醫生啟動或修改我們已經做過的事情的目的。
我們進行了很少的實驗來擠壓Albert Base模型的功能(概念適用於任何模型,在TF-Transformers中,它是開箱即用的。)
這個想法是最大程度地減少模型每一層中指定任務的損失,並在每一層檢查預測。根據我們的實驗,我們能夠獲得最好的較小型號(感謝Albert ),從第4層開始,我們以Glue基準測試了所有較小的型號。到第6層,我們的膠水得分為81.0 ,比蒸餾廠領先4分,膠水得分為77 ,莫菲伯特膠水得分為78 。
Albert模型有1400萬個參數,通過使用第6層,我們能夠將彙編加快50%的速度加快。
該概念適用於所有模型和任務。
代碼 +閱讀更多
通過將輸入序列分為封閉注意力並使用FFN層合併,我們表明,較小的機器將能夠在單個V100 GPU機器中執行高達4096個令牌的序列處理。該模型的表現優於Pegasus Base (128 million) PubMed摘要,儘管參數為60 million 。

代碼 +閱讀更多
TF-Transformers當前提供以下架構。
現在,我們有一個頁面可以引用TF-Transformers庫。