语言:
- 英文
数据集:
- c4
标签:
- 深度窄型
推理: false
许可证: apache-2.0
T5-Efficient-SMALL-DM768 (深度窄型版本)
T5-Efficient-SMALL-DM768 是 Google 原始 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-small-dm768——属于 Small 模型类型,具有以下变体:
它有 90.77 百万参数,因此在全精度(fp32)下需要约 363.1 MB 内存,或在半精度(fp16 或 bf16)下需要 181.55 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。
预训练
该检查点在 Colossal, Cleaned version of Common Crawl (C4) 上进行了预训练,共 524288 步,使用了基于跨度的掩码语言建模(MLM)目标。
微调
注意:此模型是一个预训练检查点,需要微调才能实际使用。该检查点是用英语预训练的,因此仅适用于英语 NLP 任务。您可以参考以下示例之一来微调模型:
PyTorch:
- 摘要
- 问答
- 文本分类 - 注意:您需要稍微调整训练示例以使其适用于编码器-解码器模型。
Tensorflow:
- 摘要
- 文本分类 - 注意:您需要稍微调整训练示例以使其适用于编码器-解码器模型。
JAX/Flax:
- 摘要
- 文本分类 - 注意:您需要稍微调整训练示例以使其适用于编码器-解码器模型。
下游性能
待办:添加表格(如果有)
计算复杂度
待办:添加表格(如果有)
更多信息
我们强烈建议读者仔细阅读原始论文 高效扩展:来自预训练和微调 Transformer 的见解,以更细致地理解此模型检查点。如以下 issue 所述,包含 sh 或 skv 模型架构变体的检查点未移植到 Transformers 中,因为它们可能在实际应用中用途有限且缺乏更详细的描述。这些检查点保存在 此处,未来可能会被移植。