显存不够,加内存有用吗?本地大模型卸载到底在搬什么(2026)

模型装不进显存,加内存能不能救?答案取决于模型是什么结构:MoE 模型可以,稠密模型基本不行。 把 MoE 的专家权重放进系统内存,gpt-oss 120B 只占 4 GB 显存,一张 16GB 的 RTX 5070 Ti 配 96GB 内存就能跑到约 21 tokens/s;换 RTX 5090 也还是 21,因为速度卡在内存带宽上。稠密模型反过来:Qwen3 32B 4-bit 在 16GB 卡上留三分之一权重在内存,预估从 32 掉到 7 tokens/s,让出的层越多掉得越狠。截至 2026 年 9 月 7 日,我们的建议是:常用模型是 MoE,加内存到 64GB 或 96GB;常用模型是稠密,先降量化、降上下文,再换 24GB 卡;图片和视频生成看第六节,卸载对它们的账不一样。

示意图:一张双风扇显卡和两条台式机内存条并排放在木桌上
示意图 · 一张双风扇显卡和两条台式机内存条并排放在木桌上

显存和内存之间隔着什么?

隔着一条 PCIe 总线和十几倍的带宽差:显存 900 到 1800 GB/s,双通道 DDR5 约 70 GB/s,PCIe 4.0 x16 约 32 GB/s。 生成每个 token 都要把参与计算的权重完整读一遍,这些字节从哪里读、走哪条路,决定了速度。

数据放在哪 读取带宽 相对显存
RTX 5090 显存(GDDR7) 1792 GB/s
RTX 4090 显存(GDDR6X) 1008 GB/s 0.56×
RTX 5070 Ti 显存(GDDR7) 896 GB/s 0.5×
双通道 DDR5 系统内存,CPU 直接算 约 70 GB/s 0.04×
经 PCIe 4.0 x16 搬到显卡再算 约 32 GB/s 0.02×

显卡带宽来自各型号规格页,内存和 PCIe 取的是常见台式机的实际值:DDR5-5600 双通道理论 89.6 GB/s,实跑七八成;PCIe 4.0 x16 单向理论 31.5 GB/s,PCIe 5.0 翻倍到 63 GB/s(PCI Express 各代带宽DDR5 规格)。本站速度公式里系统内存按 70 GB/s 乘 0.7 的效率算,口径见 方法说明

所以「16GB 显存加 64GB 内存」不是 80GB 显存。放进内存的那部分权重,每个 token 都要走一遍慢十几倍的路,快的那部分只能等它。卸载的全部学问,就是想办法让走慢路的字节尽量少。

卸载到底在搬什么?

三种卸载搬的东西不一样:稠密模型分层卸载搬的是每个 token 都要用的权重,MoE 专家卸载搬的是每个 token 只用一小部分的专家,扩散模型的分块卸载搬的是每一步都要用但每步只用一次的权重。 名字都叫 offload,代价差一个数量级。

示意图:工作台上只放得下三个零件,其余零件放在货架上,需要时来回搬运
示意图:工作台上只放得下三个零件,其余零件放在货架上,需要时来回搬运
  1. 稠密模型分层卸载llama.cpp 用 -ngl 指定放进显卡的层数,剩下的层留在 CPU 上算。稠密模型每个 token 要过完所有层,留在 CPU 的层就按内存带宽跑。这是最常见、也最不划算的卸载。
  2. MoE 专家卸载。MoE 模型每层有几十到几百个专家,每个 token 只激活几个。llama.cpp 的 --n-cpu-moe 把专家权重全放进内存,注意力层、共享专家和 KV cache 留在显卡。每个 token 只从内存读激活的那几个专家,走慢路的字节只占总权重的几十分之一。gpt-oss 120B 总参数 117B,每个 token 只读 3.6B 的专家,这就是它在 16GB 卡上也能跑的原因。
  3. 扩散模型分块卸载。ComfyUI 和 Diffusers 把 UNet 或 DiT 的权重分块放在内存,每一步推理时按顺序搬进显卡算完再换下一块。每一步都要把整个模型经 PCIe 搬一遍,但扩散模型每步计算量大、总步数固定,多出来的搬运时间摊到每张图上通常是几秒到几十秒。Diffusers 文档里的 model offload 和 sequential offload 就是这两种粒度(Diffusers 显存优化)。

