ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

DeepSeek算力革命:从注意力机制到低成本大模型的关键技术

DeepSeek算力革命:从注意力机制到低成本大模型的关键技术

有人把过去这一年称为大模型的“算力军备竞赛年”,各家拼命囤卡、堆集群、刷新训练规模。但DeepSeek这次爆火,直接把话题从“你有多少卡”拽到了“你有多会省卡”。如果你去看它的技术报告和开源内容,会发现一个非常反直觉的事实:它并没有用史无前例的算力去碾压对手,反而在“注意力机制”这个最底层的计算环节做了一整套效率革命。参数更大、成本更低、推理更快,这几个原本互相冲突的目标居然被同时实现了。

这篇文章我想从技术角度把这件事拆开聊一聊。核心就一条线:注意力机制在数学上到底有多“烧算力”,DeepSeek又是怎么从架构到工程把这笔账算明白的。无论你是做AI应用开发的,还是在做技术选型决策,或者只是好奇为什么这家公司的API价格能压到那么低,这篇内容应该都能给你一些可以直接用的思路。

1. 先说结论:DeepSeek的火爆不是偶然,是注意力机制的一次算力翻身仗

1.1 一场不被看好的“逆袭”

我最早注意到DeepSeek,是很早之前在某个技术群里看到有人分享它的开源模型权重。当时大家的普遍反应是“又一个开源大模型,先观望”。因为那段时间开源阵营虽然热闹,但大多还是处在“追平GPT-3.5”的阶段,真正让人眼前一亮的产品级表现并不多。

转折点发生在它发布新一代模型之后。很多人第一次用DeepSeek,第一反应不是“它比某某模型强多少”,而是“怎么这么便宜”“怎么这么快”。这里就隐藏着关键信息:对于普通用户来说,使用体验的“快”和“便宜”,本质上是算力效率的外在表现。一个模型如果在推理时能省掉一大半的显存占用和计算量,那么在相同的硬件条件下,它能服务的用户数就是别人的好几倍,单次请求成本自然能压到很低。

我后来专门去翻了它的技术资料,才发现真正厉害的地方不在某个单一技巧,而是围绕注意力机制做了一整套组合拳。整套方案下来的结果就是:在保持模型能力的同时,把训练和推理阶段对算力的需求都大幅降低了。这跟单纯堆参数、堆数据量的传统路线是有本质区别的。

1.2 注意力这个词,和大众理解的“注意力”不是一回事

聊技术之前,得先把“注意力”这个概念说清楚。很多人听到注意力,会天然联想到“模型学会了关注重要内容”,这在直觉上没错,但从数学层面看,它就是一种加权求和的运算。

Transformer模型里,每个词(技术上叫token)都会被转换成三个向量:Query、Key、Value。Query可以理解成“我在找什么”,Key是“我身上带什么标签”,Value是“我实际提供的信息”。模型计算一个词和其他所有词之间的匹配程度,也就是用Query去点乘所有的Key,得到一堆分数,再用这些分数对Value做加权求和。这个过程就是一次注意力计算。

这个机制妙就妙在,它让模型有了全局关联能力——句子再长,任意两个位置的词都能直接建立联系。但也正是因为这种“任意位置两两之间都要算一遍”的设计,带来了一个让人头疼的复杂度问题。这个复杂度问题,才是DeepSeek真正去挑战的核心。

2. 注意力机制:大模型最烧钱的数学引擎

2.1 从课堂笔记到加权求和:注意力到底在算什么

为了把注意力机制讲得更好理解,我经常举一个课堂笔记的例子。

假设你在一间教室里听课,班级里有几十个同学,每个人都在说话。你要写一份笔记,记录当前最有价值的信息。你不可能把所有人的话都同等对待——你会重点关注正在讲课的老师、写在黑板上的公式,可能还会偶尔听到旁边同学小声补充的一个知识点。这种对不同信息源的重要性分配,就是注意力的直觉理解。

在大模型里,这个过程被形式化成了一套计算公式。模型在读取一串文本时,每个token都会生成三个向量,然后通过点积运算去计算“每个token相对于其他token的重要性分数”。分数高的,在后面的加权求和里占比就大;分数低的,基本就被忽略了。最终形成的输出,就是带着上下文信息的表示。

