4090 能跑多大参数的模型:按参数量和量化方式算清你的上限

模型与算力

按参数量和量化档位估算 4090 显存能承载的模型上限,给出可自己套用的算式、逐级降档顺序与判断不适用的情况。

很多人手里有一张 4090,想本地跑开源模型,第一句就是「能跑多大的」。答案不是一个数,而是取决于参数量、量化档位、上下文长度和并发数这四件事怎么搭。这篇给你一套能自己算的粗估方法,先把上限框出来,再看什么情况下这套估算不成立。

很多人手里有一张 4090,想本地跑开源模型,第一句就是「能跑多大的」。这个问题用一句话回答不了,因为同一张卡,量化档位、上下文长度、并发数怎么搭,能装的参数量能差出好几个台阶。这篇给你一套能自己动手算的粗估方法,先把上限框出来,再看什么情况下这套估算会失效。

先说清一点:下面讲的是「能装进显存」和「大致能跑得动」的估算,不是保证你能跑到某个吞吐。实际帧率、首字延迟受框架、驱动、算子实现影响很大,结论要以你在自己机器上测出来的数字为准。站内的价格与参数资料只作参考,具体数字到对应的站内页面核对。

为什么没有「能跑多大」的标准答案

因为决定上限的不是显卡型号一个变量。同一张卡,量化档位从高往低换,能装的参数量直接翻倍;上下文从短拉到长,KV 缓存又会吃掉一大块;再叠上并发,原本跑得动的模型可能就起不来了。所以正确的心智模型是:给定预算,看你怎么分配。

  • 要分开看两件事:「装得下」看显存占用,「跑得动」还得看吞吐和首字延迟,前者是硬门槛,后者是体验线
  • 显存占用主要由三块构成:权重、KV 缓存、框架自身开销,只算权重一定会低估,长上下文场景尤其明显
  • 先量出自己机器上的空闲显存基线,再往上套算式,比直接抄别人晒的结论靠谱得多
  • 别人的结论往往只对应他那套上下文和并发配置,换个用法就不成立,所以估算要带条件

显存花在哪:权重、KV 缓存、框架开销

把这三块拆开算,是整套方法的核心。权重是最大的一块,量化的意义就是把它压小;KV 缓存随上下文长度和并发线性增长,长对话里它经常是压垮显存的最后一根稻草;框架本身还有固定开销和临时缓冲预留,所以真实可用显存小于标称值。

权重占用
由参数量和量化位宽共同决定,位宽越低省得越多,代价通常是输出质量下降
KV 缓存
随上下文长度和同时在跑的请求数增长,长上下文加多并发时可能反超权重
框架开销
推理框架的固定占用加临时缓冲,实际可用显存要在这个基础上再打折
显存构成随什么变估算时怎么处理
权重参数量、量化位宽按目标模型和档位单独算,是预算里最先扣掉的一项
KV 缓存上下文长度、并发数按你实际要支持的对话长度估,不要按模型的最大值估
框架开销框架实现、是否预留缓冲先跑一次空载看基准占用,再手动留一段安全余量
临时缓冲批大小、算子实现小批起步测,放量后再看是否触顶

手算顺序:从参数量倒推显存

标准顺序是正向算:先按量化档位估权重,再按计划支持的上下文和并发估 KV 缓存,最后加框架开销。如果反过来,你有固定的显存预算,就先扣掉后两块,剩下的额度留给权重,再倒推能上多大的参数量。两种算法得到的是同一件事的两面。

  1. 估权重确定目标模型的参数量和打算用的量化档位,按位宽比例估权重占用;不同档位的位宽与占用换算,到站内 硬件名词(/ai-dict/category/hardware) 核对当时的说明
  2. 估 KV 缓存用你实际要支持的上下文长度和并发数来估,不要拿模型支持的最大值当默认值
  3. 加框架开销跑一次空载或最小请求,看框架本身占了多少,再额外留一段安全余量
  4. 回测校准把估算值和实际加载后的占用对比一次,差额记下来,下次估算就有自己的系数了

如果嫌手算麻烦,站内的 部署测算(/models/deploy) 页面有现成的对照口径可以套,但记得它给的也是估算区间,最终仍以你机器上的实测为准。

什么情况下这套估算不适用

这套方法默认模型完整驻留显存、接近单卡独跑。一旦引入下面这些手段,估算的边界就变了——不是算错,而是前提不成立了。

  • 张量分片、CPU offload、显存换页:会把「装不下」变成「能跑但慢」,体验和估算完全不是一回事
  • 上下文远超预期或同时多路请求:KV 缓存可能反超权重,此时上限由并发数而不是参数量决定
  • 框架做了权重共享或量化缓存优化:占用可能比手算低,别拿保守估算当硬结论
  • 已经频繁触发换页:判断标准是延迟抖动,而不是启动时有没有报错,抖动明显就说明越界了
现象说明什么接下来怎么做
能加载但首字很慢可能已经在换页缩短上下文或降档,别继续加并发
短对话正常、长对话崩KV 缓存是瓶颈按实际用到的长度重新估缓存
单请求正常、多请求变慢并发数超了限流或降档,先保稳定再谈吞吐

落到行动:四步确认自己的上限

概念讲完不如自己跑一遍。下面四步是给个人用户设计的验证流程,做完你会得到一张属于自己的对照表,下次换模型直接套,不用再满世界问「能不能跑」。

  1. 记录空载基线开机后先跑一次空载或最小请求,记下框架稳定占用,作为后续预算的底数
  2. 算一遍再对比按目标模型和量化档位算出权重加缓存的总和,和基线数字对比,看还剩多少空间
  3. 从小档位往上试从保守档位开始,每上一档记录首字延迟和持续吞吐,别只看能不能加载成功
  4. 沉淀成对照表把可用档位和对应的质量感受记下来,换模型时先查表再动手,省掉重复试错
能加载不等于能好用,判断上限的最后一关是延迟稳不稳,而不是显存占用有没有爆。
下一步想看不同档位下的实测速度和占用对比,可以去站内的测速页面按自己的配置跑一遍,把数字记下来再回来看估算方法,对得上的部分就可以直接复用。

常见问题

只看参数量能不能判断 4090 跑不跑得动?

不够。参数量决定权重大小,但还受量化档位、上下文长度和并发数影响,同样参数量的模型换个档位结果可能完全不同。建议按「权重 + KV 缓存 + 框架开销」三块一起估,再留出余量,而不是拿参数量当唯一门槛。

量化和显存之间的关系怎么快速估算?

思路是:档位越低,单位参数占的显存越小,权重那块整体下压。但具体到每个档位的位宽、实际占用和对应的质量损失,不同实现差别不小,建议到站内模型库与部署测算页面看当时的对照数据,别背一个固定倍数到处套。

跑长上下文时为什么显存突然不够?

权重是固定的,KV 缓存却会随上下文长度和多路并发一起涨。聊得越久、同时处理的请求越多,这块越可能反超权重。做显存规划时把「打算支持的上下文长度 + 并发数」当成输入条件,而不是只按模型参数量留空间。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。