基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
  • 知识卡片碎片时间过考点
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
    • AI 热点每日 AI 资讯与动向
AI 工作台
简历
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
8.0
热点
AI SCORE
技术实践2026-11-06 06:24

本地模型内存预算要算清三笔账

dev.to · AI#本地模型#内存估算#量化
Editor brief · 编辑速览

文章将本地推理内存拆为模型权重、KV 缓存与运行开销,并建议保留容量余量。它列出不同量化格式的每参数字节估算,解释量化元数据为何会让实际占用高于标称位宽。

文章思维导图
Knowledge map
拖拽缩放
AI deep read

AI 深度解读

本地 LLM 能不能跑,不能只看模型文件大小,也不能只看电脑装了多少内存。作者用 osFoundry 的模型浏览器估算结果,拆出了三个账本:模型权重、上下文缓存、运行开销,并用一台 16 GB 内存的 MacBook M3 核对应用显示值。

这套方法的价值,是让你下载前就能判断:模型能否装下,长上下文会不会挤爆内存,生成速度大概在哪个量级。但其中的安全系数和速度估算,都需要带着前提使用。

模型文件之外,还有两笔内存账

作者给出的判断公式很直接:

need = weights + KV cache + overhead
fits if need <= 0.8 × usable memory

要看第二行:比较对象是「可用内存」,还要再留出 20% 余量,不能直接拿机器标称容量来比。

第一笔是权重,由参数量乘以每个权重占用的字节数得到。量化会降低这个数,但 Q4_K_M 不能直接按每个参数 0.5 字节计算。K-quants 还要给每个小块保存缩放信息,平均约为 4.5 bits,即 0.56 字节。

因此,14B 模型采用 Q4_K_M 时:

14 × 10⁹ × 0.56 = 7.84 × 10⁹ 字节,约为 7.3 GiB。

作者建议,遇到不认识的量化名称,就按 FP16 保守估算。这个办法适合初筛,但不能把它理解成对所有未知格式的绝对保证。

第二笔是 KV cache。模型生成时,会保留上下文中每个 token 的键和值,避免后续重复计算。其大小按下面的公式估算:

2 × layers × kv_heads × head_dim × context_tokens × bytes_per_element

最需要盯住的是 context_tokens,它与缓存大小成正比。

Qwen2.5 14B 有 48 层,采用分组查询注意力(grouped-query attention),KV 头数为 8,每个头的维度为 128。使用 FP16 缓存时,4K 上下文的计算是:

2 × 48 × 8 × 128 × 4096 × 2 字节 = 768 MiB。

上下文增加到 32K,缓存就变成 6 GiB。不注明上下文长度的内存估算,很难拿来选模型。

第三笔是运行开销。llama.cpp 需要计算缓冲区和工作空间,作者粗略按「权重的 10% 加约 200 MB」预留,14B 模型约为 0.9 GB。三项相加,Q4_K_M 的 14B 模型落在约 8 至 9 GB,应用显示为 8.4 GB,截图采用的是 4K 上下文。

Qwen2.5 14B 在 16 GB Mac 上的不同量化内存估算

16 GB 内存,为什么不能按 16 GB 来选

不同硬件的上限不同。

独立 GPU 若要完整承载模型,应先看显存(VRAM)。12 GB 显存不会因为系统内存更多,就自动变成更大的显存池。

Apple Silicon 使用统一内存,但系统需要空间,GPU 也不能把全部内存拿走。作者用总内存的 75% 作为工作估值,因此 16 GB 机器按约 12 GB 可用内存计算。

接下来再分三档:占可用内存不超过 80%,留有余量;80% 至 100%,比较勉强,建议关闭其他应用;超过 100%,作者认为会进入磁盘交换(swap),速度难以接受。

在这台机器上,14B 模型的估算结果是:

量化格式 内存需求 作者的判断
Q4_K_M 8.4 GB,约 70% 可以装下
Q5_K_M 10.4 GB,约 87% 比较勉强
Q6_K 12.3 GB 超出预算
Q8_0 14.9 GB 超出预算

同样采用 Q4_K_M 时,20B 模型约需 11.9 GB,已经贴近上限;27B 约需 15.9 GB,超出预算。这里的界线属于这台机器和这套估算条件,不能直接推广到所有 16 GB 电脑。

同一台机器上多个模型的内存需求估算

装得下以后,速度还要看内存带宽

作者的推导是:生成每个 token,都要读取一遍模型权重,因此可以用「内存带宽除以模型大小」估算生成速度上限。

基础款 M3 的内存带宽约为 100 GB/s。按文中的计算,8.4 GB 模型约为 12 tokens/s,4.9 GB 的 8B 模型约为 20 tokens/s。真实速度会更低,但作者认为模型之间的速度比例比较符合这个估计。

14B 与 8B 模型处理同一提示词的对比

这给选型增加了一个维度:大模型即使勉强装下,也可能让每轮交互等待更久。用于日常编程时,模型能力与响应速度需要一起衡量。

我的判断

我认同把权重、KV cache 和运行开销分开计算。尤其是上下文这一项,能解释为什么同一个模型,短对话正常,塞入较长代码后却可能吃紧。

但原文的验证主要是核对 osFoundry 在一台 MacBook M3 上的显示结果,没有给出完整的实测峰值内存、测试配置和多机器对照。75%、80%,以及「10% 加 200 MB」都应当视为经验预算。

另外,原文混用了 GB 与 GiB,手算时应统一单位。速度部分也有一处近似:推导讲的是读取权重,计算却用了包含缓存和开销的 8.4 GB 总需求,不能把 12 tokens/s 当成严格上限。

「超出预算就会 swap」也不是所有后端的统一行为。原文没有展开加载失败、部分卸载等路径。与只看参数量相比,这套方法更有用;与实际运行测量相比,它仍只是下载前的筛选工具。

能拿来做什么

  • 下载本地模型前,按目标量化格式和实际上下文长度计算三项需求,并先确认比较的是显存还是统一内存。
  • 给本地 AI 编程工具选择模型时,按准备输入的代码量估算 KV cache,不要直接照搬截图中的 4K 条件。
  • 在同一台机器上比较 8B 与 14B 时,同时记录回答质量、生成速度和峰值内存,用实际交互体验决定是否接受更大的模型。
Original source

本文由 AI 通读原文后重新编写,观点部分为站内判断,细节以原文为准,来源 dev.to · AI,原文版权归原作者所有。

阅读原文
上一篇
谷歌视频模型升级:15 秒生成与低成本编辑
下一篇
克隆仓库后先审查 Claude 技能权限

资讯速览

dev.to · AI · 2026-11-06 06:24

AI 评分 8.0 / 10

相关标签

#本地模型#内存估算#量化

继续阅读

  • 流式回答断连后,别让模型继续计费
  • 谷歌视频模型升级:15 秒生成与低成本编辑
  • 克隆仓库后先审查 Claude 技能权限
  • Claude Code 被指向网站发送用户邮箱
  • 智能体记忆需要区分事实与获知时间