模型:
google/t5-efficient-tiny
T5-Efficient-TINY是 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层时趋于稳定。最后,我们指出这里的效率概念与任一计算维度(参数、FLOP 或吞吐量(速度))相关。我们报告了所有三个关键的效率指标(参数数量、计算量以及速度),并将这个决定留给从业者自行决定要考虑的计算维度。
如要更准确,模型深度被定义为依次堆叠的 transformer block 的数量。因此,每个 transformer block 按顺序处理一系列词嵌入。
此模型检查点 - t5-efficient-tiny - 是Tiny模型类型的模型,没有变化。它有1558万个参数,因此在完整精度(fp32)下需要约62.32 MB的内存,而在半精度(fp16或bf16)下需要31.16 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,因为它们可能在实际使用中受到限制,并且缺乏更详细的描述。这些检查点被保留 here ,因为将来有可能会进行移植。