Kimi 和清华发表了一项研究,实现了 Prefill 和 Decode 解耦,而且不是简单的异构,而是可以把 Prefill 和 Decode 放在不同的机房(arxiv.org/html/2604.15039v1)。
什么是 Prefill 和 Decode 呢?
你的考试成绩下来了,你跟你妈说:“这次成绩如果从一个线性序列的两端同时观察,会比较容易产生理解偏差。假设全班人数是一个固定的有限集合,把所有人按成绩从高到低排列,我所在的位置如果用前面有多少人来描述,会显得数量比较充足,因为在我之前仍然存在一个明显大于个位数的群体。”于是你妈开始思考你说的到底是啥意思,这个过程就是 Prefill。
等 Prefill 完成,你妈就会开始想是自己一个人打你,还是等你爸回家后对你进行男女混合双打,是拿拖鞋抽,还是用棍子打。这个思考过程就是 Decode。
在上面这个例子里,你给你妈发了一段复杂冗长的提示词。你妈自己想可能得想半天。Kimi 这个新研究就是让你妈拿起手机,把你说的这段话发给你爸,让你爸来 Prefill。你爸远程 Prefill 后,你妈本地 Decode。
Prefill 和 Decode 对硬件的需求并不一样。用同一套硬件来做的话,如果满足了 Prefill 的需要,在 Decode 阶段硬件就得不到充分运用,造成浪费。如果能把 Prefill 和 Decode 解耦,用不同的硬件来做,比如用贵的 GPU 做 Prefill,便宜的 GPU 做 Decode,甚至一个数据中心专门 Prefill,一个数据中心专门 Decode,那就能大幅提高效率,降低成本。