| 原作者 | Google AI |
|---|---|
| 初回リリース | 2019年10月23日 |
| 安定版リリース | T5X github.com/google-research/t5x
|
| リポジトリ | https://github.com/google-research/text-to-text-transfer-transformer |
| タイプ | |
| ライセンス | Apache 2.0 の場合 |
| Webサイト | blog.research.google/2020/02/exploring-transfer-learning-with-t5.html |
T5(Text-to-Text Transfer Transformer)は、 2019年に導入されたGoogle AIによって開発され、大規模な言語モデルシリーズです。 [1] [2]オリジナルのTransformerモデルと同様に、[3] T5モデルはエンコーダー-デコーダーTransformerであり、エンコーダーが入力テキストを処理し、デコーダーが出力テキストを生成します。
T5 モデルは通常、テキストとコードの大規模なデータセットで事前トレーニングされ、その後、事前トレーニングされたタスクに類似したテキストベースのタスクを実行できます。また、他のタスクを実行するように微調整することもできます。
T5モデルは、チャットボット、機械翻訳システム、テキスト要約ツール、コード生成、ロボット工学など、さまざまなアプリケーションで採用されています。[4]
トレーニング
オリジナルの T5 モデルは、インターネットから収集したテキストとコードを含むColossal Clean Crawled Corpus (C4)で事前トレーニングされています。この事前トレーニング プロセスにより、モデルは一般的な言語理解と生成能力を学習できます。その後、T5 モデルは特定の下流タスクに合わせて微調整され、さまざまなアプリケーションで優れたパフォーマンスを発揮するように知識を適応させることができます。
<input text>T5 モデルは、すべて->の形式で、多くのタスクについて事前トレーニングされました<output text>。

例をいくつか挙げます。
- 破損したテキストを復元しています:
Thank you <X> me to your party <Y> week.-><X> for inviting <Y> last <Z>、ここで は<Z>「出力の終わり」を意味し、 および<X>は<Y>埋める必要がある空白を示し、元のレポートでは「センチネル」と呼ばれています。 - 翻訳:
translate English to German: That is good.->Das ist gut.. - 文の文法的許容性を判断する(CoLA文):
The course is jumping well.->not acceptable。
建築

