当前位置: 首页 > backend >正文

[论文阅读]Text Compression for Efficient Language Generation

Text Compression for Efficient Language Generation

[2503.11426] Text Compression for Efficient Language Generation

NAACL 2025

提出了“Generative Pretrained Thoughtformer”(GPTHF),这是一个分层 transformer 语言模型,它能够通过将文本压缩成句子嵌入并采用句子注意力机制来进行文本生成(将句子压缩成一个固定大小的嵌入并采用句子级注意力来生成文本,对GPT的修改很小)。 GPTHF 保留了 GPT 的架构,仅通过动态稀疏注意力掩码修改 token 交互。

这项工作没有压缩固定大小的 token 组,而是将一个句子——语言中具有更高语义价值的单元——压缩成一个嵌入。作者专注于利用这些嵌入来提高计算效率,而不是嵌入本身。

方法

架构

GPTHF 模型由两个主要组件组成:一个词级 Transformer 编码器 (wlt_encoder) 和一个句子级 Transformer 主体 (slt_body)。 编码器将每个句子压缩成一个单独的嵌入,同时保留基本信息。 slt_body 对这些句子嵌入进行上下文处理并生成下一个 token 预测。

预训练

使用自动回归模型中常见的下一个 Token 预测目标。 为了在启用有效的并行训练的同时,为 Token 预测准备GPTHF,再次采用专门的注意性掩码(图4)。 目标是序列中的下一个 Token (图3) 

训练语料库包含了 OpenWebText、维基百科和 ArXiv。使用标准的GPT-2 Token ,继承了其词汇大小和未知单词的处理,同时引入了“EOS” Token 。 这个 Token 对于快速生成方法的设计至关重要,这是这项工作的基石。

使用 Adam 优化器,权重衰减为 0.01,β1=0.9,β2=0.98 和 ϵ=10−8.

保持梯度裁剪,值为 0.5。

学习率调度器使用线性衰减并进行 10000 步的预热

批次大小调度器,起始批次大小为 64,并线性增加到 4096,在训练持续时间的 60% 时达到峰值。 

在训练期间消除了 dropout。

模型在预训练语料库上只进行一次或更少的传递,这降低了过拟合的风险。

快速生成

【感觉上是一句话有对应的emb,常规的生成token并不会影响先前已有句子的emb,因此在更新emb的时候效率得到了提高】

实验

使用验证困惑度和效率指标(FLOPs 和运行时)评估 GPTHF 与大小相当的 GPT 风格基线。

训练数据限制为 100 亿个 token,分为 320’000 个大小为 64 的微批次步骤,上下文大小为 512 个 token。 所有模型都在相同的数据集上进行预训练。

基线:训练了一个名为“Baseline-12”的 12 层基线和一个名为“Baseline-24”的 24 层基线,它们与 GPTHF 对应物具有相同的架构和大小。 唯一的区别是与图4中的掩码相反,它们使用用于编码器和主体的完整三角掩码进行训练。

困惑度

GPTHF-16-8 和 12 层基线模型的表现相当,为进一步比较奠定了基础:如果 GPTHF-16-8 实现了比 12 层 GPT 更高的生成效率和/或速度,那么训练一个能够压缩的更大模型可能是值得的。

FLOPs

快速生成算法的加速度取决于跨句子的 Token 分布,而不是仅输入的形状。 直观地说,更多句子通过缓存已完成的句子来跳过编码器。

 效率增益随着提示长度的增加而增加。

 平均句子数(x 轴)与效率提升(y 轴)的散点图。效率提升与平均句子数线性相关。对于批处理数据,效率提升较低,这可能是由于 token 的多样性较大(从增加的方差可以看出),导致处理了更多的 padding token,从而减慢了快速生成算法的速度。

推理时间

随着上下文增加,加速比也会增加。

综合来看,核心贡献是以句子为基准进行划分,只修改最后一句话在添加新的生成token后的emb,前面句子的emb不做变化。也对encoder的作用区域进行了精简。

对我来说用处不大,简单了解即可。

http://www.xdnf.cn/news/15090.html

相关文章:

  • 无缝矩阵与普通矩阵的对比分析
  • 「按键精灵安卓/ios辅助工具」动态验证码该怎么得到完整的图片
  • 电脑被突然重启后,再每次打开excel文件,都会记录之前的位置窗口大小,第一次无法全屏显示。
  • Prompt提示词的主要类型和核心原则
  • QTextCodec的功能及其在Qt5及Qt6中的演变
  • OKHttp 核心知识点详解
  • [Xmos] Xmos架构
  • Docker-构建镜像并实现LNMP架构
  • 【运维实战】解决 K8s 节点无法拉取 pause:3.6 镜像导致 API Server 启动失败的问题
  • 在指定conda 环境里安装 jupyter 和 python kernel的方法
  • vscode和插件用法
  • 「莫尔物理新范式」普林斯顿马普所合作Nature论文:SnSe₂/ZrS₂扭曲双层实现M点能谷调控与拓扑新效应
  • 如何设计一个登录管理系统:单点登录系统架构设计
  • 寒武纪MLU370编程陷阱:float32精度丢失的硬件级解决方案——混合精度训练中的定点数补偿算法设计
  • 字节 Seed 团队联合清华大学智能产业研究院开源 MemAgent: 基于多轮对话强化学习记忆代理的长文本大语言模型重构
  • 微服务架构的演进:迈向云原生——Java技术栈的实践之路
  • 西电考研录取:哪些省份考研上岸西电更容易?
  • 浏览器 实时监听音量 实时语音识别 vue js
  • 人大金仓教程
  • 【基础架构】——软件系统复杂度的来源(低成本、安全、规模)
  • 【基于大模型 + FAISS 的本地知识库与智能 PPT 生成系统:从架构到实现】
  • chatgpt是怎么诞生的,详解GPT1到GPT4的演化之路及相关背景知识
  • WebGPU了解
  • 二、深度学习——损失函数
  • AI技术如何重塑你的工作与行业?——实战案例解析与效率提升路径
  • 华为OD机试_2025 B卷_观看文艺汇演问题(Python,100分)(附详细解题思路)
  • Java零基础笔记09(Java编程核心:面向对象编程高级练习:支付模块)
  • 【01】MFC入门到精通—— MFC新建基于对话框的项目 介绍(工作界面、资源视图 、类视图)
  • 前端开发流程设计详解
  • AMIS全栈低代码开发