SuperAPI AI 工具集

StreamingLLM gives language models unlimited context

StreamingLLM 是一种由 Meta AI、MIT 和卡内基梅隆大学研究者联合提出的技术,可让 Llama-2 等自回归语言模型在不修改架构、不微调的前提下处理超长文本流,支持跨越数百万 token 的连续对话。其核心发现是:模型会把大量注意力分数分配给最前面的若干 token(称为“注意力汇”),保留这些初始 token 的 KV 缓存即可维持注意力分布稳定。结合滑动窗口,StreamingLLM 在推理速度、显存占用和生成质量之间取得平衡,适用于需要长序列文本处理的应用场景。

访问官网

工具介绍

StreamingLLM 是一种面向自回归大语言模型的长上下文推理技术,由 Meta AI、MIT 与卡内基梅隆大学的研究者合作提出。其目标是让语言模型在不重新训练、不修改模型架构的情况下,处理远超原始上下文窗口的连续文本流,官方资料称可支持长达数百万 token 的对话式生成。

用途方面,StreamingLLM 主要解决大语言模型在长时间聊天或长文档流式处理中触及上下文上限的问题。传统方案要么重新训练模型以扩大上下文窗口(成本高昂且随窗口增长呈二次方开销),要么采用滑动窗口(会导致 KV 缓存频繁重算、吞吐下降,并且一旦上下文偏离初始设置,生成质量迅速退化)。StreamingLLM 试图在不牺牲质量的前提下规避这些缺点。

主要能力方面,研究者发现自回归模型存在“注意力汇”现象:大量注意力分数被分配给最前面的若干 token,无论它们是否与任务相关;一旦移除这些初始 token,模型困惑度会急剧上升。StreamingLLM 的做法是保留注意力汇 token 的 KV 缓存(实验表明四个初始 token 就足够),并丢弃其余旧 token,为滑动窗口中的新 token 腾出空间。这样 KV 缓存由“注意力汇”加“保留最近 token 的滚动 KV 缓存”组成,无需重算全部 KV 值,即可在长序列上维持接近正常的注意力分布。研究者指出,该设计通用性强,可无缝嵌入任何使用相对位置编码的自回归语言模型。据其介绍,Llama-2(70 亿至 700 亿参数)、Falcon(70 亿至 400 亿参数)和 Pythia(29 亿至 120 亿参数)等模型在 StreamingLLM 框架下可稳定建模多达 400 万 token,并可能更多。

使用方式方面,论文作者已将 StreamingLLM 的代码在 GitHub 上公开,这是一个 Python 库,兼容 Llama-2、MPT、Falcon 和 Pythia 模型;另有开源实现可作为 Hugging Face transformers 库的直接替代,并兼容 Hugging Face 平台上的其他模型。文档同时提到 Hugging Face 正在关注该技术并考虑将其整合进 transformers 库,但未提供具体的安装命令或调用示例。

适用场景方面,官方资料将 StreamingLLM 定位为长序列文本处理应用的有价值工具,并称其“解耦了 LLM 的预训练窗口大小与实际文本生成长度”,为 LLM 的流式部署铺平道路。研究还提出,可在预训练时有意加入一个可学习的全局“Sink Token”来吸收多余注意力分数;用 1.6 亿参数模型从零训练的实验表明,加入该 token 可在流式推理中有效保持性能,且不影响模型收敛与下游 NLP 基准表现。

限制方面,需要特别说明:StreamingLLM 并不会把模型的上下文窗口真正扩展到 400 万 token。它让模型在超出架构允许的记忆量(例如 4k token)时仍能维持质量,任意时刻模型仅保有架构允许的 token 记忆。此外,资料未提供收费方式、平台支持列表、具体的性能数据或安装命令等细节。