大模型处理长上下文方法一览

超长上下文处理:基于Transformer上下文处理常见方法梳理 注意力集中的Transformer(Focused Transformer,FoT)是Transformer模型的一个简单的即插即用扩展,既可以用于训练新模型,也可以用于微调现有的具有更长上下文的大模型。TRIME提出了一种训练方法,旨在训练具有记忆增强功能的语言模型,它使用batch内的负样本来提高表征的质量。我们的工作遵循了Memorizing Transformer的方法,旨在训练一个能够处理更长注意力上下文长度的模型(例如,通过缓解分心问题),从而具有更好的长上下文处理能力。 阅读详情

关于长上下文

2023年中开始,各大LLM厂商开始关注到长上下文的问题。2023年5月,Claude把长度支持到100k tokens;6、7月的时候,ChatGPT3.5也已经支持16k,而ChatGLM2-B最大长度已经可以到32k。

(插一句,ChatGLM系列做得一直很不错,从基础模型、长窗口、工具调用、Agent都一直保持在比较前沿的水平,个人最近用ChatGLM3、ChatGLM4体验还是很不错的)

差不多同时间还有LM-SYS的LongChat,MosaicLM的MPT也支持16k以及更长的上下文。

今年过年前刚出来的Qwen-1.5系列全家桶也都是32k起步了。还有一些支持超长窗口的模型
在这里插入图片描述

大厂商们卷完基础模型效果,把能刷的榜刷完,又盯上了长上下文能力(当然现在长上下文也有榜了)。

为什么要那么长?

长上下文的需求

取决于语言和所使用的tokenizer,每个token对应编码的文本有所不同。以中文为例,大部分模型每个token对应的中文字数都>1.5个字(部分高效的tokenizer可以做到2个字以上)。那么200k的token就能对应处理30w字的上下文了。

最近刚看了刘震云的长篇小说《一句顶一万句》,全书差不多27万字,也就是说现在这些长上下文大模型可以秒读完一部长篇小说,然后和我交流心得,或者告诉我全书的概要,又或者帮我找到一些文中的细节描写。

上面这个场景对应的是大模型的工具化场景。我们可以借助大模型的能力,来阅读论文,总结研报或者阅读代码,这些场景都需要比较长的上下文输入。

另外还有一个也比较火的大模型应用场景,RAG(Retrieval-augmented generation),也对长上下文输入有要求,只是在RAG中,大部分输入文本并不是直接来自于用户输入,而是通过检索得来的。

除了工具化的应用场景,还有一些个性化的场景也会对长上下文有需求。举例来说,就是一些智能助手需要对用户的偏好和设置做长期记忆,这些偏好和设置可以以prompt或者对话的形式持久化存储下来,在进行新的对话的时候就把这些内容连同用户新的输入一起给到模型进行处理。

实际上,哪怕是单次的聊天,也很有可能需要模型处理比较长的上下文。比如我们可能会让模型扮演一个特定的影视角色或者游戏角色和我们进行对话。这时通常会给模型一些设定,比如这是一个什么样的任务,故事背景世界观都是什么样的,以及现在要进行哪些方面的交流等。这些设定都会以prompt的形式在最开始输入给模型。而随着对话的进行,模型如果长文本能力比较差,就有可能忘记了我们之前给的设定,这样体验上就有问题了。

上面这个例子实际引出了对长文本需求更具体的内容:(1)在文本比较长的时候,还能说人话,ppl要低(2)说人话之余,还要能attention到前面提过的细节,不能出现自我矛盾。

模型怎么支持长上下文

看来目前的很多应用场景确实对长上下文有需求,那怎么实现呢?

如果我们直接训练2k/4k长度的模型,然后在推理的时候设定8k或者16k窗口,那么PPL会急剧上升,导致模型直接讲不了人话,原因之一在之前讲RoPE的时候也有提到,对于没有训练过的位置编码,模型不能很好地处理。

直接训练

既然训练的时候用2k/4k不能很好地在8k/16k/32k+的上下文长度下推理,那直接在训练的时候用更长的数据进行训练不就可以了?

这个思路理论上可行,只是实操的时候会遇到一些问题(壕可能觉得不是问题)。

1.训练数据

直观上来说,要训练长上下文的模型,就需要长文本。要达到32k或者更大的长度,基本都只能是书籍。

当然,我们也可以通过把多个中等长度的文本进行拼接,再用来训练。比如筛选4k长度数据,那8条拼在一起也够长了。然后通过attention mask来限制各段文本之间注意力,让它们可以在各自的位置上各训各的,互不干扰。甚至实际上即使不做attention mask,效果也挺好。

总的来说,就是【连续长文本】>【多个中等文本拼接】(也可用)

2.资源消耗

来简单看一下transformer在训练中所消耗的资源。

