ウェブサイト: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トランスフォーワーは、 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の少なくとも1つをインストールする必要があります。プラットフォームの特定のインストールコマンドに関するTensorflowインストールページ、インストールページを参照してください。 [tensorflow-text](https://www.tensorflow.org/text)をインストールすることを強くお勧めします。
これらのバックエンドのいずれかがインストールされている場合、TFトランスフォーラーは次のようにPIPを使用してインストールできます。
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テキストジェネレーションの場合、add: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行未満のコードで、生産に最先端のモデルを使用します。
明確なチュートリアルを使用して、学生やコミュニティにアバリブルな業界ベースの経験をする
驚くべきtf.keras.Model.fitでGPU 、マルチGPU 、 TPUでモデルをトレーニングします
コードの変更を最小限に抑えても、モデルやパイプラインをカスタマイズします。
この研究セクションには、** MLM、T5、クリップなどの範囲のさまざまなモデルを事前にトレーニングするコードがあります。これらのすべてのスクリプトは、Tensorflow-Ioパイプラインの全力を活用し、TPU V2およびTPU V3でテストするように設計されています。それらにはバグが予想されますが、それは練習者が私たちがすでに行ったことを開始または変更する目的として機能します。
Albert Baseモデルの力を絞るための実験はほとんどありませんでした(概念は任意のモデルに適用できます。TF変換器では、箱から出しています。)
このアイデアは、モデルの各レイヤーで指定されたタスクの損失を最小限に抑え、各レイヤーで予測を確認することです。実験によると、最高の小さなモデル( Albertのおかげ)を取得することができ、レイヤー4以降、接着剤ベンチマークのすべての小さなモデルを打ちました。レイヤー6では、接着剤スコアが81.0を獲得しました。これは、 Distillbertの4ポイント先で、Glueスコアは77 、 MobileBert Glueスコアは78です。
Albertモデルには1400万のパラメーターがあり、レイヤー6を使用することにより、コンピューティングを50%スピードアップすることができました。
この概念は、すべてのモデルとタスクに適用できます。
コード +続きを読む
入力シーケンスをブロックの注意に分割し、FFNレイヤーを使用してマージすることにより、単一のV100 GPUマシンで最大4096トークンまでのシーケンス処理を実行できることが示されました。このモデルは60 millionパラメーターであるにもかかわらず、 PubMed SummarisationでPegasus Base (128 million)よりも優れています。

コード +続きを読む
TFトランスフォーマーは現在、次のアーキテクチャを提供しています。
これで、TF-Transformersライブラリの引用ができるページがあります。