三种里只有第二种能让「加内存」成为正经方案。下面分开算账。

稠密模型分层卸载:让出多少层,掉多少速度?

让出一成层,速度掉一半;让出三成,只剩四分之一。 用本站公式算 Qwen3 32B 4-bit 在 RTX 3090 上的解码速度,权重留在显卡的比例从 100% 往下降:

权重留在显卡 放进内存 预估速度
100% 0 GB 32 tokens/s
90% 1.8 GB 15 tokens/s
80% 3.7 GB 10 tokens/s
70% 5.5 GB 7 tokens/s
50% 9.2 GB 5 tokens/s
0%(纯 CPU) 18.3 GB 3 tokens/s

掉得这么快,是因为每个 token 的耗时是两段相加:显卡那段读 900 GB/s,内存那段读 49 GB/s。放 1.8 GB 进内存,这 1.8 GB 每个 token 要花 37 毫秒,比显卡读完剩下 16.5 GB 的 26 毫秒还长。内存那段一出现就成了瓶颈,显卡再快也只能等。

换成真实的买卡场景:16GB 的 RTX 5070 Ti 跑 Qwen3 32B 4-bit,权重 18.3 GB 加 2 GB KV cache,只能把 66% 留在显卡,预估 7 tokens/s;同样的模型在 24GB 的 RTX 3090 上整机放显存,预估 32 tokens/s。Gemma 4 31B 更惨,它的 KV cache 大,16GB 只放得下 37% 的权重,预估 4 tokens/s。

结论很直接:稠密模型超出显存,加内存换来的是「能跑但不能用」。想让它可用,顺序是先降上下文,再降到 3-bit,最后换 24GB 卡,见 16GB 能跑哪些模型 里的处理顺序。偶尔跑一次 70B 模型可以忍受 2 tokens/s,天天用不行。

MoE 专家卸载:加内存真正有用的场景

MoE 模型把专家放进内存后,显存需求只剩 4 到 7 GB,速度由内存带宽决定,任何 16GB 以上的显卡都差不多。 下表由模型库实时计算,「卸载」列是显存加内存两个数:

模型4-bit最便宜能跑的卡
8K32K
Qwen3.6 35B A3B36B · A3B22 GB卸载:4 GB 显存 + 19 GB 内存24 GB卸载:6 GB 显存 + 19 GB 内存Tesla V100 16GB¥880 · 卸载
Gemma 4 26B A4B25.8B · A4B18 GB卸载:6 GB 显存 + 13 GB 内存23 GB卸载:11 GB 显存 + 13 GB 内存Tesla V100 16GB¥880 · 卸载
GLM 4.7 Flash30B · A3B19 GB卸载:4 GB 显存 + 17 GB 内存20 GB卸载:5 GB 显存 + 17 GB 内存Tesla V100 16GB¥880 · 卸载
gpt-oss 120B117B · A5.1B67 GB卸载:4 GB 显存 + 65 GB 内存69 GB卸载:6 GB 显存 + 65 GB 内存Tesla V100 16GB¥880 · 卸载
GLM 4.5 Air106B · A12B62 GB卸载:7 GB 显存 + 56 GB 内存66 GB卸载:11 GB 显存 + 56 GB 内存Tesla V100 16GB¥880 · 卸载
DeepSeek V4 Flash284B · A13B160 GB卸载:7 GB 显存 + 155 GB 内存162 GB卸载:9 GB 显存 + 155 GB 内存Tesla V100 16GB¥880 · 卸载

