描述
Funnel-Transformer 是一种新颖的自注意力模型,旨在通过逐步压缩隐藏状态序列来提高语言处理的效率。这种压缩显著降低了计算成本,同时允许在给定的计算预算下构建更高容量的模型,无论是更深还是更宽。其核心创新在于能够将节省的 FLOPs 再投资于模型复杂度。
此外,Funnel-Transformer 包含一个解码器机制,可以从压缩的隐藏序列中重建 token 级深度表示。此功能对于实现标准预训练方法至关重要,使模型更加通用,并可应用于更广泛的自然语言处理任务。该模型的技术细节和实验验证在研究论文中有所介绍。
该项目提供了 TensorFlow 和 PyTorch 的实现。TensorFlow 版本专门为 TPU 预训练和微调而开发,支持 GLUE benchmark 微调、文本分类、SQuAD 和 RACE 等任务。PyTorch 实现作为示例,主要支持 GPU 对 GLUE benchmark 和文本分类进行微调。
预训练模型提供多种尺寸和配置,包括不同的层深度和隐藏单元数量。每个模型包都包含一个 TensorFlow 或 PyTorch checkpoint、一个用于 tokenization 的 Word Piece 词汇文件以及一个详细说明模型超参数的配置文件。还提供了一个脚本来下载所有可用的 checkpoint。在 TensorFlow 和 PyTorch 目录中的相应 README 文件中详细说明了使用预训练模型和进行微调的说明。
Funnel-Transformer亮点
隐藏状态的渐进式压缩
降低计算成本
增加模型容量(深度/宽度)
恢复 token 级表示
支持标准预训练
用于 TPU 的 TensorFlow 实现
用于 GPU 的 PyTorch 实现
支持 GLUE benchmark、文本分类、SQuAD、RACE
提供多种预训练模型尺寸
包含模型 checkpoint、词汇表和配置文件
Funnel-Transformer入门
访问模型:从 GitHub 仓库获取 Funnel-Transformer 代码和预训练模型。
设置环境:为 TensorFlow 或 PyTorch 安装必要的依赖项。
通过代码集成:将模型 checkpoint 和配置文件加载到您选择的框架中。
微调模型:使用提供的微调脚本将模型适配到特定的下游任务。
利用预训练权重:应用下载的 checkpoint 进行推理或进一步训练。
Tokenize 数据:使用提供的 Word Piece 词汇表进行文本预处理。
Funnel-Transformer的使用案例
- 高效语言建模
- 文本分类
- 问答
- 序列压缩
- 标准预训练
- 研究与开发







