本文对如下5条设计原则逐一做出说明和解释。
1:上下文相关和上下文无关分离
2:以Memory为中心的计算系统
3:新的Memory有容量,带宽,计算,通信四个维度
4:系统从一维扩展改为二维扩展
5:面向低延迟优化设计的系统
这里,我们把“上下文相关和上下文无关相分离”作为第一条设计原则,是因为LLM Computer所处理的计算任务本质上就是理解和生成两种性质完全不同的任务的交替;一个负责理解上下文(关联已有信息),一个负责生成内容(基于理解创造新内容)。而传统体系结构的最大问题,就是把它们混在一起处理,产生执行效率低下等诸多问题,要解决首先就“不要试图用一个万能的架构去适应所有计算”,而是要进行体系结构层面的解耦,让“分离”本身成为设计系统的逻辑起点。
以Transformer网络为例,计算被包含在Transformer Block内的Attention和FFN两个核心模块中。Attention需要考虑每个token与其他token的依赖关系,并使用这些信息来捕捉内部结构和表示,最终计算token之间的关联度,其计算是上下文相关的。FFN则只考虑单独位置,不会进行元素间的信息交换,其计算是上下文无关的。可见Attention和FFN是两种需要不同对待的计算类型,两者无论计算特点还是通信方式等方面都属于不同性质的任务,有着完全不同的需求。
Attention的需求:
l 高带宽(因为要访问所有位置的KV cache)
l 支持复杂的数据依赖(每个位置依赖所有位置)
FFN的需求:
l 大容量(权重矩阵巨大)
l 高算力(矩阵乘法为主)
l 低延迟(因为独立计算,可高度并行)
在传统实现里,这两类计算被紧紧耦合在一起,形成一个完整的Transformer层:先做Attention(上下文相关),再做FFN(上下文无关),交替进行。同一套硬件去满足这两种完全不同的需求,必然互相妥协,已经成为系统扩展的巨大瓶颈。要想解决,则如下图体系结构的解耦就成为必然。
分离,不是为了拆分而拆分,而是需求根据任务的本质进行划分,让不同的硬件处理不同的任务,各自优化,互不干扰。从Attention和FFN的计算本质差异出发,把“上下文相关”和“上下文无关”分开,才能看到它们各自需要什么样的计算、存储、通信、扩展方式,推导出整个系统的设计。这些使得“上下文相关和上下文无关相分离”成为“LLM Computer体系结构的支点”。
如下图所示,传统的以处理器为中心的计算系统一直是以计算单元(CPU/GPU)为中心,它的运行逻辑是:
l 计算单元是“主人”,memory是“仆人”
l 数据被存在远处(memory),需要时就搬过来
l 计算单元发出指令,数据被动响应
l 瓶颈永远是“搬运”:数据搬得不够快,计算单元就闲着
这样的系统将Memory视为被动组件。从访问Memory的视角,其受处理器访问空间,体系结构等诸多的限制,Memory做为被动组件,Memory之间不能主动互相访问。该系统下的优化总是在做一件事:让搬运更快——加缓存、加带宽、加通道。但搬运的本质没变:数据总是被动地走向计算。

随着LLM系统对计算和存储需求的大幅增长,系统中Memory容量、访问性能及其扩展已成为整个计算系统更大的瓶颈。这时候出现了一个反直觉的事实:算力不再是瓶颈,搬运才是。
系统瓶颈的变化,就需要扭转原有的关系。“以memory为中心”的核心,就是逆转原有的关系:
l memory不再是“仆人”,而是“主人”
l 计算单元不再等数据来,而是数据在哪,计算就在哪做
l 系统围绕memory组织,而不是围绕计算单元组织
在冯·诺依曼体系里,Memory是被动的仓库——它的核心属性是容量(能存多少),其他维度(带宽、计算、通信)都不属于Memory本身,而是系统其他部分的事:
l 带宽是Memory+控制器+总线共同实现的系统属性
l 计算是CPU的事
l 通信:Memory之间不能主动通信
只有Memory包含这四个维度,才能使得Memory不再只是系统的“外围”,而是系统的“中心”。它是一个完整的、自洽的节点,同时具备存储、带宽、计算、通信四种能力。

