收藏!小白程序员必看:大模型超长上下文深度解析,从限制到突破 一、背景这篇文章我会给你介绍大模型中非常重要的一个技术指标上下文长度。我们知道AI 问答类产品和传统问答类产品在使用层面上有一个很重要的区别就是上下文AI 问答产品可以根据上下文进行更加深层次的问答给我们的感觉就是很智能很人性化。前阵子非常火的 AI 问答产品 Kimi就是以超长上下文著称比如支持 200 万字长文本输入一次性输入几本书可以准确进行内容整理输出再比如 GPT-4-turbo支持 128K 上下文长度还有像 6B最新版本已经支持 32K 上下文长度。以前各大厂商在宣传自己的产品的时候讲的最主要的一方面就是参数规模现在除了参数规模还经常提的就是支持的上下文长度所以业界有人笑称大模型卷完参数开始卷上下文了。今年 3 月份阿里云通义千问已经将上下文长度直接提升至 1000 万字是 Kimi 的 5 倍而且免费提供给客户使用一下子卷到了极致。二、为什么超长上下文很重要用 Kimi 所在公司月之暗面Moonshot的创始人杨植麟的话说Lossless long context is everything杨植麟判断 AI 产品的终极价值是提供个性化的交互⽽lossless long-context 是实现这⼀点的基础。模型的微调不应该⻓期存在 用户跟模型的交互历史就是最好的个性化过程。我们知道在传统计算中有两个核⼼原则计算是按照顺序逐步进⾏的每⼀步都有有限的复杂度容量。⼤型语⾔模型可以被看作是进化了的计算实体所以⼤模型能够达到的最⾼⽔平由两个因素决定一个是单步骤的容量即模型在每⼀步中可以处理的信息量对应参数量另一个是执⾏的步骤数也就是模型能够处理的上下⽂⻓度。目前大部分大模型研究都集中在增加模型参数量的大小即增强「单步骤容量」。但是在保持⼀定参数量的同时放大另⼀个维度即「步骤数」或上下文长度也同样重要。上下文窗口就像⼤模型应用的新「内存」窗口越大用户能用它做的事情就越广泛同时窗口所能容纳的信息越多模型在生成下⼀个 token 时可以参考的信息就越多「幻觉」发生的可能性就越小生成的信息就越准确。举几个很实际的例子。招聘场景在系统上传 50 份简历每份简历都是⼀个 PDF⽂档50 个简历上传之后提要求⽐如要具备⼀定的英语⽔平有⽐较强的技术背景等智能助⼿在阅读完这 50 份简历之后⻢上就给出来了 Top5 推荐最后 Top2 的两个⼈刚好就是最后实际被录⽤的。再比如打⻋发票整理直接上传 50 个发票智能助⼿可以⾃动整理你过去⼀个⽉的⾏程到底是什么样的直接整理出来⼀个报销⽂档。⼜或者有好⼏篇英⽂论⽂你想做⽐较、分析智能助⼿可以利⽤它的⻓⽂本能⼒很好地完成任务。三、为什么会有上下文限制3.1、计算资源限制就拿 Transformer 架构来讲前面文章讲过注意力机制所有的输入会被切分成一个一个 token注意力机制就是在预测下一个词的时候可以计算当前 token 和其他 token 的关系如果输入序列非常大切分出来的 token 就多注意力机制计算的时候需要的算力就会更大。Transformer 模型中自注意力机制的计算量。会随着上下文长度的增加呈平方级增长比如上下文长度增加 32 倍时计算量实际会增长1000 倍这意味着如果只是用朴素的方式实现用户需要等待极其长的时间才能获得反馈所以如果想要获得快速反馈那么必须增加算力这是核心原因。3.2、内存消耗随着输入序列长度的增加模型在每个处理步骤中需要保留更多的中间状态信息。这会显著增加 GPU 或其他处理器的内存需求。在实践中这个问题限制了模型能够处理的最大序列长度以适应可用的硬件资源。3.3、宽带限制以 1750 亿参数的 GPT-3 为例目前最高单机配置80GiB * 8最多只能支持 64k 上下文长度的推理超长文本对显存的要求可见⼀般。这带来了极大的显存带宽压力英伟达 A800 或 H800 的显存带宽高达 23TB/s但面对如此长的上下文一般方法的生成速度只能达到 25tokens/s使用的时候极其卡顿体验很糟。四、如何支持更长上下文4.1、稀疏注意力机制稀疏注意力机制是一种优化过的注意力计算方法使用全连接注意力时每个元素都会与序列中的其他元素计算注意力关系而在稀疏注意力机制中元素只与序列中选择的部分元素建立这种关系。这种选择可以基于预定义的模式比如局部窗口、固定模式等也可以是通过学习得到的动态模式。稀疏注意力机制的主要优势是显著降低了计算复杂度和内存需求使模型能够高效地处理更长的序列。这一机制特别适合需要模型理解和处理大范围上下文信息的应用。4.2、滑动窗口滑动窗口是一种简单的限制方法用于减少自注意力计算的复杂度。在这种方法中每个令牌只关注它附近的一小部分令牌。例如如果设置窗口大小为 5那么每个令牌只会与它前后两个位置的令牌进行交互总共 5 个令牌。这种方法能有效降低计算量因为它限制了每次计算涉及的令牌数量。滑动窗口和稀疏注意力都是减少注意力计算的方法不过二者有区别。计算复杂度滑动窗口通过简单地降低每个令牌关注的范围来减少复杂度而稀疏注意力通过更智能的选择关注点来优化计算。灵活性滑动窗口技术相对固定每个令牌的关注范围是固定的。稀疏注意力则更灵活可以根据任务的需要调整关注的范围和模式。实现难度滑动窗口技术实现起来相对简单而稀疏注意力可能需要复杂的数据结构和算法尤其是在动态选择关注点的时候。4.3、降采样降采样就比较粗暴了就是一种数据减少技术减少输入序列同时尽量保留重要信息比如只选择序列中的某些部分单词或通过合并相邻的元素来创建一个更短的序列。比如当我们输入一本 20 万字的 PDF 书籍时通过一定的策略只取其中我们认为重要的内容经过处理后喂给模型的可能只有 2 万字。这样的方法优势劣势都很明显优势就是可以让模型支持更长的上下文劣势就是有可能丢失有用的信息使模型的性能下降。以上这些方式是比较常见的不过也有人认为这些都是解决上下文长度问题的“技术捷径”牺牲的是模型的性能因为无论是稀疏注意力、滑动窗口还是降采样都是主动丢弃不重要的数据那么在评估不重要的数据过程中很有可能产生误判从而影响模型性能。那究竟什么方法不是捷径呢在月之暗面披露的关于 Kimi 如何解决上下文长度问题的技术细节中提到了这样的方式我们一起来看下。1、模型训练方面在传统的 Tensor 并⾏、Data 并⾏、Pipeline 并⾏基础上增加了多项基于 Seqence 维度的并⾏策略提升了并⾏效率。利⽤定制版的 Flash Attention、Fuse Cross Entropy、CPU offload 等技术⼤幅度降低了显存压⼒。还使⽤了创新的训练⽅法针对性地调配了多阶段式训练⽅法让模型保留基础能力的前提下逐步激活⻓上下⽂的能⼒。2、模型推理方面⽤GQA 替换 MHA让 KVCache 所占⽤的显存⼤⼩⼤幅度缩⼩。2Paged attention保证显存的充分利⽤。低⽐特量化通过 W8A8最多可以把推理速度在上述基础上再提升⼀倍。MoE KVCache 裁减让显存占⽤在上述基础上再下降⼀倍。五、超长上下文测试的很有趣的例子在⽂本语料中藏⼊⼀个与⽂本语料不相关的句⼦比如在整本《西游记》⾥放⼊⼀句只会在 《红楼梦》里出现的话然后看大模型能不能通过自然语言提问的方式即 Prompt把这句话准确地提取出来。藏起来的那句话就是“针”《西游记》就是大海。国外有一个大模型开发者 Greg Kamradt在 GPT-4 Trubo128K以及 Claude2.1200K上进行过测试效果并不好Kimi 的工程师用了相同的方法测试经过几轮的测试发现效果时好时坏且有一些规律效果好坏取决于 Prompt 和内容即“大海”和“针”而且并没有强一致的结果。经过几轮测试Kimi 的工程师发现除了大模型本身的长文本记忆能力和指令遵循能力其实还有两个关键点对结果起了明显作用 ⼀是藏在“大海”中的“针”是否完全没有歧义⼆是向⼤模型提问的 Prompt 写得是否足够明确。普通人如何抓住AI大模型的风口领取方式在文末为什么要学习大模型目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 大模型作为其中的重要组成部分 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 为各行各业带来了革命性的改变和机遇 。目前开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景其中应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过30%。随着AI大模型技术的迅速发展相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业人工智能大潮已来不加入就可能被淘汰。如果你是技术人尤其是互联网从业者现在就开始学习AI大模型技术真的是给你的人生一个重要建议最后只要你真心想学习AI大模型技术这份精心整理的学习资料我愿意无偿分享给你但是想学技术去乱搞的人别来找我在当前这个人工智能高速发展的时代AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料能够帮助更多有志于AI领域的朋友入门并深入学习。真诚无偿分享vx扫描下方二维码即可加上后会一个个给大家发【附赠一节免费的直播讲座技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等欢迎大家~】大模型全套学习资料展示自我们与MoPaaS魔泊云合作以来我们不断打磨课程体系与技术内容在细节上精益求精同时在技术层面也新增了许多前沿且实用的内容力求为大家带来更系统、更实战、更落地的大模型学习体验。希望这份系统、实用的大模型学习路径能够帮助你从零入门进阶到实战真正掌握AI时代的核心技能01教学内容从零到精通完整闭环【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块内容比传统教材更贴近企业实战大量真实项目案例带你亲自上手搞数据清洗、模型调优这些硬核操作把课本知识变成真本事‌02适学人群应届毕业生‌无工作经验但想要系统学习AI大模型技术期待通过实战项目掌握核心技术。零基础转型‌非技术背景但关注AI应用场景计划通过低代码工具实现“AI行业”跨界‌。业务赋能突破瓶颈传统开发者Java/前端等学习Transformer架构与LangChain框架向AI全栈工程师转型‌。vx扫描下方二维码即可【附赠一节免费的直播讲座技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等欢迎大家~】本教程比较珍贵仅限大家自行学习不要传播更严禁商用03入门到进阶学习路线图大模型学习路线图整体分为5个大的阶段04视频和书籍PDF合集从0到掌握主流大模型技术视频教程涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向新手必备的大模型学习PDF书单来了全是硬核知识帮你少走弯路不吹牛真有用05行业报告白皮书合集收集70报告与白皮书了解行业最新动态0690份面试题/经验AI大模型岗位面试经验总结谁学技术不是为了赚$呢找个好的岗位很重要07 deepseek部署包技巧大全由于篇幅有限只展示部分资料并且还在持续更新中…真诚无偿分享vx扫描下方二维码即可加上后会一个个给大家发【附赠一节免费的直播讲座技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等欢迎大家~】