现代 AI 的“推理成本”:从 Token 计费到计算资源的工程真相
在 LLM 的商业模式中,我们最熟悉的单位是 “Token”。无论是 OpenAI 还是 Anthropic,计费单上永远是 per 1M tokens。但对于构建 AI 系统的工程师来说,Token 只是一个抽象的计费单位,真正的成本核心在于 计算资源(Compute) 与 内存带宽(Memory Bandwidth

现代 AI 的“推理成本”:从 Token 计费到计算资源的工程真相
在 LLM 的商业模式中,我们最熟悉的单位是 “Token”。无论是 OpenAI 还是 Anthropic,计费单上永远是 per 1M tokens。但对于构建 AI 系统的工程师来说,Token 只是一个抽象的计费单位,真正的成本核心在于 计算资源(Compute) 与 内存带宽(Memory Bandwidth) 的博弈。
要理解 AI 推理的真实成本,我们需要拆解 LLM 推理的两个截然不同的阶段:Prefill(预填充) 和 Decoding(解码)。
1. Prefill:计算密集型的“吞噬”阶段
当你向 AI 发送一段 2000 字的提示词时,模型首先进入 Prefill 阶段。在这个阶段,模型需要一次性处理所有输入 Token,以生成初始的 KV Cache。
- 工程特性:Prefill 是 计算密集型(Compute-bound) 的。GPU 可以利用矩阵乘法(GEMM)的高度并行性,让数千个 CUDA 核心同时满载工作。
- 成本真相:此时的瓶颈是 GPU 的 TFLOPS(每秒浮点运算次数)。如果你拥有 H100,Prefill 会极快;如果你用的是低端显卡,你会感觉到明显的“首字延迟”(Time to First Token, TTFT)。
- 优化方向:通过 FlashAttention 等技术减少内存读写次数,让计算单元尽可能不等待数据。
2. Decoding:内存带宽的“慢速”循环
一旦首字生成,模型进入 Decoding 阶段。此时,模型每生成一个新 Token,都需要将整个模型的权重(Weights)从显存(VRAM)重新读取到计算核心中一次。
- 工程特性:Decoding 是 内存带宽密集型(Memory-bound) 的。无论你生成的是一个简单的“Yes”还是复杂的代码,GPU 都必须搬运几十 GB 的权重数据。
- 成本真相:这就是为什么即使 GPU 算力过剩,生成速度依然有上限。瓶颈不在于 GPU 能算多快,而在于显存能把数据搬运多快(GB/s)。
- 残酷现实:在 Decoding 阶段,GPU 的大部分算力其实在“空转”,等待数据从显存传输过来。
3. KV Cache:用空间换时间的权衡
为了避免在 Decoding 时重复计算之前所有 Token 的 Key 和 Value 向量,工程师引入了 KV Cache。它将之前的中间结果存在显存中。
但这带来了新的成本问题:显存碎片化与压力。
- 每个并发请求都需要占用一定的 KV Cache 空间。
- 当并发量增加时,显存会被迅速填满 $\rightarrow$ 导致 OOM(Out of Memory)或被迫降低 Batch Size $\rightarrow$ 直接降低吞吐量 $\rightarrow$ 推高单次请求的硬件摊销成本。
4. 从工程视角看“省钱”
当我们谈论降低推理成本时,实际上是在做以下几件事:
1. 量化 (Quantization):将 FP16 权重压缩到 INT8 或 INT4。这不仅减少了存储空间,更重要的是减少了 Decoding 时需要搬运的数据量 $\rightarrow$ 直接提升速度并降低功耗。
2. 投机采样 (Speculative Decoding):用一个小模型快速预测几个 Token $\rightarrow$ 用大模型一次性验证 $\rightarrow$ 将多次 Memory-bound 的 Decoding 转变为一次 Compute-bound 的验证 $\rightarrow$ 在不损失质量的前提下提升速度。
3. PagedAttention (vLLM):像操作系统管理虚拟内存一样管理 KV Cache $\rightarrow$ 消除碎片 $\rightarrow$ 在同一块显卡上支持更多并发请求 $\rightarrow$ 分摊固定成本。
总结
Token 是给财务看的账单,而 Memory Bandwidth 和 VRAM Capacity 才是决定 AI 系统生死线的工程指标。理解这一点后你就会明白,为什么 HBM3e 高带宽内存比单纯增加 CUDA 核心数对 LLM 推理更重要——因为在 AI 推理的世界里,“搬运数据”比“计算数据”贵得多。
留言区
欢迎分享你的想法!
加载留言中…