假设模型有 层,词表大小为 ,hidden size为 ,batch size为 ,训练窗口长度为 ,使用Adam优化器训练(需要存一阶和二阶动量),为简化估算,可以假设注意力头数为1。

(1) 参数量

在这里插入图片描述

(2) 计算量

在这里插入图片描述

看一下计算量和参数量的关系。忽略参数量和计算量中的低次项,则有

在这里插入图片描述

在这里插入图片描述

(3) 显存

【AI黑话日日新】什么是大模型的上下文长度? 在大模型(LLM)的技术选型和日常使用中,上下文长度(Context Length)是绕不开的核心指标:GPT-4 Turbo的128K、Claude 3 Opus的200K、Llama 3的70K、国产大模型的128K/256K……越长的上下文长度,意味着模型能处理更长的文本、记住更多对话历史、理解完整的长文档。到底什么是上下文长度?大模型为什么受限于长度?长上下文是如何技术实现的?本文将从通俗定义→技术瓶颈→核心实现→代码实战。 阅读详情

相关推荐

长上下文模型(扩展位置编码、调整上下文窗口、长文本数据、)

    在实际应用中,大语言模型对于长文本数据的处理需求日益凸显,尤其在长文档分析、多轮对话、故事创作等场景下。在这些情况下,模型需要处理的文本的长度常常超出预定义上下文窗口大小。例如,LLaMA-2 的上下文窗口限制为 4,096个词元。为了支持长文本处理,多家机构均已推出面向具有超长上下文窗口的大语言模型或 API。例如,OpenAI 发布了支持 128K 上下文窗口的 GPT-4 Turbo,而Anthropic 则推出了具有 200K 上下文窗口的 Claude-2.1。给定一个预训练后的大语言模型

weixin_43961909的博客 746

《Linux运维总结:etcd 3.5.15集群数据备份与恢复》

《Linux运维总结:etcd 3.5.15集群数据备份与恢复》

东城绝神 1079

知识图谱_知识图谱 | 知识图谱做用户画像

导读:最近一直在思考怎么用知识图谱做推荐,但是目前能知道的内容都是基于路径的推荐和基于图特征的推荐,所以能不能换一个角度,探究一下用知识图谱怎么做用户画像,因为画像也是推荐系统重要的一部分。现在的知识图谱+推荐怎么做的传统的用户画像怎么做现在的知识图谱+推荐怎么做的?基于路径:可以理解成基于图谱的多路径召回,或者多路径推荐,然后根据路径的转移概率进行排序从而达到推荐的效果,基于路径比较适合简单的推...

weixin_28801659的博客 1460

电机传动机构的转矩与惯量折算

参考《工业运动控制》

庐州牧 1万+

打开UG会安装报错:initialization internal ERROR 的提示框,提示line 1344 of错误的解决方案

打开UG会安装报错:initialization internal ERROR 的提示框,提示line 1344 of错误的解决方案

Q82556499的博客 3520

用Python搞定超效率SBM模型:从数据清洗到结果可视化全流程指南

本文详细介绍了如何使用Python实现超效率SBM模型,从数据清洗到结果可视化的全流程指南。超效率SBM模型作为传统DEA的进化版本,能有效处理非期望产出(如环境污染)并对高效单元进行精细排序。通过实战案例和代码示例,帮助读者掌握这一先进模型的Python实现技巧,提升效率评估的准确性和可视化效果。

silver的专栏 649

告别Keil?在Mac上配置STM32CubeIDE + CMSIS-DAP调试器全攻略(含常见报错解决)

本文详细介绍了在Mac平台上配置STM32CubeIDE与CMSIS-DAP调试器的全流程,包括硬件准备、软件安装、工程创建及调试优化。通过实战指南,帮助开发者高效完成STM32开发,解决常见报错问题,提升开发效率。

weixin_30485379的博客 431

手把手教你给H3C MSR路由器配置4G/5G上网(保姆级图文教程)

本文提供H3C MSR路由器配置4G/5G上网的保姆级图文教程,涵盖硬件准备、运营商适配、命令行配置、多运营商策略优化及信号故障排查等全流程。通过实测数据和典型场景分析,帮助用户快速实现4G/5G模块的部署与优化,提升网络稳定性和业务连续性。

weixin_28745067的博客 434

Spring Boot入门(03): 从零开始学习配置文件:掌握YAML和Properties,轻松应对多环境配置管理

在Spring Boot开发中,配置文件是非常重要的。本文将带领你从零开始学习配置文件,掌握YAML和Properties的语法,轻松应对多环境配置管理。无论是开发、测试还是生产环境,你都可以轻松切换不同的配置文件,并且能够灵活修改配置信息。

**My Coding Family** 4万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: 大模型应用的 10 种架构模式
下一篇: AI大模型,太卷了!又一巨头重磅出手
普通网友
博客等级 码龄3年 4492粉丝 309原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值