热门话题
#
Bonk 生态迷因币展现强韧势头
#
有消息称 Pump.fun 计划 40 亿估值发币,引发市场猜测
#
Solana 新代币发射平台 Boop.Fun 风头正劲
你正在参加OpenAI的研究科学家面试。
面试官问:
“你将如何将LLM的上下文长度从2K扩展到128K个标记?”
你:“我将对模型进行微调,以适应128K上下文的更长文档。”
面试结束。
你错过了以下内容:
扩展上下文窗口不仅仅是关于更大的矩阵。
在传统的变换器中,将令牌扩展8倍会由于注意力的平方复杂性使内存需求增加64倍。请参见下面的图像!
那么,我们该如何管理呢?
继续...👇

1) 稀疏注意力
它通过以下方式将注意力计算限制在一部分标记上:
- 使用局部注意力(标记仅关注其邻近标记)。
- 让模型学习关注哪些标记。
但这在计算复杂性和性能之间存在权衡。

在ModernBERT中使用了类似的想法。
→ 每第三层进行全局注意力
→ 其他层进行局部注意力(128个标记)
结果:
- 序列长度增加16倍
- 性能大幅提升
- 最具内存效率的编码器
简单而强大。

以下是论文中提到的一个直观解释:
想象一下你在读一本书。对于你阅读的每一句话,你是否需要完全了解整个情节才能理解大部分内容(全局注意力)?
还是说只需关注当前章节就足够了(局部注意力),只要你偶尔回想一下它与主情节的关系(全局注意力)?
在绝大多数情况下,答案是后者。
2) 闪电注意力
这是一种快速且内存高效的方法,保留了传统注意力机制的准确性,即它使用全局注意力,但效率更高。
整个想法围绕着优化GPU内存中的数据移动。
让我们来理解一下!

一些背景细节:
- 线程是最小的执行单元。
- 几个线程形成一个区块。
另外:
- 区块中的线程共享一种快速(但稀缺)的内存,称为SRAM。
- 所有区块共享一种称为HBM的全局内存(丰富但慢)。
查看这个👇

注意在SRAM和HBM之间移动大型矩阵:
计算QK:
- 将矩阵分配给线程
- 计算,并且
- 将结果发送到HBM
计算softmax:
- 将结果分配给线程
- 计算,并且
- 将输出发送到HBM
对所有层重复此操作。
查看这个👇

闪电注意力涉及硬件级优化,利用SRAM缓存中间结果。
通过这种方式,它减少了冗余移动,提供了比标准注意力方法快多达7.6倍的速度提升。
查看这个👇

3) DeepSeek 稀疏注意力 (DSA)
DeepSeek 的新 V3.2 模型引入了 DeepSeek 稀疏注意力 (DSA),将复杂度从 O(L²) 降低到 O(Lk),其中 k 是固定的。
它是如何工作的:
一个轻量级的 Lightning Indexer 为每个查询评分,确定哪些 token 实际上是重要的。
少量的头,运行在 FP8 上,计算成本低。
然后选择机制仅检索前 k 个键值条目。
关键的见解是,每个查询仅选择 2048 个 token,无论上下文长度如何。
因此,昂贵的注意力计算仅在这个小子集上进行,而不是在完整的 128K 序列上。

在128K上下文中,预填充成本从每百万个令牌约0.65美元降至约0.35美元。而解码成本从约2.4美元降至约0.8美元。
而且性能保持不变。在一些长上下文基准测试中,V3.2的得分实际上更高。
稀疏注意力并不新鲜。但在不降低质量的情况下使其有效是困难的。
还有哪些其他技术可以增加LLM的上下文长度?

49.02K
热门
排行
收藏

