英文

T5-Efficient-SMALL-EL16 (Deep-Narrow 版本)

T5-Efficient-SMALL-EL16 是一个根据 T5 model architecture 进行改进的 T5-Efficient-SMALL 版本。它是一个只有预训练模型的检查点,是由 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 策略,在考虑其他形式的均匀缩放之前优先增加模型的深度。这主要是因为深度在 Pareto-前沿的影响如论文早期部分所示。具体而言,通常较高的小型模型(深而窄)相对于基本模型更高效。同样,通常情况下较高的基本模型相对于大型模型更高效。我们通常发现,无论大小,即使继续堆叠层时绝对性能可能会增加,但 Pareto 效率的相对增益随着层数的增加而减少,在 32 到 36 层时收敛。最后,我们指出在这里的效率概念与任何一个计算维度(参数、FLOPs 或吞吐量)相关,我们报告了所有三个关键的效率指标(参数数量、FLOPS 和速度),并将此决定留给从业者决定考虑哪个计算维度。

更确切地说,模型的深度定义为堆叠在一起的连续 Transformer 块的数量。因此,一个单词嵌入序列通过每个 Transformer 块按顺序进行处理。

详细模型架构

此模型检查点 - t5-efficient-small-el16 - 是 Small 模型类型的,具有以下变化:

  • el 是 16

它有 9200 万个参数,因此需要大约 367.99 MB 的内存(全精度 fp32),或者 183.99 MB 的内存(半精度 fp16 或 bf16)。

原始 T5 模型架构的摘要可以在此处查看:

Model nl (el/dl) ff dm kv nh #Params
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

下面是使用的缩写:

Abbreviation Definition
nl Number of transformer blocks (depth)
dm Dimension of embedding vector (output vector of transformers block)
kv Dimension of key/value projection matrix
nh Number of attention heads
ff Dimension of intermediate vector within transformer block (size of feed-forward projection matrix)
el Number of transformer blocks in the encoder (encoder depth)
dl Number of transformer blocks in the decoder (decoder depth)
sh Signifies that attention heads are shared
skv Signifies that key-values projection matrices are tied

如果模型检查点没有特定的 el 或 dl,那么编码器和解码器层数的数量都对应 nl。

预训练

该检查点在 Colossal, Cleaned version of Common Crawl (C4) 上通过使用基于跨度的掩码语言模型(MLM)目标进行了 524288 步的预训练。

微调

注意:此模型是一个预训练的检查点,需要进行微调以供实际使用。该检查点在英语上进行了预训练,因此仅适用于英语 NLP 任务。您可以参考以下示例,了解如何对模型进行微调:

PyTorch:

TensorFlow:

JAX/Flax:

下游性能

TODO:如果可用,添加表格

计算复杂度

TODO:如果可用,添加表格

更多信息

我们强烈建议读者仔细阅读原始论文 Scale Efficiently: Insights from Pre-training and Fine-tuning Transformers ,以更深入地了解此模型检查点。正如以下 issue 中所解释的,包括 sh 或 skv 模型架构变体的检查点尚未在 Transformers 中进行移植,因为它们可能在实际使用中有限,且缺乏更详细的描述。这些检查点保存在 here 中,因为它们将来有可能被移植。