🚀 T5-Efficient-BASE(深度窄化版本)
T5-Efficient-BASE是谷歌原始T5的一个变体,遵循T5模型架构。它是一个仅预训练的检查点,随论文**高效扩展:来自预训练和微调Transformer的见解**发布,论文作者为Yi Tay、Mostafa Dehghani、Jinfeng Rao、William Fedus、Samira Abnar、Hyung Won Chung、Sharan Narang、Dani Yogatama、Ashish Vaswani、Donald Metzler。
简而言之,该论文指出,与参数数量相近的其他模型架构相比,深度窄化的模型架构在下游任务性能上更具优势。
引用论文中的内容:
我们通常推荐深度窄化策略,即在考虑对其他维度进行统一扩展之前,优先增加模型的深度。这主要是因为论文前面章节所展示的深度对帕累托前沿的影响程度。具体来说,一个又高又小(深度大且宽度窄)的模型通常比基础模型更高效。同样,一个高基础模型通常也可能比大型模型更高效。我们普遍发现,无论模型大小如何,即使随着层数的不断堆叠,绝对性能可能会提高,但随着层数的增加,帕累托效率的相对增益会逐渐减小,在32到36层时收敛。最后,我们注意到这里的效率概念与任何一种计算维度相关,即参数数量、浮点运算次数(FLOPs)或吞吐量(速度)。我们报告了所有三个关键的效率指标(参数数量、FLOPS和速度),并将选择考虑哪种计算维度的决定权留给从业者。
更准确地说,模型深度定义为顺序堆叠的Transformer块的数量。因此,词嵌入序列会依次由每个Transformer块进行处理。
✨ 主要特性
本模型具有以下特性:
- 基于谷歌原始T5模型架构进行改进。
- 采用深度窄化策略,在下游任务性能上表现更优。
- 仅预训练,需进行微调以应用于实际任务。
📦 安装指南
文档未提及安装步骤,故跳过此章节。
💻 使用示例
文档未提供代码示例,故跳过此章节。
📚 详细文档
详细模型架构
此模型检查点 - t5-efficient-base - 属于基础模型类型,无变体。它有2.2293亿个参数,因此在全精度(fp32)下大约需要891.73 MB的内存,在半精度(fp16 或 bf16)下需要445.86 MB的内存。
原始 T5模型架构总结如下:
模型 |
nl (el/dl) |
ff |
dm |
kv |
nh |
参数数量 |
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 |
使用的缩写含义如下:
缩写 |
定义 |
nl |
Transformer块的数量(深度) |
dm |
嵌入向量的维度(Transformer块的输出向量) |
kv |
键/值投影矩阵的维度 |
nh |
注意力头的数量 |
ff |
Transformer块内中间向量的维度(前馈投影矩阵的大小) |
el |
编码器中Transformer块的数量(编码器深度) |
dl |
解码器中Transformer块的数量(解码器深度) |
sh |
表示注意力头共享 |
skv |
表示键值投影矩阵绑定 |
如果一个模型检查点没有特定的 el 或 dl,则编码器层和解码器层的数量都对应于 nl。
预训练
该检查点在大规模清理版通用爬虫数据集(C4)上进行了524288步的预训练,使用基于跨度的掩码语言建模(MLM)目标。
微调
⚠️ 重要提示
此模型是一个预训练检查点,需要进行微调才能用于实际任务。该检查点是用英语进行预训练的,因此仅适用于英语自然语言处理任务。
你可以参考以下示例来微调模型:
PyTorch:
- 文本摘要
- 问答
- 文本分类 - 注意: 你需要对这里的训练示例进行一些微调,使其适用于编码器 - 解码器模型。
Tensorflow:
- 文本摘要
- 文本分类 - 注意: 你需要对这里的训练示例进行一些微调,使其适用于编码器 - 解码器模型。
JAX/Flax:
- 文本摘要
- 文本分类 - 注意: 你需要对这里的训练示例进行一些微调,使其适用于编码器 - 解码器模型。
下游性能
文档中提到待添加表格,暂无实质内容,故跳过此章节。
计算复杂度
文档中提到待添加表格,暂无实质内容,故跳过此章节。
更多信息
我们强烈建议读者仔细阅读原始论文**高效扩展:来自预训练和微调Transformer的见解**,以更深入地了解此模型检查点。正如此问题中所解释的,包含 sh 或 skv 模型架构变体的检查点尚未移植到Transformers中,因为它们可能实际用途有限,且缺乏更详细的描述。这些检查点保留在此处,可能会在未来进行移植。
🔧 技术细节
模型深度定义
模型深度定义为顺序堆叠的Transformer块的数量,词嵌入序列会依次由每个Transformer块进行处理。
深度窄化策略优势
采用深度窄化策略,在下游任务性能上比参数数量相近的其他模型架构更具优势。随着层数增加,帕累托效率的相对增益会逐渐减小,在32到36层时收敛。
📄 许可证
本项目采用Apache-2.0许可证。