DeepSeek最受诟病的就是服务器经常崩溃,不过从现在起,DeepSeek或许能告别服务器的卡顿与宕机。关键在于,梁文锋挂名发表了一篇题为《DSpark:基于置信度调度的推测解码与半自回归生成》的论文。按照DeepSeek的习惯,DSpark应该读作D·Spark而非DS·park。这已是梁文锋在2024年发表《DeepSeek LLM》之后的第12篇挂名论文。不仅如此,DSpark这篇论文还与梁文锋2010年的硕士毕业论文重名。DSpark就像给DeepSeek装上了加速器,对用户而言,体感上就是快、稳,不会再崩溃。同等质量的回答,速度直接提升60%到80%,原本需要等待10秒的回复,现在五六秒就能完成。最重要的是,高峰时段,DeepSeek也不会一直显示加载动画。DSpark究竟有多神奇?且听下文分解。
01 DSpark的本质及其解决的DeepSeek老问题 大模型生成文字的根本是一个“猜字游戏”。每次写一个字,模型都要重新审视前面所有已写之字,计算一番,方能决定下一个字该为何。每个字的生成,AI需从头到尾重新运算一次,写100个字,就要反复消化99遍。学术界将这个“自我回归”的过程称为“自回归生成”。
整个过程就是后一步紧跟前一步,前一步未计算完毕,后一步就无法启动。因此,过去几年,业界都在研究能否让模型一次性猜出一串字。
这一思路,正是DSpark论文中提出的核心机制——投机解码(Speculative Decoding)。其运行逻辑是这样的:挑选一个跑得快但水平稍逊的模型充当草稿,让它快速一口气猜出后面好几个字,然后将这一串字一次性交给大模型验证。大模型快速扫一眼,连续猜对的字直接保留,从第一个猜错的地方起,大模型自行补全,草稿模型再继续猜测。如此一来,既能保证输出的内容为大模型认可,速度又比逐字猜测快。业内普遍认为投机解码存在两种打法。
第一种是“老实人”打法。草稿模型同样逐字猜测,猜完一个字、审视前文、再猜下一个。优点是输出质量高,缺点是速度慢,与自回归生成相仿。
第二种是“囫囵吞枣”打法,一口气将所有字猜出。虽快,但在猜测时根本不考虑完整句子,仅看前一个字。这会导致初期输出尚可,但越往后,质量越低。论文中将此现象称为“后缀衰减”:第一个字的正确率尚可,第二个字大幅下滑,第五六个字基本胡乱猜测。DSpark的核心思路是半自回归生成。简言之,它融合了上述两种打法。
第一步,以极快速度一口气将所有字猜出,完成后回头检查语句是否通顺、有无错别字。第二步,DSpark会给每个字打一个“靠谱分”,比如第一个字90分,第二个80分,第三个60分,第四个30分。但这里有个难题:打完分后,DSpark知道哪些字写错了,若要改正,又得回到自回归生成,之前提升的效率就此打折扣。因此,DSpark提出了一种方法:提前测出大模型在不同批大小下的处理速度,然后将请求草稿按靠谱分从高到低排序。它先拿给大模型验证最高分的那批请求。这个过程很快,因为量少。接着它自问:要不要加入第二批?加入后大模型会多花些时间,但这批字有80%是正确的,能多得到几百个正确结果。计算时间成本与正确结果收益,若收益大于成本,则加入。第三批,正确率降至60%。





