为什么本地LLM会慢?
内存宽带墙
在LLM生成文本(Decoding阶段)时,它是逐字(Token)生成的。为了生成 哪怕仅仅一个Token ,计算单元也必须把模型的所有权重(Weights)从显存(VRAM)或内存(RAM)中完整地读取一遍。
因此,模型生成的速度主要取决于内存带宽,而不是算力。
- 计算公式: 理论生成速度 ≈ 内存带宽 / 模型加载的体积。
- 硬件差异: 数据中心级的英伟达 H100 显卡内存带宽高达 3.3 TB/s ;而顶级的消费级显卡 RTX 4090 带宽约为 1 TB/s ;如果是普通的系统内存(DDR5),带宽通常只有 60-80 GB/s 。
- 如果你用纯CPU运行模型,或者显卡带宽不足,数据搬运的速度远远跟不上处理器计算的速度,导致计算核心大部分时间都在“排队等数据”。
HBM vs GDDR
API 端的企业级显卡(如 A100 / H100)使用的是 HBM(高带宽内存) 。这种内存直接和 GPU 核心封装在一起,数据通道极宽。一块 H100 的带宽高达 3.3 TB/s 。本地消费级显卡(如 RTX 4090)主要是用 GDDR6X 显存。虽然玩游戏很强,但在跑大模型时,它的理论最大带宽只有约 1 TB/s 。按照理论带宽速度,企业级显卡也比消费级显卡快3倍以上。
虽然Arm架构的苹果机器显卡和处理器共享内存,不需要PCIe 数据传输,问题是哪怕是Ultra芯片,内存带宽也只有800GB/s,一般的Pro只有120GB/s,这也比一般的普通的 PC 系统内存带宽只有 60-80 GB/s
张量并行和定制化
张量并行技术是把同一个模型切碎,将其均匀分布在 4 张甚至 8 张通过 NVLink(极高速互联通道)连接的 H100 显卡上。生成每一个 Token 时,8 张显卡同时工作,每张卡只需要读取 1/8 的模型数据。这意味着读取时间被缩短到了八分之一,速度成倍飙升。
本地部署的框架(如 Ollama, LM Studio, Llama.cpp)主打的是兼容性,云厂商使用的是为特定硬件“量身定制”的极限优化引擎,比如 NVIDIA 的 TensorRT-LLM 或专门优化过的 vLLM 。部署一个模型前,厂商会花费几个小时进行预编译(Engine Building),把所有的计算图针对他们服务器上特定型号的 GPU 压榨到极致。这种底层优化带来的速度提升通常在 2 到 3 倍以上。