提升大模型长文本能力的奇招曝光,竟如此匿名论文实现
最近发现不少小伙伴都对科技周边很感兴趣,所以今天继续给大家介绍科技周边相关的知识,本文《提升大模型长文本能力的奇招曝光,竟如此匿名论文实现》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~
一提到提高大模型长文本能力,就想到长度外推或者上下文窗口扩展?
不行,这些都太费硬件资源了。
来看一个奇妙新解:
和长度外推等方法使用KV缓存的本质不同,它用模型的参数来存储大量上下文信息。
具体办法就是建一个临时Lora模块,让它仅在长文本生成过程中“流式更新”,也就是用先前生成的内容不断作为输入来充当训练数据,以此保证知识被存进模型参数中。
然后一旦推理完成,就丢掉它,保证不对模型参数产生长久影响。
这个方法可以让我们不用扩展上下文窗口的同时,随便存储上下文信息,想存多少存多少。
实验证明,这种方法:
- 既可以显著提高模型长文本任务质量,实现困惑度下降29.6%,长文本翻译质量(BLUE得分)提高53.2%;
- 还能兼容并增强现有大多数长文本生成方法。
- 最重要的是,能大大降低计算成本。
在保证生成质量小幅提升(困惑度降低3.8%)的同时,推理所需的FLOPs降低70.5%、延迟降低51.5%!
具体情况,我们翻开论文来看。
建个临时Lora模块用完即丢
该方法名叫Temp-Lora,架构图如下:

其核心就是以自回归的方式用先前生成的文本上逐步训练临时Lora模块。
该模块适应性很强可以不断调整,因此对不同远近的上下文都能深入理解。
具体算法如下:
在生成过程中,token是逐块生成的。每次生成块时,使用最新的Lxtoken作为输入X生成后续token。
一旦生成的token数量达到预定义的区块大小∆,就使用最新的块启动Temp-Lora模块的训练,然后开始下一个块生成。

在实验中,作者将∆+Lx设置为W,以充分利用模型的上下文窗口大小。
对于Temp-Lora模块的训练,如果在没有任何条件的情况下,学习生成新的块可能构不成有效的训练目标,并导致严重的过拟合。
为了解决这个问题,作者将每个块前面的LT标记合并到训练过程中,将它们用作输入,将块用作输出。
最后,作者还提出了一种称为缓存重用(Cache Reuse)策略来实现更高效的推理。
一般来说,在标准框架中更新Temp-Loramo模块后,我们需要使用更新的参数重新计算KV状态。
或者,重用现有的缓存KV状态,同时使用更新的模型进行后续的文本生成。
具体来说,只有当模型生成最大长度(上下文窗口大小W)时,我们才使用最新的Temp-Lora模块重新计算KV状态。
这样的缓存重用方法就可以在不显著影响生成质量的情况下加快生成速度。
关于Temp-Lora方法的介绍就这么多,下面主要看测试。
文本越长,效果越好
作者在Llama2-7B-4K、Llama2-13B-4K、Llama2-7B-32K以及Yi-Chat-6B模型上上对Temp-Lora框架进行了评估,并涵盖生成和翻译这两类长文本任务。
测试数据集一个是长文本语言建模基准PG19的子集,从中随机抽取了40本书。
另一个是来自WMT 2023的国风数据集的随机抽样子集,包含20部中文网络小说,由专业人员翻译成英文。
首先来看PG19上的结果。
下表显示了PG19上带有和不带有Temp-Lora模块的各种型号的PPL(困惑度,反映模型对于给定输入的不确定性,越低越好)比较。将每个文档划分为0-100K到500K+token的片段。
可以看到,所有型号经过Temp-Lora之后PPL都显著下降,并且随着片段越来越长,Temp-Lora的影响更加明显(1-100K仅降低3.6%,500K+降低13.2%)。

因此,我们可以简单地得出结论:文本越多,使用Temp-Lora的必要性就越强。
此外我们还能发现,将块大小从1024调整到2048和4096导致PPL略有增加。
这倒是不奇怪,毕竟Temp-Lora模块是在之前块的数据上训练的。
这个数据主要是告诉我们块大小的选择是生成质量和计算效率之间的关键权衡(进一步分析可以查阅论文)。
最后,我们还能从中发现,缓存重复使用不会导致任何性能损失。
作者表示:这是一个非常令人鼓舞的消息。
下面是国风数据集上的结果。
可以看到,Temp-Lora对长文本文学翻译任务也有显著影响。
与基础模型相比,所有指标都有显著改进:PPL降低了-29.6%,BLEU得分(机器翻译文本与高质量参考翻译的相似度)提高了+53.2%,COMET得分(也是一个质量指标)提高了+8.4%。