三个档位的看法不一样:

  • 30B 级 MoEQwen3.6 35B A3BGemma 4 26B A4BGLM 4.7 Flash):4-bit 整机要 17 到 22 GB 显存,24GB 卡直接放显存,预估 110 到 145 tokens/s。16GB 卡走卸载,显存 4 到 6 GB、内存 13 到 19 GB,预估 38 到 54 tokens/s。32GB 内存够用,速度也够日常聊天和写代码。
  • 100B 级 MoE(gpt-oss 120B、GLM 4.5 Air):整机要 62 到 67 GB 显存,消费卡没有一张放得下。卸载后显存 4 到 7 GB,内存 56 到 65 GB,预估 12 到 21 tokens/s。这是加内存最值的场景:一张 16GB 卡加 96GB 内存,就能跑原本要 RTX PRO 6000 才能整机放下的模型。
  • 300B 级 MoEDeepSeek V4 Flash):内存要 155 GB 以上,预估 12 tokens/s。能跑,但内存本身就要 192GB 起,见 DeepSeek 选卡 里对满血版的判断。

卸载模式下显卡型号几乎不影响速度,这是最反直觉的一点:

型号Qwen3.6 35B A3Bgpt-oss 120BGLM 4.5 Air
GeForce RTX 5070 Ti54*21*12*
GeForce RTX 309014121*12*
GeForce RTX 409014621*12*
GeForce RTX 509017821*13*
RTX PRO 6000 Blackwell178153100
Mac Studio M4 Max 128GB936834

4-bit、8K 上下文、单路解码的预估速度。带 * 的是 MoE 模型把专家权重放在系统内存里跑(按 70 GB/s 内存带宽算)。

带星号的是卸载速度。gpt-oss 120B 在 RTX 5070 Ti、RTX 3090、RTX 5090 上都是 21 tokens/s,因为每个 token 的时间大头是从内存读 3.6B 激活专家的 40 多毫秒,显卡那段只有一两毫秒。同一个模型整机放进 96GB 的 RTX PRO 6000 是 153 tokens/s,放进 Mac Studio M4 Max 128GB 的统一内存是 68 tokens/s。想让 100B 级 MoE 快起来,要么显存装下整机,要么走 Mac 的统一内存,见 Mac 统一内存对比。为卸载买更贵的显卡是白花钱。

加内存之前先查什么?

先确认内存带宽、容量和 llama.cpp 参数,再下单。 三件事按顺序:

  1. 通道数决定带宽。上表的速度按双通道 DDR5 约 70 GB/s 算。笔记本和迷你主机常常只有单通道或焊死的内存,带宽减半,卸载速度也减半;四通道的工作站平台翻倍。买内存条要成对插,插错槽位变成单通道是最常见的浪费。
  2. 容量按专家权重加两成。系统本身、KV cache 之外的运行时缓冲、浏览器都要吃内存。gpt-oss 120B 专家权重 65 GB,配 96GB;GLM 4.5 Air 56 GB,64GB 勉强、96GB 稳;Qwen3.6 35B A3B 19 GB,32GB 够。内存不够时操作系统会用硬盘交换,速度掉到 1 tokens/s 以下,比不跑还难受。
  3. 参数要写对。llama.cpp 启动时加 --n-cpu-moe N,N 是把专家放进 CPU 的层数,从模型层数开始往下调,显存有余量就调小让更多层留在显卡;-ngl 99 保证注意力层全部进显卡。LM Studio 的模型加载选项里有把专家权重放到 CPU 的开关,其他前端以各自版本的文档为准(llama.cpp 仓库)。

Windows 用户还有一个陷阱:NVIDIA 驱动默认开着系统内存回退,显存用满后自动把数据溢出到内存,程序不报错,速度直接掉到个位数。这不是卸载,是驱动在替你做最糟糕的那种卸载。在 NVIDIA 控制面板的「管理 3D 设置」里把「CUDA 系统内存回退策略」改成「首选无系统内存回退」,显存不够就会老实报错,你才知道到底装不装得下。

什么时候该换显卡,而不是加内存?

常用模型是稠密结构、超出显存两成以上,换卡;常用模型是 MoE,加内存。 两条路的价格差不多,效果差十倍。

型号显存 GB带宽 GB/sINT8 TOPS功耗 W闲鱼显存单价Qwen3 32B 速度 t/s
GeForce RTX 5070 Ti16896352300¥7,9258 条挂单¥495
GeForce RTX 309024936285350¥8,0005 条挂单¥33332
GeForce RTX 4090241,008661450¥22,80013 条挂单¥95035
GeForce RTX 5090321,792838575¥40,00017 条挂单¥1,25061

