大模型资源占用分析
大模型推理受到内存带宽的限制吗
大模型推理确实会受到内存带宽的严重限制,这在业界被称为“内存墙”(Memory Wall)。
不过,这种限制并不是贯穿推理的全过程,而是主要集中在生成文本的阶段(Decode 阶段)。我们可以把大模型的推理过程拆解为两个阶段来看:
1. 读题阶段(Prefill 阶段):受限于计算能力
当你向大模型输入一大段提示词(Prompt)时,模型需要并行地处理这些输入内容。
特点:这是一个高度并行的计算过程,模型需要执行海量的矩阵乘法运算。
瓶颈:此时 GPU 的计算单元(如 Tensor Core)通常处于满负荷运转状态,算力被完全压榨。因此,这个阶段是计算受限(Compute-bound)的,瓶颈在于芯片的计算速度,而不是内存带宽。
2. 答题阶段(Decode 阶段):严重受限于内存带宽
当模型开始逐个字(Token)生成回复时,情况就完全变了。
特点:这是一个自回归的过程,生成每一个新字,GPU都需要把之前所有输入和已生成内容的“记忆”(即 KV Cache)从显存中读取出来参与计算。
瓶颈:每生成一个字,计算量其实很小(类似于矩阵与向量相乘),但需要搬运的数据量却非常庞大。这就好比一位世界顶级的厨师(计算单元)切菜速度极快,但食材运输员(内存带宽)每秒只能从冷库里搬出一点点原料。厨师大部分时间都在“等米下锅”,处于闲置状态。因此,这个阶段是典型的内存带宽受限(Memory-bound)。
为什么内存带宽会成为核心瓶颈?
算力与带宽增长失衡:在过去十年里,AI 芯片的计算能力增长了约 80 倍,但内存带宽仅增长了约 17 倍。计算速度远远跑在了数据搬运速度的前面。
KV Cache 的累积:随着对话的进行,需要反复读取的 KV Cache 体积会越来越大,对显存带宽的压力也随之飙升。
这对我们有什么直观影响?
当你发现大模型在刚开始回复时很快(Prefill 阶段计算快),但后续文字生成的节奏变得拖沓、卡顿,或者在长文本对话中响应越来越慢时,这通常不是因为算力不够,而是被内存带宽卡住了脖子。
为了应对这个问题,目前业界也在通过提升硬件带宽(如采用 HBM 高带宽内存)、优化 KV Cache 管理、模型量化(减少数据搬运量)以及存内计算(PIM)等架构创新来试图打破这堵“内存墙”。
模型全部加载到显存中,还受带宽限制吗
依然会受到带宽的限制。
“模型全部加载到显存中”解决的是显存容量(VRAM Capacity)的问题,但这和显存带宽(VRAM Bandwidth)完全是两回事。我们可以通过一个非常直观的类比来理解:
显存容量:好比是厨房的大小,决定了你能在厨房里存放多少食材(模型参数)。
显存带宽:好比是冰箱到灶台的传送带速度,决定了你每秒钟能从冰箱里拿出多少食材下锅。
即使你的厨房(显存)足够大,把所有食材(模型)都装进去了,但如果传送带(带宽)的速度很慢,世界顶级的厨师(GPU计算单元)依然只能站在灶台前干等食材送过来。
为什么模型在显存里了,还需要极高的带宽?
在大模型逐字生成回复(Decode 阶段)时,模型需要每一次都从显存中把庞大的参数和之前积累的“记忆”(KV Cache)读取到计算核心中进行运算,生成完一个字后,再把这些数据写回显存。
这个过程是极其高频的。举个具体的例子:假设一个 10 亿参数(1B)的模型,在不压缩的情况下大约占用 2GB 显存。如果模型每秒需要推理生成 1000 个字,就意味着这 2GB 的数据每秒钟要在显存和计算单元之间完整地搬运 1000 次,理论上这就需要 2000GB/s 的显存带宽。
目前顶级的消费级显卡(如 RTX 5090)显存带宽也只有 1700GB/s 左右,而普通电脑的系统内存(DDR5)带宽通常只有 100GB/s 上下。所以,哪怕显存完全装得下模型,一旦带宽跟不上,计算单元就会处于“算力闲置”状态,也就是我们常说的“内存墙”瓶颈。
这也是为什么在本地跑大模型时,一张二手的 RTX 3090(拥有 936GB/s 的高带宽)生成文字的速度,会比用最新款 CPU 配合大容量系统内存(仅有约 96GB/s 带宽)快上十几倍的原因。
TPS一般是多少
TPS(Tokens Per Second)并没有一个固定的标准值,它完全取决于模型大小、硬件配置和并发量。简单来说,TPS 指的是大模型每秒能生成多少个字(Token)。
结合你提供的书本内容和实际应用场景,我们可以把 TPS 分为两个维度来看:
服务端吞吐量
这是书本中主要讨论的场景(例如每秒处理 10 个请求)。
定义:整个系统每秒钟能向所有用户总共输出多少个字。
典型数值:
1)单张高端显卡(如 A100/H100):运行一个 70B(700亿参数)的大模型,通过量化和优化技术,TPS 可能在 100 到 500 之间。
2)集群:如果是大型推理集群,TPS 可以达到 数万甚至数十万。
书本中的例子:书中提到“芯片制造商宣称的峰值 FLOP/s 下芯片的吞吐量为 100 TPS,但在实际推理服务中只能达到 20 TPS”。这只是一个用于解释 MFU(模型算力利用率)的假设性数字,意在说明理论值和实际值的巨大差距。
单用户生成速度
这是你在本地或网页上直接感受到的速度。
定义:模型每秒钟为你一个人生成多少个字。
典型数值:
1)人类阅读速度:大约是 5-10 Token/s(中文语境下约等于 5-10 个汉字)。
2)流畅体验:通常需要达到 20-30 Token/s 以上,你会感觉文字是“刷刷”出来的,几乎没有等待感。
3)本地运行:
- 在高端显卡(如 RTX 4090)上运行 7B 模型,可以达到 100-200 Token/s(非常快)。
- 在普通电脑或 Mac 上运行 70B 模型,可能只有 5-15 Token/s(勉强够用)。
总结:TPS 到底多少算好?
及格线:TPS > 10(能跟上人类阅读速度,不觉得卡)。
优秀线:TPS > 50(几乎是瞬间生成大段文字)。
工业级目标:追求极高的 TPS(如 1000+),是为了同时服务成千上万的用户,降低单次推理的成本。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)