近日,微信大语言模型 WeLM,又有更新了。
WeLM Blog 发布了一篇名为《Hidden Decoding at Scale:面向前沿大模型的潜空间计算扩展》的论文。

论文很技术,但是能从文章中把握核心思想。
1、
WeLM,属于微信自研的大语言模型,小范围公测的微信小微背后,就是用的 WeLM。
其研发时间,甚至早于腾讯自研的混元。
我们知道,现在的大语言模型运行方式,都会有个内心 OS。
也就是让模型把推理过程一步步写出来,也就是大模型的中间状态的表达,这是大模型的思考过程。
比如,首先、然后、其次、最后,答案是…

为什么要这么做呢?
因为模型中间状态(Hidden States)的表达能力决定了模型最终的效果。
在模型规模相同的情况下,增加模型的中间状态往往会得到更优的模型效果。
但是这种方式有三个问题:
一个是慢,另一个是低效,成本高。

如果微信小微处理一个问题,让你等十来秒,其实你是很难忍受的。
那还不如我自己上手呢。
如果微信小微开放给所有微信用户,要消耗巨大的算力和存储,这是微信难接受的。
那样难以开放给所有用户。
2、
为了解决这个问题,WeLM 创新了一个机制:Hidden Decoding(隐式解码)。
具体来说,就是:
在不增加 Transformer 主体参数的前提下,通过复制多份 Vocab Embedding 将序列长度扩展 n 倍,使每个 token 在单次前向传播中获得 n 倍的有效计算量。
在多个模型规模的实验中,该方法带来了持续的 loss 下降与评测提升,且在较大规模的模型上仅需少量 continue training 步数即可观察到显著收益。
用直白的话说,就是:
能不能让模型在”脑子里”(潜空间)默默思考,不写成过程文字。
用你们团队要给老板出方案,打个类比:
以前的做法是你们团队每个人,每次必须把草稿和中间过程,都写出来给老板看,每写一版看一次。时间长、效率低。
现在 Hidden Decoding 说:前三版在你们各自的脑子里自己转就行,只把最后一版写成正式方案交出来,给老板看。时间短、效果高。
这就是 Hidden Decoding 的处理机制。
这种方式能带来时间、效率、成本的多维优化提升。
之前,WeLM 的Hidden Decoding机制,仅用在中小规模的大语言模型上,并得到了验证。
比如微信自己的6B、8B 以及 80B 等规模的WeLM,就属于总参较小的大语言模型。
这些中小规模的大语言模型,已经应用Hidden Decoding机制,并得到了效果显著提升的验证。
3、
那这个Hidden Decoding,能不能应用到现在主流的总参超过 100B的大语言模型上呢?
这是微信这次更新的论文《Hidden Decoding at Scale:面向前沿大模型的潜空间计算扩展》,要解答的问题。
先说结论:
Hidden Decoding 在前沿的 100B+的MoE大语言模型,完全可用。
并且给出了关键工程设计,有 3 个:
1)Stream-Factorized Attention(流式注意力分解)
让大多数层只在同一条 stream 内做注意力,只有少数层跨 stream 混合。
也就是大部分时候各想各的,关键节点才碰头。通过这种方式,来保证效果和提升效率。
2)保留中间流 KV
为了让模型在处理后面的内容时,还能回忆起前面的重点,需要把这些“中间步骤”对应的 Key 和 Value 缓存下来。
也就是好记性不如烂笔头。
3)KV-mirror加速
后段的一批步骤不再从自己的输入重新计算,而是直接复用前段已经处理好的同一批数据。
也就是后段直接复用前段做好的分析。
通过这三个工程设计,Hidden Decoding 就能在前沿的 100B+的MoE大语言模型上应用。
比如在微信较大总参的WeLM-HD4-617B模型上,Hidden Decoding已得到了验证。
4、
微信大语言模型 WeLM,闭源、微信专用。
因为微信的大体量、高日活。
所以微信的WeLM 相比其他大语言模型,更加注重:
低成本、低延迟、高效、稳定可控、长上下文理解。
微信小微一开放。
WeLM将成为国内调用量最大的大语言模型。
全球,或许也能排上前三。
WeLM的每一次创新,都是在为小微全量开放做准备。

