🚀 T5-Efficient-BASE-FF9000 (深度窄化版本)
T5-Efficient-BASE-FF9000是谷歌原始T5的一個變體,遵循T5模型架構。它是一個僅預訓練的檢查點,隨論文**高效擴展:預訓練和微調Transformer的見解**發佈,論文作者為Yi Tay、Mostafa Dehghani、Jinfeng Rao、William Fedus、Samira Abnar、Hyung Won Chung、Sharan Narang、Dani Yogatama、Ashish Vaswani、Donald Metzler。
簡而言之,該論文指出,與參數數量相近的其他模型架構相比,深度窄化的模型架構在下游任務表現上更具優勢。
引用論文原文:
我們通常推薦採用深度窄化策略,即在考慮對其他維度進行統一擴展之前,優先增加模型的深度。這主要是因為論文前面章節所展示的,深度對帕累託前沿的影響程度。具體而言,一個高瘦(深度大且寬度窄)的模型通常比基礎模型更高效。同樣,一個高瘦的基礎模型可能也比大型模型更高效。我們普遍發現,無論模型大小如何,即使隨著層數的增加,絕對性能可能會提高,但帕累託效率的相對增益會隨著層數的增加而減小,在32到36層時趨於收斂。最後,我們注意到這裡所說的效率與任何一種計算維度相關,即參數數量、浮點運算次數(FLOPs)或吞吐量(速度)。我們報告了所有三個關鍵的效率指標(參數數量、FLOPs和速度),並將選擇考慮哪種計算維度的決定權留給從業者。
更準確地說,模型深度定義為順序堆疊的Transformer塊的數量。因此,詞嵌入序列會依次經過每個Transformer塊進行處理。
✨ 主要特性
該模型檢查點 - t5-efficient-base-ff9000 - 屬於基礎模型類型,具有以下變體:
它有4.4942億個參數,因此在全精度(fp32)下大約需要1797.7 MB的內存,在半精度(fp16 或 bf16)下需要898.85 MB的內存。
以下是原始 T5模型架構的總結:
模型 |
nl (el/dl) |
ff |
dm |
kv |
nh |
參數數量 |
微型(Tiny) |
4/4 |
1024 |
256 |
32 |
4 |
1600萬 |
小型(Mini) |
4/4 |
1536 |
384 |
32 |
8 |
3100萬 |
小(Small) |
6/6 |
2048 |
512 |
32 |
8 |
6000萬 |
基礎(Base) |
12/12 |
3072 |
768 |
64 |
12 |
2.2億 |
大型(Large) |
24/24 |
4096 |
1024 |
64 |
16 |
7.38億 |
超大(Xl) |
24/24 |
16384 |
1024 |
128 |
32 |
30億 |
超超大(XXl) |
24/24 |
65536 |
1024 |
128 |
128 |
110億 |
以下是使用的縮寫說明:
縮寫 |
定義 |
nl |
Transformer塊的數量(深度) |
dm |
嵌入向量的維度(Transformer塊的輸出向量) |
kv |
鍵/值投影矩陣的維度 |
nh |
注意力頭的數量 |
ff |
Transformer塊內中間向量的維度(前饋投影矩陣的大小) |
el |
編碼器中Transformer塊的數量(編碼器深度) |
dl |
解碼器中Transformer塊的數量(解碼器深度) |
sh |
表示注意力頭是共享的 |
skv |
表示鍵值投影矩陣是綁定的 |
如果一個模型檢查點沒有特定的 el 或 dl,則編碼器層和解碼器層的數量都對應於 nl。
📦 安裝指南
文檔未提及安裝步驟,故跳過此章節。
💻 使用示例
文檔未提及代碼示例,故跳過此章節。
📚 詳細文檔
預訓練
該檢查點在大規模清理版通用爬蟲數據(C4)上進行了524288步的預訓練,採用基於跨度的掩碼語言建模(MLM)目標。
微調
⚠️ 重要提示
此模型是一個預訓練檢查點,需要進行微調才能實際使用。該檢查點是用英語進行預訓練的,因此僅適用於英語自然語言處理任務。
你可以參考以下示例來微調該模型:
PyTorch:
- 文本摘要
- 問答
- 文本分類 - 注意:你需要對這裡的訓練示例進行一些微調,使其適用於編碼器 - 解碼器模型。
Tensorflow:
- 文本摘要
- 文本分類 - 注意:你需要對這裡的訓練示例進行一些微調,使其適用於編碼器 - 解碼器模型。
JAX/Flax:
- 文本摘要
- 文本分類 - 注意:你需要對這裡的訓練示例進行一些微調,使其適用於編碼器 - 解碼器模型。
下游性能
文檔未提供相關表格,故跳過此章節。
計算複雜度
文檔未提供相關表格,故跳過此章節。
更多信息
我們強烈建議讀者仔細閱讀原始論文**高效擴展:預訓練和微調Transformer的見解**,以更深入地瞭解這個模型檢查點。正如此問題中所解釋的,包含 sh 或 skv 模型架構變體的檢查點尚未移植到Transformers庫中,因為它們可能實際用途有限,且缺乏更詳細的描述。這些檢查點保存在這裡,可能會在未來進行移植。
🔧 技術細節
準確來說,模型深度定義為順序堆疊的Transformer塊的數量。一個詞嵌入序列會依次經過每個Transformer塊進行處理。
📄 許可證
該項目採用Apache-2.0許可證。