模型:
google/t5-efficient-small-el16
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 模型类型的,具有以下变化:
它有 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 中,因为它们将来有可能被移植。