这个过程有一个很关键的特性:它是并行计算的。所有token之间的注意力分数是可以同时算的,不需要像循环神经网络那样一步一步串行。这一点是Transformer能撑起大模型时代的根基。但并行也带来一个副作用——每一次计算,都需要把两两组合都算一遍,于是复杂度不可避免地成为算力成本的主要来源。

2.2 O(n²)的诅咒:为什么长文本这么贵

这里就要说到计算机科学里的复杂度了。标准注意力机制的时间复杂度是O(n²),n是输入序列的长度。你输入1000个token,模型要计算100万次注意力分数;输入10000个token,就是1亿次;输入10万个token,那就是100亿次。

这个增长速度有多恐怖?你可以想象一个聚会:5个人的时候,两两打招呼只需要10次;50个人的时候,就需要1225次;500个人的时候,就变成12万次了。人数是线性增长的,但社交互动次数是平方级增长的。注意力机制就是这样一个“全员社交”的机制,序列稍微变长一点,计算量立刻爆表。

很多在推理侧跑大模型的人应该都有体会:模型处理短文本时速度飞快,但一旦上下文长度拉长到几万token,每一轮的响应时间会明显变慢,卡顿感也随之而来。这就是O(n²)在现实中的直观表现。更麻烦的是,这个问题不仅影响计算速度,还直接影响显存占用——因为中间过程需要存储大量的注意力矩阵。

2.3 KV Cache:被忽略的隐性成本

聊到显存,就绕不开KV Cache这个概念。对于生成式模型来说,在生成下一个token时要反复读取之前所有token的Key和Value向量。如果每次都从头重新计算一遍,计算量会翻好几倍,所以常规做法是把之前算好的Key和Value缓存起来,直接放在显存里复用。

KV Cache很像学生的草稿本——把推演到一半的中间结果先记下来,免得后面每一步都从头再推。但这个草稿本非常吃空间。它的大小和模型层数、隐藏维度、序列长度都成正比。一个70B左右的稠密模型,如果上下文长度开到几万token,KV Cache占用几十GB显存是很正常的。

这就是为什么超大上下文在实际部署中那么困难的原因——不是模型算不动,而是显存放不下缓存的Key和Value。DeepSeek在技术资料里花了很大篇幅来优化这部分,因为一旦能把KV Cache的体积压缩下来,就能在同一块显卡上塞进更长的上下文、更大的并发,推理成本自然随之下降。

3. DeepSeek的算力突围:那些被复盘的硬核操作

前面把问题铺开了:注意力机制很强但很贵,KV Cache很实用但很占空间。那么DeepSeek是怎么解决这些问题的?我把它最核心的几个技术创新拆开来看。

3.1 MLA:把KV Cache压缩掉一个数量级

第一个值得重点聊的创新叫多头潜在注意力,英文缩写是MLA。这个方法的目标非常直接:压缩KV Cache的体积。

传统多头注意力里,每个注意力头都有自己的Key、Value,需要独立缓存。假设有128个头,每个头都要存一份全量的Key和Value,那缓存总量就非常可观。不同头之间其实存在大量冗余信息——它们从不同角度观察同一个token,但底层的内容是共享的。

DeepSeek的MLA思路是:先不直接用高维的Key和Value做缓存,而是把它们先压缩到一个低维的“潜在向量”里,缓存这个低维向量,然后再在做注意力计算的时候把它解压出来用。说的直白一点,就是不再为每个头单独存一份完整副本,而是存一个共享的压缩表示,用的时候再展开。

这个压缩带来的效果非常显著。从DeepSeek给出的数据看,KV Cache体积被压缩到了一个相当小的比例,意味着同样一块显卡上,推理并发可以翻好几倍。这个改进对推理成本的影响是直接而且巨大的——别人一个请求要占10GB显存的地方,你可能只需要不到零头。

这里我说一个实操层面的体会:对于做服务部署的团队来说,KV Cache的占用很多时候比模型权重本身更容易成为瓶颈。模型权重是固定的,多少显存就摆在那里,但KV Cache随着并发数和上下文长度动态增长,一旦用户输入变长,OOM就在眼前。所以优化KV Cache不是一个“锦上添花”的事,而是直接决定了服务能不能规模化跑起来。

