理解与生成是相互纠缠的两个过程,理解的结果用于生成,生成的结果用于更新理解,新的理解被用于下一次的生成。
听起来总感觉怪怪的,和每天看见的不太一样?确实如此,当前的大模型设计,推理时采用一次性的prefill,隐含的假设是理解可以一次性完成。对于长上下文输入的应用,当前的做法应该不是最优的,最初可能是因为计算能力不足而下意识做的权衡取舍,后来变成了行业内缺省的做法。
从分离式计算结构的角度审视,更合理的做法是把长上下文输入划分成多段,在每一段做Prefill后,先做生成,然后将生成的结果做为时间上靠前的输入,再做下一段的Prefill,这样的策略预期会改善理解的质量,也会提升生成的质量。
这个例子说明了LLM Computer所处理的计算任务本质上是理解和生成两种性质完全不同的任务的交替,“分离”本身就是系统架构的逻辑起点。这也说明了为什么Prefill和Decode分离不被设定为系统设计的基本原则,因为PD分离是一种工程上的妥协,这一点在新的视角下被暴露了。从另一方面讲,相比于Prefill, Decode的表述,理解与生成是更准确的语言,以Transformer网络为例,Decode的Attention对应的是理解,FFN对应的是生成,这样的表述更准确。
Nvidia GTC发布的LPX系统,以对外披露的资料而言,大体符合我们对LLM Computer 5个设计原则的定义,可以被视为符合这些原则的第一个公开发布的工业界的产品;我们的观点,这个系统不应被视为已有系统的扩展,而是应被视为新的类型的Computer。基于我们所定义的分离式架构,以Memory为中心的计算系统,四维Memory,二维扩展这些概念去看LPX系统,会看见Nvidia在产品设计上如何实现这些概念。同时,我们预期随着时间的推移,除了单个会话的Token per second性能提升,per token成本的降低,整个行业会逐步认识到依照这些原则设计的LLM Computer,相比现有的系统,还会体现出其他方面的优点。