最后,是计算效率和质量方面的探索。
作者经实验发现,使用最“经济”的Temp-Lora配置(∆=2K,W=4K),能将PPL降低3.8%的同时,节省70.5%的FLOP和51.5%的延迟。
相反,如果我们完全忽略计算成本,使用最“豪华”的配置(∆=1K和W=24K),也可以实现5.0%的PPL降低,并额外增加17%的FLOP和19.6%的延迟。
使用建议
总结以上结果,作者也给出了实际应用Temp-Lora的三点建议:
1、对于需要最高级别长文本生成的应用,在不更改任何参数的情况下,集成Temp-Lora到现有模型中,就能以相对适中的成本显著提高性能。
2、对于看重最小延迟或内存使用的应用,可以通过减少输入长度和在Temp-Lora中存储的上下文信息来显著降低计算成本。
在这种设置下,我们可以使用固定的短窗口大小(如2K或4K)来处理几乎无限长的文本(在作者的实验中为500K+)。
3、最后,请注意,在不含大量文本的场景中,例如预训练中上下文比模型的窗口大小还小,Temp-Lora就是毫无用处的。
作者来自保密机构
值得一提的是,发明这么简单又创新的办法,作者却没有留下太多出处信息:
机构名称直接落款“保密机构”,三位作者的名字也只有完整的姓。

不过从邮箱信息来看,可能来自港城大、港中文等学校。
最最后,对于这个方法,你觉得怎么样?
文中关于模型,训练的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《提升大模型长文本能力的奇招曝光,竟如此匿名论文实现》文章吧,也可关注golang学习网公众号了解相关技术文章。
快速安装PyCharm,启程Python编程之旅
- 上一篇
- 快速安装PyCharm,启程Python编程之旅
- 下一篇
- 优化网站性能的实践和案例研究
-
- 科技周边 · 人工智能 | 9小时前 |
- Hugging Face Datasets map batched 返回长度不一致时怎么定位
- 213浏览 收藏
-
- 科技周边 · 人工智能 | 9小时前 |
- Hugging Face Datasets flatten 怎么展开嵌套字段并保留特征类型
- 455浏览 收藏
-
- 科技周边 · 人工智能 | 9小时前 |
- Hugging Face Datasets with_format 和 set_format 混用后为什么列类型变了
- 228浏览 收藏
-
- 科技周边 · 人工智能 | 9小时前 | 兼容性 · LiteRT Select TF Ops TFLITE_BUILTINS TensorFlow模型转换 不支持算子
- LiteRT 转换遇到不支持算子时怎么判断是否启用 Select TF Ops
- 226浏览 收藏
-
- 科技周边 · 人工智能 | 9小时前 | 人工智能 · LiteRT SignatureDef 多输入模型 端侧推理
- LiteRT SignatureDef 多输入模型怎么按签名准备推理张量
- 191浏览 收藏
-
- 科技周边 · 人工智能 | 9小时前 |
- Keras 自定义 train_step 怎么让正则损失继续参与梯度
- 343浏览 收藏
-
- 科技周边 · 人工智能 | 9小时前 | 人工智能 · 深度学习 · Keras RaggedTensor keras.Input ragged=True TensorFlow backend 模型保存 load_model 变长序列
- Keras RaggedTensor 输入模型保存后怎么保持变长序列结构
- 250浏览 收藏
-
- 科技周边 · 人工智能 | 9小时前 | 人工智能 · Keras NaN mixed_float16 mixed precision loss scale 输入范围 dtype policy
- Keras mixed_float16 训练出现 NaN 怎么区分 loss scale 和输入范围
- 337浏览 收藏
-
- 科技周边 · 人工智能 | 9小时前 | 人工智能 · 深度学习 · PyTorch strict state_dict load_state_dict module. 前缀 检查点迁移
- PyTorch state_dict 参数名前缀变化后怎么兼容旧检查点
- 436浏览 收藏
-
- 科技周边 · 人工智能 | 9小时前 | 人工智能 · 深度学习 · 内存优化 · 内存 PyTorch 按需加载 mmap checkpoint torch.load map_location state_dict
- PyTorch torch.load 开启 mmap 后为什么读取参数时才占用内存
- 475浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- PubMedQA
- 深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
- 460次使用
-
- H2O EvalGPT
- H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
- 521次使用
-
- LMArena
- LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
- 539次使用
-
- HELM
- 深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
- 488次使用
-
- MMBench
- MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
- 307次使用
-
- 本地大模型反复输出同一句话怎么调整生成参数
- 2026-09-06 501浏览
-
- Python 调用大模型时如何用结构化输出校验 JSON:从解析失败到可重试
- 2026-08-29 501浏览
-
- AI写作工具免费版安装教程(含豆包Clawdbot)
- 2026-05-30 501浏览
-
- WPS AI能自动生成PPT吗?输入主题一键制作演示文稿
- 2026-05-27 501浏览
-
- Canva手机闪退解决方法及适配指南
- 2026-05-25 501浏览