3.2 MoE架构:671B参数,每次只用37B

第二个关键架构叫混合专家模型,英文是MoE。这个架构其实不算DeepSeek首创,但它在DeepSeek上的应用方式很有代表性。

普通Transformer模型是稠密的——每一次计算,模型的所有参数都要参与。就像一个公司,不管项目是大是小,全体员工都得上。这当然很稳,但效率不高,因为不是每个项目都需要调动所有部门。MoE的思路是:把模型拆分成很多个“专家模块”,每次输入一个token,不是让所有专家都工作,而是通过一个路由机制,只挑选其中最相关的少数几个专家来算。

DeepSeek的总参数是671B——这是一个相当大的数字,甚至比很多知名开源模型都要大。但是它的激活参数只有37B,也就是说,处理每一个token时,真正参与计算的参数只有37B,剩下的专家都处于休眠状态。

这样做的好处非常直接:训练和推理的计算量由激活参数决定,而不是由总参数决定。所以DeepSeek虽然名义上是一个超千亿级的大模型,实际跑起来的单次计算成本却并不高。这也是它能在有限算力下完成大规模训练的关键原因之一——总参数大,模型的容量和表达能力有保障;激活参数小,训练和推理的算力开销可控。

我印象比较深的是,它还特意做了一个负载均衡的设计,避免路由机制总是“偏心”地选某几个热门专家,导致部分专家被过度训练、另一部分长期闲置。这个细节虽然不起眼,但在长时间大规模训练里非常关键,否则训练会很不稳定。

3.3 FP8与抠门工程学:训练成本如何被压下来

架构层面的创新之外,训练过程中的“抠门”也很值得聊。

大模型训练传统上用的是混合精度,常见的是FP16和BF16,这样能兼顾精度和性能。DeepSeek往前走了一步,大量使用了FP8精度来做训练。FP8是一种更低的数值精度,每个数字只占8位,相比FP16占用降低了一半。好处很直观:同样的显存能装下更大的模型或者更大的批处理量,同样的带宽能传输更多的数据。

但用FP8也有风险——精度降低可能导致训练不稳定,甚至出现梯度溢出、损失函数发散等问题。DeepSeek的做法不是直接一键换成FP8,而是精心设计了一套混合精度策略:哪些部分可以用FP8,哪些部分必须保留更高精度,这些都有细致的安排。从它的技术报告看,这套策略保证了FP8训练的效果能和传统精度对齐,但成本大幅下降。

这就有点像装修时精确采购建材——不想全屋都用顶级材料,那样太贵;也不想用次品材料,那样会出质量问题。最好的方式是:承重墙用好材料,装饰面用普通材料,把钱花在刀刃上。FP8调度做的就是这件事。

3.4 推理侧的成本革命:API价格为什么敢这么低

上面这些优化加在一起,最终在推理侧产生了肉眼可见的效果。

我可以算一笔很粗的账。假设你部署一个传统稠密大模型,显存开销很大,单张显卡只能支撑极少并发。而DeepSeek因为KV Cache压缩了,单位显存能承载的并发请求数上升;因为MoE结构,单次推理的实际计算量远小于同规模稠密模型。这两个因素叠加,单次请求的边际成本就变得非常低。

所以它敢把API定价打到很低,并且还能保持服务稳定,因为成本结构确实撑得住。这背后并不是在做亏本买卖,而是从模型设计之初就把成本控制作为核心目标。过去我们默认“模型越大越贵”,DeepSeek用一套架构组合告诉行业:模型可以大,但用起来可以不贵。

这一点对技术选型尤其重要。如果你是做应用开发的,接入API时,底层的成本结构直接决定你这个应用能不能盈利。我记得有不少开发者拿到DeepSeek的API价格之后,做的第一件事就是重新测算自己的业务成本。同样的模型能力,成本降到原来的几分之一,很多原本需要OCR、配音等外围能力辅助的场景,现在直接用语言模型就能搞定。

4. 这场算力革命对普通人意味着什么

4.1 大模型“平民化”的分水岭

