尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

大模型为啥一个字一个字蹦?聊聊推理阶段离谱的算力浪费

大模型为啥一个字一个字蹦?聊聊推理阶段离谱的算力浪费 文章目录前言1 先说句扎心的推理才是现在的烧钱大户1.1 算力大头早就不是训练了1.2 训练是一锤子买卖推理是天天上班2 大模型回你消息一共分两步走2.1 Prefill先把你的话一口气读完2.2 Decode一个字一个字往下蹦3 补个基础Attention到底在干啥3.1 QKV三个向量说白了就是三句话3.2 给你们算个最简单的例子4 重点来了Decode阶段纯纯在做无用功4.1 每生成一个字就重算一遍所有KV4.2 这个坑怎么填P.S. 目前国内还是很缺AI人才的希望更多人能真正加入到AI行业共同促进行业进步增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow教程通俗易懂高中生都能看懂还有各种段子风趣幽默从深度学习基础原理到各领域实战应用都有讲解我22年的AI积累全在里面了。注意教程仅限真正想入门AI的朋友否则看看零散的博文就够了。前言不知道你们有没有这种体验跟大模型聊天的时候总觉得它像个正在摸鱼的同事。回消息一个字一个字往外蹦你都怀疑它是不是一边刷短视频一边跟你唠。其实真不是它故意装慢这是大模型的物理特性。今天就给你们掰扯清楚大模型回你消息的完整流程以及这里面藏着的一个超级离谱的算力浪费。1 先说句扎心的推理才是现在的烧钱大户1.1 算力大头早就不是训练了前几年大家都盯着大模型训练。觉得几万张GPU连起来炼模型才是硬核黑科技烧钱也都烧在这上面。其实早就不是这么回事了。现在全球AI算力里训练只占3成推理占了7成这个比例还在往上涨。原因很简单模型够用了。现在随便拉个开源模型出来日常大部分场景都能打。真正的难题早就不是“能不能做出来”而是“能不能用得起”。1.2 训练是一锤子买卖推理是天天上班打个最通俗的比方。训练模型就像你考驾照花俩月报个班熬一熬拿证这辈子就不用再考一次。推理就像你每天开车上班。油价多少、堵不堵车、油耗高不高天天都在花钱一脚油门下去就是真金白银。你产品做出来每天几十万用户提问。每一次回复慢一秒就有用户直接关页面每多花一毛钱算力月底财报就难看一分。所以现在顶尖的AI公司都在玩命抠推理的效率。这不是什么技术理想这是省钱保命。2 大模型回你消息一共分两步走现在主流的大模型都是自回归的路子。说白了就是看着前面的内容猜下一个字是什么跟你玩成语接龙一个逻辑。整个回复过程拆成了两个完全不同的阶段一个叫Prefill一个叫Decode。2.1 Prefill先把你的话一口气读完你发过去的prompt不管是一句话还是八千字小作文模型第一步是一次性全读进去做一次完整的前向计算。这个阶段就叫Prefill。读完之后它就能猜出第一个输出的字。业内管这个时间叫TTFT也就是首字延迟。这个指标直接决定用户觉得你快不快是很多产品的命门。举个例子你问“法国首都是啥”模型先把这句话全看一遍算出第一个字是“巴”Prefill这一步就干完了。2.2 Decode一个字一个字往下蹦出了第一个字之后就进入Decode阶段了。这时候模型把刚生成的“巴”加到上下文里再结合你原来的问题猜下一个字是“黎”。然后再把“黎”加进去猜下一个是“是”。就这么一个字接一个字直到碰到结束标记或者到了你设的最大长度。你平时看到的打字机效果就是这么来的。不是它故意搞氛围感是它真的就得这么一步步算。3 补个基础Attention到底在干啥说到这儿得先插个知识点不然后面的浪费你听不明白。很多人讲Attention讲得云里雾里QKV三个字母甩出来直接给人整懵。其实没那么复杂。3.1 QKV三个向量说白了就是三句话每个字进了模型都会生成三个向量Query、Key、Value。翻译成人话就是三句Query我在找什么信息Key我这儿有什么信息Value我要传出去什么信息就像你去图书馆借书。你手里的书名就是Query书架上的标签就是Key书里的内容就是Value。你对着标签找对应的书就是Attention干的事。3.2 给你们算个最简单的例子就拿三个字举例我爱AI。现在我们算“AI”这个字的注意力它的Query向量是[1,1]。每个字对应的Key和Value分别是我Key[1,0]Value[1,0]爱Key[0,1]Value[0,2]AIKey[1,1]Value[3,1]计算逻辑很简单用Query去点乘每个Key算出来的分数就是关注度。算下来分别是1、1、2再过个Softmax转成概率大概就是21%、21%、58%。说白了就是“AI”这个字一半多注意力在自己身上剩下俩字各分一点。最后用这个比例把三个Value加权加起来就是这个字的注意力输出。就这么回事没什么玄乎的。4 重点来了Decode阶段纯纯在做无用功理解了上面的内容你就会发现原始推理流程里藏着一个特别离谱的设计。4.1 每生成一个字就重算一遍所有KV你想啊Prefill的时候已经把你输入的所有字的K和V都算过了对吧结果到了Decode第一步生成第一个新字之后模型要把整个上下文全算一遍。连原来输入的那些字的K和V也要重新算一遍。第二步生成第二个字又要把前面所有的再算一遍。这就像什么你每天去公司上班进门前都要把公司所有人的名字重新背一遍。明明昨天刚背过前天也背过但你每天都要从头来一遍。纯纯冤大头行为是不是但原始的推理流程就是这么设计的。生成的内容越长重复计算的量就越夸张。碰到长文本生成的场景一半以上的算力全打水漂了。4.2 这个坑怎么填有人肯定要说了既然算过了存起来不就行了还真就是这么个思路。这就是后面要讲的KV Cache专门治这个重复计算的毛病。至于KV Cache具体怎么工作又引出了什么新的问题咱们下篇接着唠。P.S. 目前国内还是很缺AI人才的希望更多人能真正加入到AI行业共同促进行业进步增强我国的AI竞争力。想要系统学习AI知识的朋友可以看看我精心打磨的教程 http://blog.csdn.net/jiangjunshow教程通俗易懂高中生都能看懂还有各种段子风趣幽默从深度学习基础原理到各领域实战应用都有讲解我22年的AI积累全在里面了。注意教程仅限真正想入门AI的朋友否则看看零散的博文就够了。
返回列表