模型:
google/t5-efficient-mini
T5-Efficient-MINI是 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效率的相对增益随着层数的增加而减小,收敛于32到36层。最后,我们注意到,这里的效率概念与任何一个计算维度相关,即params、FLOPs或吞吐量(速度)。我们报告所有三个关键的效率指标(参数数量、FLOPS和速度),并将这个决定留给从业者决定考虑哪个计算维度。
更准确地说,模型深度被定义为按顺序堆叠的transformer块的数量。因此,每个transformer块按顺序处理一个词嵌入序列。
此模型检查点 - t5-efficient-mini - 是一种没有变化的Mini型模型。它有3123万个参数,因此完全精度(fp32)下需要约124.92 MB的内存,或者半精度(fp16或bf16)下需要62.46 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 以更加细致地了解此模型检查点。如 issue 所述,未将包括sh或skv模型架构变化的检查点移植到Transformers中,因为它们可能在实际使用中有限,并且缺乏更详细的描述。这些检查点保留下来,因为它们可能在将来可能移植。