基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
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 04:39

本地大模型内存预算如何计算

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

文章将推理内存拆分为权重、KV 缓存与运行开销,并建议按可用内存的八成估算容量。它列出不同量化格式的每参数字节数,解释量化元数据开销,并给出模型容量计算示例。

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

AI 深度解读

本地跑 LLM,下载前该算的不是模型文件有多大,而是运行时一共要占多少内存。作者给出的办法是:把权重、KV cache 和运行开销加起来,再对照机器实际能分给模型的内存,给系统和其他应用留出余量。

这套估算与 osFoundry 在 16GB M3 MacBook 上显示的数字做过核对。它适合用来筛选模型,也能解释一个常见疑问:同一个模型,为什么短对话能跑,塞进长代码后就吃不消?

模型文件装得下,为什么运行时还会超?

作者的计算入口只有两行:

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

它解决的是运行内存预算问题。要留意第二行的 usable memory:比较对象是实际可用内存,不能直接拿整机标称容量代入。

第一项是权重,也就是模型参数。体积取决于参数量和量化格式。Q4_K_M 不能直接按每个参数 0.5 字节计算,因为 K-quants 还会为小块权重保存缩放因子。作者采用每个参数约 0.56 字节,即约 4.5 bit。

因此,14B 模型的权重约为:

14 × 10⁹ × 0.56 = 7.84 × 10⁹ 字节 ≈ 7.3 GiB

量化格式不认识时,作者建议按 FP16 做保守估算,避免低估占用。

第二项是 KV cache。模型生成内容时,会保存上下文中各个 token 的 key 和 value,减少重复计算。作者给出的公式是:

2 × layers × kv_heads × head_dim × context_tokens × bytes_per_element

它用来估算上下文缓存。要盯住 context_tokens:其他条件相同时,上下文扩大几倍,缓存也扩大几倍。

Qwen2.5 14B 有 48 层、8 个 KV heads、128 的 head dimension,使用分组查询注意力(grouped-query attention)。缓存采用 FP16 时,每个元素占 2 字节:

  • 4K 上下文,即 4096 token,缓存为 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 上下文。

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

16GB 内存,到底能选多大的模型?

作者先区分了两种硬件条件:独立显卡按显存预算,12 GB 显卡就先按 12 GB 算;Apple Silicon 使用统一内存,但 GPU 和模型不能独占全部容量,还要给系统留空间。

文中把 Apple Silicon 总内存的 75% 当作可用预算,因此 16GB Mac 按约 12 GB 计算,再分三档:

  • 占可用预算不超过 80%,归为能放下。
  • 占用在 80%~100%,归为紧张,建议先关闭其他应用。
  • 超过 100%,作者判断会出现磁盘换页,速度可能失去实用价值。

按这个口径,Qwen2.5 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,明显超出。

将相同内存估算应用到不同模型

容量之外,作者还用内存带宽估算生成速度:逐 token 生成时,需要反复读取权重,因此用带宽除以模型大小,可以得到一个粗略上限。

基础款 M3 的带宽约为 100 GB/s。文中据此估算,8.4 GB 的模型约为 12 token/s,4.9 GB 的 8B 模型约为 20 token/s,并明确表示实际速度会更低。

同一提示词下 14B 与 8B 模型的生成对比

我的判断

我赞成先算预算,再下载模型。尤其是把 KV cache 单独列出来,对需要塞入源码、错误日志和多轮对话的 AI 编程场景很有用。参数量相同,不代表运行占用固定。

但这些数字应当视为筛选依据。作者核对的是应用显示值,没有提供完整的峰值内存测量、测试过程或跨硬件对照。75% 可用预算、80% 安全线,以及「权重的 10% 加 200 MB」,都是经验口径。

单位也要留神:原文混用了 GB、GiB、MB 和 MiB,适合估算,不宜拿小数点后的差别判断一定能否运行。

独显部分讨论的也是显存预算。把「超过显存」直接理解为「完全无法运行」过于绝对,原文没有展开其他加载方式。

速度估算还有一个口径问题:前面强调读取的是权重,计算时却用了包含缓存和开销的 8.4 GB。再加上作者没有给出系统性的速度对照,「模型之间的速度比例相当准确」仍属于经验判断,不能当作性能承诺。

能拿来做什么

  • 给本地 AI 编程选模型时,同时记录模型名称、量化格式和上下文长度,别只比较 8B、14B 这些参数量。
  • 把源码和日志放进上下文前,先重算 KV cache。文中的 14B 示例从 4K 增至 32K,缓存就从 768 MiB 增到 6 GiB。
  • 在 16GB M3 Mac 上,可以把文中的 Q4_K_M 8.4 GB 当作初筛参照,再用自己的编辑器、浏览器和实际提示词验证剩余空间。
  • 比较 8B 与 14B 时,用带宽估算判断速度的大致量级,再用相同提示词测试生成速度与答案质量,决定是否值得多占内存。
Original source

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

阅读原文
上一篇
智能体开发十七天后才发现未建 Git 仓库
下一篇
开源新闻雷达:按个人标准筛选技术资讯

资讯速览

dev.to · AI · 2026-11-06 04:39

AI 评分 8.0 / 10

相关标签

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

继续阅读

  • AgentCore 一次调用获取带来源的网页答案
  • 智能体开发十七天后才发现未建 Git 仓库
  • 开源新闻雷达:按个人标准筛选技术资讯
  • OpenAI 如何改造 Git 应对编程 Agent 并发
  • GPT-6 Cyber 发布,覆盖漏洞发现与修补