🚀 T5-Efficient-SMALL (Deep-Narrow version)
T5-Efficient-SMALLは、GoogleのオリジナルT5をベースに、T5モデルアーキテクチャに則ったバリエーションです。これは事前学習のみのチェックポイントであり、Yi Tay, Mostafa Dehghani, Jinfeng Rao, William Fedus, Samira Abnar, Hyung Won Chung, Sharan Narang, Dani Yogatama, Ashish Vaswani, Donald Metzlerによる論文 Scale Efficiently: Insights from Pre-training and Fine-tuning Transformers とともに公開されました。
一言で言えば、この論文は、同じパラメータ数の他のモデルアーキテクチャと比較して、Deep-Narrowモデルアーキテクチャが下流の性能に有利であることを示しています。
論文から引用すると、
一般的に、他の次元での均一なスケーリングを考える前に、モデルの深さを優先的に増やすDeepNarrow戦略を推奨します。これは主に、論文の前半部分で示されたように、深さがパレートフロンティアにどれだけ影響を与えるかによるものです。具体的には、高くて小さい(深くて狭い)モデルは、基本モデルと比較して一般的により効率的です。同様に、高い基本モデルも、大きなモデルと比較して一般的により効率的である可能性があります。一般的に、サイズに関係なく、レイヤーを積み重ね続けると絶対的な性能が向上するかもしれませんが、パレート効率の相対的な向上はレイヤーを増やすにつれて減少し、32から36レイヤーで収束します。最後に、ここでの効率の概念は、パラメータ、FLOPまたはスループット(速度)などの任意のコンピュート次元に関係します。私たちは3つの主要な効率指標(パラメータ数、FLOP数、速度)を報告し、どのコンピュート次元を考慮するかの決定は実践者に委ねます。
より正確に言うと、モデルの深さは、順次積み重ねられたトランスフォーマーブロックの数として定義されます。したがって、単語埋め込みのシーケンスは、各トランスフォーマーブロックによって順次処理されます。
📚 ドキュメント
詳細なモデルアーキテクチャ
このモデルチェックポイント - t5-efficient-small - は、モデルタイプがSmallで、バリエーションはありません。このモデルは6052万のパラメータを持ち、したがって、完全精度(fp32)では約242.08MB、半精度(fp16またはbf16)では121.04MBのメモリを必要とします。
オリジナルのT5モデルアーキテクチャの概要は次のとおりです。
モデル |
nl (el/dl) |
ff |
dm |
kv |
nh |
#パラメータ |
Tiny |
4/4 |
1024 |
256 |
32 |
4 |
16M |
Mini |
4/4 |
1536 |
384 |
32 |
8 |
31M |
Small |
6/6 |
2048 |
512 |
32 |
8 |
60M |
Base |
12/12 |
3072 |
768 |
64 |
12 |
220M |
Large |
24/24 |
4096 |
1024 |
64 |
16 |
738M |
Xl |
24/24 |
16384 |
1024 |
128 |
32 |
3B |
XXl |
24/24 |
65536 |
1024 |
128 |
128 |
11B |
以下の略語が使用されています。
略語 |
定義 |
nl |
トランスフォーマーブロックの数(深さ) |
dm |
埋め込みベクトルの次元(トランスフォーマーブロックの出力ベクトル) |
kv |
キー/バリュー投影行列の次元 |
nh |
注意ヘッドの数 |
ff |
トランスフォーマーブロック内の中間ベクトルの次元(フィードフォワード投影行列のサイズ) |
el |
エンコーダ内のトランスフォーマーブロックの数(エンコーダの深さ) |
dl |
デコーダ内のトランスフォーマーブロックの数(デコーダの深さ) |
sh |
注意ヘッドが共有されていることを示す |
skv |
キーバリュー投影行列が結合されていることを示す |
モデルチェックポイントに特定のelまたはdlがない場合、エンコーダとデコーダのレイヤー数はどちらもnlに対応します。
事前学習
このチェックポイントは、Colossal, Cleaned version of Common Crawl (C4)で、spanベースのマスク言語モデリング(MLM)の目的で524288ステップの事前学習が行われました。
ファインチューニング
⚠️ 重要提示
このモデルは事前学習済みのチェックポイントであり、実用的な使用にはファインチューニングが必要です。このチェックポイントは英語で事前学習されているため、英語の自然言語処理タスクにのみ有用です。
モデルをファインチューニングする方法の例を次に示します。
PyTorch:
- 要約
- 質問応答
- テキスト分類 - 注意: エンコーダ - デコーダモデルで動作させるために、ここでのトレーニング例を少し調整する必要があります。
Tensorflow:
- 要約
- テキスト分類 - 注意: エンコーダ - デコーダモデルで動作させるために、ここでのトレーニング例を少し調整する必要があります。
JAX/Flax:
- 要約
- テキスト分類 - 注意: エンコーダ - デコーダモデルで動作させるために、ここでのトレーニング例を少し調整する必要があります。
その他の情報
このモデルチェックポイントについてより詳細な理解を得るために、読者には元の論文 Scale Efficiently: Insights from Pre-training and Fine-tuning Transformers を注意深く読むことを強くおすすめします。このissueで説明されているように、shまたはskvのモデルアーキテクチャバリエーションを含むチェックポイントは、実用的な用途が限られており、詳細な説明が不足しているため、Transformersに移植されていません。これらのチェックポイントは、将来的に移植される可能性があるため、ここに保存されています。
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。