拿 Qwen3 32B 这种稠密模型算账:16GB 的 RTX 5070 Ti 加 64GB 内存,卸载后 7 tokens/s;换成 24GB 的 RTX 3090 整机放显存,32 tokens/s。二手 3090 比 5070 Ti 便宜,多出来的显存比多出来的内存值钱得多,见 3090 与 5070 Ti 之争

反过来拿 gpt-oss 120B 算:RTX 5090 卸载后 21 tokens/s,RTX 5070 Ti 卸载后也是 21 tokens/s,两张卡的价差在一万元上下,跑这个模型完全没区别。这笔钱换成 96GB 内存,还剩一大半。

判断规则就三条:

  • 常用模型是稠密的,缺的显存在两成以内,先降量化或上下文;超过两成,换卡。
  • 常用模型是 MoE 的,加内存到专家权重的 1.2 倍,显卡够 16GB 就行。
  • 偶尔才跑一次的大模型,用卸载忍一忍,不要为它买任何东西。

图片和视频生成的卸载有什么不同?

扩散模型卸载的代价是每步多几秒的搬运时间,不是每个 token 掉十倍的速度,所以更能忍;但显存峰值常出现在 VAE 解码,那一步卸载帮不上忙。 大模型解码是「每个 token 读一遍权重」,扩散模型是「每一步读一遍权重,做几十步」,两者的账不一样。

ComfyUI 在显存不够时会自动把权重放进内存分块加载,生成一张图多等几秒到几十秒,多数人能接受。官方 Wan 2.2 文档给出的「8GB 显存能跑 5B 模型」正是建立在这种原生卸载之上(ComfyUI Wan 2.2 教程)。注意它说的是 5B 版本加卸载,A14B 版本不在这个门槛里,两个版本的显存数字不能混用。

真正卡住视频生成的往往不是权重,而是 VAE 解码:几十帧的潜变量一次解码成像素,显存峰值可能比生成阶段还高,而且这一步权重很小、中间张量很大,卸载权重没有意义。遇到「生成到最后一步才爆显存」,要做的是分块解码、降分辨率或减少帧数,不是加内存。

给图片和视频用户的判断也简单:加内存能让原本跑不起来的工作流跑起来,代价是每张图多等一会儿;想把等待时间砍掉,还是要显存,而且视频生成的显存需求上限比大模型高得多,见 16GB 显存能跑哪些模型 里对显存容量档位的说明。

常见问题

内存和显存能直接相加吗?

不能。系统内存的带宽只有显存的十几分之一,放进内存的那部分权重每生成一个 token 都要重新读一遍。16GB 显存加 64GB 内存不等于 80GB 显存,它等于 16GB 显存加一条慢十几倍的旁路。

跑稠密模型时加内存有用吗?

几乎没用。llama.cpp 把稠密模型的一部分层放到 CPU 后,每个 token 都要走一遍内存带宽:Qwen3 32B 4-bit 在 16GB 卡上留三分之一在内存,预估只有 7 tokens/s,而 24GB 卡整机放显存是 32 tokens/s。这时候该换卡或者降量化,不是加内存。

跑 MoE 模型需要多少内存?

专家权重的体积加两成余量。gpt-oss 120B 4-bit 的专家权重约 65 GB,配 96GB 内存合适;Qwen3.6 35B A3B 只要 19 GB,32GB 内存就够。KV cache 和注意力层留在显卡上,显存 4 到 7 GB 就行。

为什么 Windows 上显存不够没有报错,只是突然变慢?

NVIDIA 驱动默认开着系统内存回退,显存用满后自动把数据溢出到内存,程序不报错但速度暴跌。在 NVIDIA 控制面板把「CUDA 系统内存回退策略」改成「首选无系统内存回退」,就能让它老实报显存不足,方便你判断到底装不装得下。

图片和视频生成的卸载和大模型一样吗?

原理一样,代价不同。扩散模型每一步都要把权重从内存经 PCIe 搬到显卡,每步多等一到几秒,但总步数固定,所以卸载后往往仍可接受。真正卡住的常常是 VAE 解码那一步的显存峰值,那一步卸载帮不上忙,只能降分辨率或分块解码。

文中提到的显卡

文中提到的模型