只有如上图的四个维度重新定义Memory:
l 容量:能存多少
l 带宽:能多快被读取和写入
l 计算:能在存的地方算
l 通信:能直接和别的Memory对话
才能使得Memory从被动的、孤立的仓库,变成主动的、联网的、有脑子的节点,从而解决大模型计算系统的问题。在新的定义里,四维Memory成为系统的基本单元。
有了四维Memory节点,怎么把它们组织成一个大系统,使其具备扩展能力呢?
在传统的计算机体系结构里,扩展基本是一维的:
l 更强的单芯片:在一个芯片上堆更多的核心、更大的缓存、更宽的位宽。这是“向上扩展”。
l 更多的芯片:把多个芯片用总线连起来,形成一个更大的系统。这是“向外扩展”。
这两种扩展,本质上都是在某一个维度上做文章,相应的问题是:当某一个维度(线)节点足够多时,这条线就成了瓶颈,当都要通过这条线通信,线就越忙,系统就越慢。
LLM Computer的工作负载及系统扩展本质上是二维的:
l 序列维度:上下文长度,可以无限长
l 参数维度:模型参数及其宽度,可以无限宽,无限多
要解决LLM Computer面临的扩展性瓶颈问题就需要使系统具备的二维扩展能力。二维扩展不是“加更多芯片”,而是在平面上铺开节点,让通信发生在网格的边上,而不是穿过整个系统。每加一个节点,容量、带宽、算力、通信同时增加——四个维度线性扩展。
在冯·诺依曼体系统治的70年里,系统设计的核心目标是吞吐量——单位时间内能处理多少任务,系统吞吐越大越好。至于单个任务等多久则关注较少,只要总吞吐上去了,就是好系统。而传统系统优化吞吐的方式(增大batch size、提高利用率),往往会增加延迟,因为要等更多请求凑成一批次才计算。延迟不是设计目标,而是副作用。
对于LLM Computer以及广义上的智能系统而言,一个需要长时间思考才能回答的系统,即使答案正确,也是不符合要求的。这一条原则是对LLM Computer的“时间约束的定义”,LLM Computer做为处理上下文理解和生成的计算系统,内在地要求低延迟,因为它是为交互而生的。
传统的系统优化设计方法根本无法满足LLM Computer对于低延迟的需求。延迟作为核心体验,必须从副作用变成设计目标。这意味着:
l 新的系统结构要围绕“减少等待”来设计
l 延迟成为核心指标,与吞吐并列甚至优先
l 延迟要成为系统扩展的约束条件。
面向低延迟优化设计系统,就是要从体系结构层面(而不是某个环节)优化端到端延迟。在整个系统的每一层设计,都要问同一个问题:这会让处理时延变得更大吗?
LLM Computer计算系统的五条原则不是孤立的,而是互相支撑的闭环:
l 第一条(分离) 让 第二条(Memory中心) 成为必要——因为FFN权重巨大,必须让计算走向数据
l 第二条(Memory中心) 让 第三条(四维Memory) 成为必然——因为作为中心的Memory必须全能
l 第三条(四维Memory) 让 第四条(二维扩展) 成为可能——因为每个节点都全能,才能组成二维网格
l 第四条(二维扩展) 让 第一条(分离) 得以高效实现——因为可以沿两个维度分别优化
l 第五条(低延迟) 是前四条的验收标准——同时也是它们的设计约束
上述设计原则已经突破了传统的冯·诺依曼体系所定义的Processor,Memory二元结构。
维度 | 冯·诺依曼体系 | LLM Computer计算架构 |
工作负载观 | 通用计算(任何任务) | 上下文理解与生成 |
系统中心 | 计算单元(CPU) | Memory节点 |
存储角色 | 被动仓库 | 主动节点(四维) |
扩展方式 | 一维(更强或更多) | 二维(网格) |
优化目标 | 吞吐优先 | 延迟优先 |
我们相信,做为处理上下文理解与生成的计算系统,LLM Computer计算架构将成为继CPU,GPU之后的第三个通用计算平台。
