模型:
google/t5-efficient-xl
T5-Efficient-XL是 Google's original T5 的变体,遵循 T5 model architecture 的方式。它是一个仅供预训练的检查点,并且是由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 中发布的。
简而言之,该论文指出,与相似参数数量的其他模型结构相比,深窄模型架构对下游性能更有利。
引用该论文的话:
我们一般建议在考虑其他形式的统一缩放之前,优先增加模型的深度,采用深窄策略。这主要是因为深度在前面部分所示的Pareto前沿中的影响有多大。具体来说,在所有小型(深而窄)模型中,通常相对于基础模型而言效率更高。同样,较高的基础模型通常相对于较大的模型而言效率更高。我们通常发现,无论尺寸如何,即使继续堆叠层可能使绝对性能提高,但Pareto效率的相对增益随着层数的增加而减少,在32到36层时趋于收敛。最后,我们指出这里的效率概念与任何一个计算维度有关,即参数、FLOPs或吞吐量(速度)。我们报告了所有三个关键效率指标(参数数量、FLOPS和速度),并将决定留给从业者决定考虑哪个计算维度。
为了更加准确,模型的深度被定义为按顺序堆叠的transformer块的数量。因此,每个transformer块依次处理一个词嵌入序列。
该模型检查点—t5-efficient-xl—是Xl型的模型,没有变体。它有2851.66亿个参数,因此完整精度(fp32)需要约11406.62 MB的内存,半精度(fp16或bf16)需要约5703.31 MB的内存。
原始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:
待办事项:如有可用表格,请添加。
待办事项:如有可用表格,请添加。
我们强烈推荐读者仔细阅读原始论文 Scale Efficiently: Insights from Pre-training and Fine-tuning Transformers ,以更全面地了解该模型检查点。如下所述,包括sh或skv模型架构变体的检查点尚未移植到Transformers,因为它们可能在实际使用中有限,并且缺乏更详细的描述。这些检查点被保留下来,因为它们可能将来可能被移植。