T5 シリーズには、さまざまなサイズと機能を備えた複数のモデルが含まれており、すべてエンコーダー/デコーダー トランスフォーマーであり、エンコーダーが入力テキストを処理し、デコーダーが出力テキストを生成します。
これらのモデルは、多くの場合、モデルの複雑さと潜在的な容量を示すパラメータ数によって区別されます。元の論文[1]では、次の5つのモデルが報告されています。
※エンコーダーとデコーダーは同じ形状です。例えば、T5-small の場合、エンコーダー側に 6 層、デコーダー側に 6 層あります。
上記の表では、
- : エンコーダーのレイヤー数。また、デコーダーのレイヤー数。レイヤー数は常に同じです。
- : 各アテンション ブロック内のアテンション ヘッドの数。
- : 埋め込みベクトルの次元。
- : 各エンコーダー層とデコーダー層内のフィードフォワード ネットワークの次元。
- : 自己注意メカニズムで使用されるキーと値のベクトルの次元。
一般的なトランスフォーマーとは異なり、3Bモデルと11Bモデルはを満たさないことに注意してください。[6]
オリジナルのTransformerと比較すると、いくつかの小さな変更が加えられています。加法バイアスのないレイヤー正規化、残差パスの外側へのレイヤー正規化の配置、相対位置埋め込みなどです。[7]
すべての実験で、語彙サイズが 32,000 の WordPiece トークナイザーを使用しました。トークナイザーは、各モデルの入力と出力の両方で共有されます。トークナイザーは、C4 データセットの英語、ドイツ語、フランス語、ルーマニア語のデータを 10:1:1:1 の比率で混合してトレーニングされました。
バリエーション
その後のいくつかのモデルはT5アーキテクチャを採用し、それらを区別するために非標準化された命名規則が使用されました。このセクションでは、主なものを収集します。Google Brainによってリリースされたバリアントの完全なリストは、T5XのGitHubリポジトリにあります。[8]
一部のモデルは最初からトレーニングされますが、他のモデルは以前にトレーニングされたモデルから開始してトレーニングされます。特に明記されていない限り、デフォルトでは各モデルは最初からトレーニングされます。
- T5スモール、ベース、ラージ、3B、11B(2019):オリジナルモデル。[1]
- T5 1.1スモール、ベース、ラージ、XL、XXL: オリジナルのT5シリーズの改良版。これらはほぼ同等のパラメータを持っています。活性化関数はReLUではなくGEGLU [9]です。3Bと11Bは「XL」と「XXL」に変更され、形状も変更されました: [8] [10] [11]
- LM適応型T5 (2021): T5シリーズのチェックポイントから始まり、C4からの100Bの追加トークンでさらにトレーニングされた一連のモデル(小型からXXLまで) 。 [12]
- Switch Transformer(2021): T5の混合エキスパート版で、エンコーダーブロックとデコーダーブロックのフィードフォワード層を混合エキスパートフィードフォワード層に置き換えたものである。[13] [14]
- T0 3B、11B(2021): LM適応型T5のチェックポイントから始まり、さらにタスク指示(ゼロショット)のみに基づいてタスクを実行するように訓練された一連のモデル。 [15]シリーズの異なるエントリは、異なる微調整データを使用しています。[16]
- ByT5(2021):mC4(多言語C4)データセットでトレーニングされたT5のバイトレベルバージョン。[17]トークナイザーなしで、 UTF-8バイトとしてエンコードされたテキストに対して動作します。
- Flan-T5-XL (2022): T5 XLのチェックポイントから始まり、FLANデータセットで命令調整されたモデル。 [18] [19] [20] [21]
- T5X (2022):オリジナルのT5コードベースのJAXベースの再実装。モデルではありません。 [22]オリジナルのT5コードベースは、 MeshTFを使用してTensorFlowで実装されました。[2]
- UL2 20B(2022): T5シリーズと同じアーキテクチャを持つモデルですが、20Bにスケールアップされ、C4で「ノイズ除去の混合」目標でトレーニングされました。[23]トレーニング実行が誤って1か月間実行されたままになったため、偶然にTPUクラスターでトレーニングされました。[24]
- Flan-UL2 20B(2022):FLANデータセットでUL2 20B命令を微調整した。 [23] [20]
- Pile-T5 (2024): T5と同じアーキテクチャだが、 Llamaトークナイザーを使用している。The Pileでトレーニングされた。サイズはベース、ラージ、XL、XXLがある。[25]
アプリケーション
T5 モデル自体はエンコーダー/デコーダー モデルであり、命令の追跡に使用できます。エンコーダーは命令をエンコードし、デコーダーは自己回帰的に応答を生成します。
T5エンコーダはBERTと同様にテキストエンコーダとして使用できます。テキストを実数ベクトルのシーケンスにエンコードし、下流のアプリケーションで使用できます。たとえば、Google Imagen [26]はT5-XXLをテキストエンコーダとして使用し、エンコードされたテキストベクトルは拡散モデルの条件付けとして使用されます。別の例として、AuraFlow拡散モデル[27]はPile-T5-XLを使用します。
参考文献
- ^ abc Raffel, Colin; Shazeer, Noam; Roberts, Adam; Lee, Katherine; Narang, Sharan; Matena, Michael; Zhou, Yanqi; Li, Wei; Liu, Peter J. (2020). 「統合テキストツーテキストトランスフォーマーによる転移学習の限界の探究」。Journal of Machine Learning Research。21 ( 140) : 1–67。arXiv : 1910.10683。ISSN 1533-7928。
- ^ ab google-research/text-to-text-transfer-transformer、Google Research、2024-08-21、2024-08-21取得
- ^ ヴァスワニ、アシシュ;シャジーア、ノーム。パルマー、ニキ。ウシュコレイト、ヤコブ。ジョーンズ、リオン。ゴメス、エイダン N;カイザー、ウカシュ。ポロスキン、イリア (2017)。 「必要なのは注意力だけです」。神経情報処理システムの進歩。30.カランアソシエイツ株式会社
- ^ ジャン、ユンファン;グプタ、アグリム。チャン・ジチェン。王観志。ドゥー、ヨン強。チェン、ヤンジュン。フェイフェイ、リー。アナンドクマール、アニマ。朱、祐克 (2022-10-06)。 「VIMA: マルチモーダル プロンプトを使用した一般的なロボット操作」。arXiv : 2210.03094 [cs.RO]。
- ^ ab Zhang, Aston; Lipton, Zachary; Li, Mu; Smola, Alexander J. (2024). 「11.9. Transformers による大規模事前トレーニング」。ディープラーニングへの挑戦。ケンブリッジ、ニューヨーク、ポートメルボルン、ニューデリー、シンガポール: ケンブリッジ大学出版局。ISBN 978-1-009-38943-3。
- ^ “config.json · google-t5/t5-11b at main”. huggingface.co . 2020-04-24 . 2024-09-17閲覧。
- ^ Shaw, Peter; Uszkoreit, Jakob; Vaswani, Ashish (2018-04-12)、相対位置表現による自己注意、arXiv : 1803.02155
- ^ ab "t5x/docs/models.md at main · google-research/t5x". GitHub . 2024年8月5日閲覧。
- ^ Shazeer, Noam (2020-02-12)、GLUバリアントがTransformerを改善する、 arXiv : 2002.05202、2024-10-16取得
- ^ “config.json · google/t5-v1_1-xl at main”. huggingface.co . 2020-11-19 . 2024-09-17閲覧。
- ^ “config.json · google/t5-v1_1-xxl at main”. huggingface.co . 2020-11-19 . 2024-09-17閲覧。
- ^ レスター、ブライアン、アル・ルフー、ラミ、コンスタント、ノア(2021-09-02)、パラメータ効率の良いプロンプトチューニングのためのスケールの力、arXiv:2104.08691
- ^ Fedus, William; Zoph, Barret; Shazeer, Noam (2022-06-16)、スイッチトランスフォーマー:シンプルで効率的なスパース性を備えた1兆パラメータモデルへのスケーリング、arXiv:2101.03961
- ^ “SwitchTransformers”. huggingface.co . 2024年8月5日閲覧。
- ^ Sanh, Victor; Webson, Albert; Raffel, Colin; Bach, Stephen H.; Sutawika, Lintang; Alyafeai, Zaid; Chaffin, Antoine; Stiegler, Arnaud; Scao, Teven Le (2022-03-17)、マルチタスクプロンプトトレーニングによりゼロショットタスクの一般化が可能に、arXiv : 2110.08207
- ^ “bigscience/T0 · Hugging Face”. huggingface.co . 2024年3月4日. 2024年8月21日閲覧。
- ^ Xue, Linting; Barua, Aditya; Constant, Noah; Al-Rfou, Rami; Narang, Sharan; Kale, Mihir; Roberts, Adam; Raffel, Colin (2022-03-25). 「ByT5: 事前トレーニング済みのバイトツーバイトモデルによるトークンフリーの未来へ」. Transactions of the Association for Computational Linguistics . 10 : 291–306. arXiv : 2105.13626 . doi :10.1162/tacl_a_00461. ISSN 2307-387X.
- ^ チョン・ヒョンウォン;ホウ、ル。ロングプレ、シェイン。ゾフ、バレット。テイ、イー。フェダス、ウィリアム。リー・ユンシュアン。王雪志。デガニ、モスタファ。ブラフマー、シッダールタ。アルバート・ウェブソン。グー・シーシャン・シェーン。ダイ、ジュユン。スズガン、ミラク。チェン・シンユン(2024)。 「スケーリング命令 - 微調整された言語モデル」。機械学習研究ジャーナル。25 (70): 1-53。arXiv : 2210.11416。ISSN 1533-7928。
- ^ Longpre, Shayne; Hou, Le; Vu, Tu; Webson, Albert; Chung, Hyung Won; Tay, Yi; Zhou, Denny; Le, Quoc V.; Zoph, Barret; Wei, Jason; Roberts, Adam (2023-07-03). 「The Flan Collection: Designing Data and Methods for Effective Instruction Tuning」. Proceedings of the 40th International Conference on Machine Learning . PMLR: 22631–22648. arXiv : 2301.13688 .
- ^ ab google-research/FLAN、Google Research、2024-08-03、2024-08-05取得
- ^ “google/flan-t5-xl · Hugging Face”. huggingface.co . 2024年1月4日. 2024年8月5日閲覧。
- ^ Roberts, Adam; Chung, Hyung Won; Mishra, Gaurav; Levskaya, Anselm; Bradbury, James; Andor, Daniel; Narang, Sharan; Lester, Brian; Gaffney, Colin; Mohiuddin, Afroz; Hawthorne, Curtis; Lewkowycz, Aitor; Salcianu, Alex; Zee, Marc van; Austin, Jacob (2023). 「t5x と seqio によるモデルとデータのスケーリング」。Journal of Machine Learning Research。24 ( 377): 1–8。ISSN 1533-7928 。
- ^ ab Tay, Yi; Dehghani, Mostafa; Tran, Vinh Q.; Garcia, Xavier; Wei, Jason; Wang, Xuezhi; Chung, Hyung Won; Shakeri, Siamak; Bahri, Dara (2023-02-28)、UL2:言語学習パラダイムの統一、arXiv:2205.05131
- ^ 「スタートアップとして荒野で一から優秀な法学修士を育成」Yi Tay . 2024年10月18日閲覧。
- ^ リンタン州スタウィカ;小松崎、アラン。ラフェル、コリン (2024-04-15)。 「パイル-T5」。EleutherAI ブログ。2024 年 5 月 5 日に取得。
- ^ 「Imagen: テキストから画像への拡散モデル」。imagen.research.google 。 2024年8月23日閲覧。
- ^ 「AuraFlow」. huggingface.co . 2024年8月23日閲覧。
外部リンク
- 「T5 リリース - Google コレクション」。huggingface.co . 2024-07-31 . 2024-10-16閲覧。
注記
- ^
トランスフォーマーからトーチ をインポートします。AutoConfig 、AutoModelForSeq2SeqLMをインポートします。 def count_parameters ( model ): enc = sum ( p . numel () for p in model . encoding . Parameters ()) dec = sum ( p . numel () for p in model . converter . Parameters ()) total = enc + dec return total , enc , dec nameが [ "t5-small" 、"t5-base" 、"t5-large" 、"t5-3b" 、"t5-11b" ]の 場合: print ( f "モデル: { name } " ) config = AutoConfig . from_pretrained ( f "google-t5/ { name } " ) torch_dtype = torch . float16 モデル = AutoModelForSeq2SeqLM . from_config ( config 、 torch_dtype = torch_dtype ) 合計、 enc 、 dec = count_parameters (モデル) print ( f " { name }内のパラメータの合計数: { total } " ) print ( f "エンコーダー内のパラメータの合計数: { enc } " ) print ( f "デコーダー内のパラメータの合計数: { dec } " ) デル モデル
- ^
トランスフォーマーからトーチ をインポートします。AutoConfig 、AutoModelForSeq2SeqLMをインポートします。 def count_parameters ( model ): enc = sum ( p . numel () for p in model . encoding . Parameters ()) dec = sum ( p . numel () for p in model . converter . Parameters ()) total = enc + dec return total , enc , dec for name in [ "small" , "base" , "large" , "xl" , "xxl" ]: print ( f "モデル: { name } " ) config = AutoConfig . from_pretrained ( f "google/t5-v1_1- { name } " ) torch_dtype = torch . float16 モデル = AutoModelForSeq2SeqLM . from_config ( config 、 torch_dtype = torch_dtype ) 合計、 enc 、 dec = count_parameters (モデル) print ( f " { name }内のパラメータの合計数: { total } " ) print ( f "エンコーダー内のパラメータの合計数: { enc } " ) print ( f "デコーダー内のパラメータの合計数: { dec } " ) デル モデル
