语言:
- 英语
数据集:
- c4
标签:
- 深度窄型
推理: false
许可证: apache-2.0
T5高效大模型(深度窄型版本)
T5-Efficient-LARGE是基于谷歌原版T5的变体,遵循T5模型架构。这是一个仅预训练的检查点,随论文**高效扩展:来自预训练与微调Transformer的洞见**发布,作者包括Yi Tay、Mostafa Dehghani、Jinfeng Rao、William Fedus、Samira Abnar、Hyung Won Chung、Sharan Narang、Dani Yogatama、Ashish Vaswani、Donald Metzler。
简而言之,论文指出,在参数数量相近的情况下,深度窄型模型架构相比其他架构更有利于下游任务性能。
引用论文内容:
我们通常推荐采用DeepNarrow策略,即在考虑其他维度均匀扩展之前,优先增加模型的深度。这主要是因为深度如何影响帕累托前沿,如论文前几节所示。具体而言,高瘦(深且窄)的模型通常比基础模型更高效。同样,高瘦的基础模型也可能普遍比大型模型更高效。我们发现,无论模型大小如何,即使随着层数增加绝对性能可能提升,但帕累托效率的相对增益会随着层数增加而减弱,最终在32至36层时趋于收敛。最后,我们注意到这里的效率概念涉及任一计算维度,即参数数量、FLOPs或吞吐量(速度)。我们报告了所有三个关键效率指标(参数数量、FLOPS和速度),并将具体考量维度留给实践者决定。
更准确地说,模型深度定义为顺序堆叠的Transformer块数量。因此,词嵌入序列会依次通过每个Transformer块处理。
模型架构详情
此模型检查点——t5-efficient-large——属于Large类型,无变体。它拥有7.3772亿参数,因此在全精度(fp32)下需要约2950.9 MB内存,半精度(fp16或bf16)下需要1475.45 MB内存。
原始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 |
Transformer块数量(深度) |
dm |
嵌入向量维度(Transformer块输出向量维度) |
kv |
键/值投影矩阵维度 |
nh |
注意力头数量 |
ff |
Transformer块内中间向量维度(前馈投影矩阵大小) |
el |
编码器中Transformer块数量(编码器深度) |
dl |
解码器中Transformer块数量(解码器深度) |
sh |
表示注意力头共享 |
skv |
表示键值投影矩阵绑定 |
若模型检查点未特别标注el或dl,则编码器和解码器层数均对应nl。
预训练
该检查点在大规模清理版Common Crawl(C4)上进行了524288步的预训练,采用基于跨度的掩码语言建模(MLM)目标。
微调
注意:此模型为预训练检查点,需经微调方可实际使用。该检查点以英语预训练,因此仅适用于英语NLP任务。可参考以下示例进行微调:
PyTorch:
TensorFlow:
JAX/Flax:
下游性能
待补充:如有数据则添加表格
计算复杂度
待补充:如有数据则添加表格
更多信息
强烈建议读者仔细阅读原文**高效扩展:来自预训练与微调Transformer的洞见以深入理解此模型检查点。如此issue所述,包含sh或skv架构变体的检查点未**移植至Transformers库,因其实际应用可能有限且缺乏详细描述。这些检查点暂存于此,未来可能移植。