如果说ChatGPT的出现让大众第一次知道了大模型,那么DeepSeek这轮爆火的意义,在于让更多人意识到了算力成本是可以被技术大幅压缩的。

过去两年,行业里弥漫着一种焦虑:大模型是巨头的游戏,普通人很难参与。动辄上万张显卡的训练集群,对任何创业团队都是天文数字。但DeepSeek用一套开源权重加上低成本的推理优化,展示了一条不同的路径:与其在算力数量上硬刚,不如在算法效率上做文章。这个信号对中小团队极具激励意义——你不需要复刻一个顶尖实验室的硬件规模,也能基于开源权重搭建自己的产品。

我身边已经有越来越多人在做这样的尝试:用DeepSeek的模型做垂直领域的知识库问答,做代码辅助工具,做长文档分析。过去这些场景受限于接口成本和响应速度,很难商业化落地,现在瓶颈一下子被放宽了很多。

4.2 给技术从业者的三条经验

复盘DeepSeek的这次突围,我觉得有三条经验是值得所有技术人记住的。

第一条,优化要从底层结构入手,而不是在表层打补丁。很多人想到降本增效,第一反应是换更便宜的硬件,或者砍掉不必要的功能。但DeepSeek选择的是改变模型本身的计算结构。这是一个更困难但更根本的路径,一旦走通,收益是成倍的。

第二条,成本控制是一个系统工程,而不是单点优化。MLA压缩KV Cache、MoE降低激活参数、FP8降低存储带宽需求,这三件事单独拿出来任何一件都是不错的成绩,但真正厉害的是它们组合在一起,在训练、推理、部署的每一个环节都实现了节流。单一技术容易被模仿,系统级的成本优势才是真正的护城河。

第三条,开源和社区生态会加速技术迭代。DeepSeek把关键技术细节公开之后,整个社区都能去学习、讨论、做二次创新。这种开放的姿态,让它的影响力远远超出了单一产品本身,变成了一个技术范式的推动者。对开发者来说,与其闭门造车,不如尽早拥抱开源生态,借力社区的力量放大自己的成果。

4.3 注意力革命的后半场:还能往哪儿卷

回到注意力机制本身——它的优化其实还远没有到天花板。

当前标准注意力的O(n²)复杂度的瓶颈,已经有了很多破解思路:稀疏注意力只让部分重要token参与全局交互,线性注意力用核方法把复杂度压到O(n),等等。DeepSeek的MLA主要解决了KV Cache的存储问题,但注意力计算的复杂度问题后续还有更大的优化空间。

我比较关注的下一个方向是推理阶段的动态计算。现在的模型不管输入内容简不简单,都会用相同的算力去处理。未来有可能根据输入的复杂度动态调整计算量——简单问题快速跳过,复杂问题深入推理。这种动态的路由和计算方式,会把算力效率再往上提一个量级。

另一个值得关注的方向是硬件与算法的协同优化。DeepSeek的FP8训练已经展示了这种协同的价值,未来会有更多专门为注意力机制定制的硬件加速方案出现。当算法和芯片一起为注意力机制做优化,算力革命的下半场会更加精彩。

我在实际跟进这些技术的过程中最大的体会是:注意力机制这套数学框架虽然已经提出了好几年,但围绕它的优化空间依然极其广阔。它就像一栋主体结构已经建好的大楼,设计图纸已经锁定了,但内部怎么做隔断、管线怎么走、家具怎么摆,还有太多可以反复优化的细节。

DeepSeek这次让“注意力”和“算力”两个词重新被放到了一起审视,让更多人意识到两者的关系不是单向的需求关系,而是可以互相成就的:注意力机制提出高难度的计算需求,反过来也逼着人们去发明更聪明的算力使用方式。这种循环推动的进化,比单纯堆叠资源要健康得多,也持久得多。

最后说一个非常实用的小建议:如果你正在做技术规划,不妨把“算力效率”纳入核心指标,从模型选型阶段就开始测算训练和推理的成本,而不是等部署上线之后才发现成本不可控。提前用上和DeepSeek类似的思路——压缩缓存、减少激活参数、调度数值精度——你会发现大模型的成本远没有想象中那么吓人。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进