时政
财经
科技
虚拟货币
其他
登录
#硬件性能压榨
关注
Line
1周前
看这个图 Deepseek 的这次注意力创新 DSA 几乎实现了“常数”成本的长上下文,似乎无限上下文也不远了。 但是, 看报告复杂度依然是: O(L²),L 是序列长度。 怎么实现的? DeepSeek-V3.2-Exp的更新主要多了一个注意力索引模块, 他们叫闪电索引 (Lighting Indexer), 输入的上下文序列在这里计算打分,然后,挑选出与当前问题最相关固定的 2048 个 tokens(Top-K 算法), 接下来只需要计算这 2048 个 Token 的注意力就行了。 需要注意的是这个注意力索引模块复杂依然是 O(L²), 维度并没有减少,模型的维度是 7168, indexer 的维度是:64 × 128= 8192 ,一些人认为维度减小才高效是不对的。 高效的关键在于数据精度,通常 L² 复度的注意力计算的 Q,K 的值是用 BF16 表示的,而在 Indexer 内的 Q,K 是用 FP8 表示的 。如果不考虑后面的固定的 2048 计算量,主导计算量就由: `L² (BF16) -> L² (FP8)` 在 Indexer 只需要完成挑选最相关 Token 的工作,任务相对简单了很多,这种 Q,K 的 FP8 “量化” 也不影响。 (也就是如果可以用 FP8 无损计算注意力效果也是一样) 由 BF16 到 FP8 似乎只能实现 1 倍的效率提升。 可为什么成本曲线,几乎是常数呢? 在空间占用减半的情况下,带宽占用也成倍增长了,同时寄存器缓存命中率也提高了,这些优化效果还有乘数效应的。 尤其是带宽的提升对榨取硬件性能最为关键。 这里的硬件具体就是矩阵计算加速单元 Tensor Core (Tensor Core 是Nvidia 的叫法,其他加速硬件应该也有类似的东西)。 Tensor Core 非常高效的,几乎可以实现 0 成本的矩阵运算。 因此它并不需要很多(一块卡也就几十个), 就是因为它太快了, 把数据运送给它,取出数据的过程才是真正的瓶颈(这也是大寄存器,高速 HBM 的价值)。 Deepseek 通过将数据表示需要的位数变少,一次就能送进更多参数,实现了更加极致的硬件性能压榨。理论上, 如果带宽没有限制, 再多的计算量都可以常数成本完成。 上面的优化建立在 Deepseek 已经用 MLA, MQA 技术优化过的注意力计算之上的, 之前的技术优化已经让注意力的计算成本变的极低了, 这次是在之前的优化之上再做优化。 这些优化一起才就是的让成本曲线几乎变水平线的原因。 所以,能不能实现无限上下文? 这个方案应该是不行的,随着上下文增长,还是存在 L² 复杂度的。
#DeepSeek
#注意力机制创新
#Lighting Indexer
#硬件性能压榨
#上下文长度优化
分享
评论 0
0
个人主页
通知
我的投稿
我的关注
我的拉黑
我的评论
我的点赞