DeepSeek 本地部署怎么估算显存和内存?按参数量、量化与上下文计算预算

按参数量和量化计算DeepSeek权重下限,再把KV缓存、上下文、并发和卸载比例加入显存与内存预算。

估算 DeepSeek 本地部署的显存和内存,先算权重下限,再加 KV cache、运行缓冲、并发槽位和系统余量。只说“7B 需要多少显存”会漏掉量化、上下文和 GPU 卸载比例。下面给出可复算的方法,并用实际日志校正估算,而不是给所有电脑一个固定答案。

第一步:用参数量和位宽算权重下限

理论权重大小可用:

DeepSeek 本地部署怎么估算显存和内存?按参数量、量化与上下文计算预算

权重 GiB ≈ 参数量 × 每参数位数 ÷ 8 ÷ 1024³
参数量 4 bit 理论下限 8 bit 理论下限 16 bit 理论下限
1.5B 约 0.70 GiB 约 1.40 GiB 约 2.79 GiB
7B 约 3.26 GiB 约 6.52 GiB 约 13.04 GiB
14B 约 6.52 GiB 约 13.04 GiB 约 26.08 GiB
32B 约 14.90 GiB 约 29.80 GiB 约 59.60 GiB

这是数学下限,不是安装要求。实际 GGUF 会包含元数据,并可能让部分张量保留更高精度,所以最可靠的权重起点是文件实际大小。DeepSeek 模型卡确认蒸馏系列包含 1.5B、7B、14B、32B 等规格;不要把这些数字与完整 671B DeepSeek-R1 混用。

第二步:把 KV cache 和运行缓冲加回来

KV cache 随层数、KV 维度、上下文长度、缓存精度和并发槽位变化。模型架构不同,不能只用参数量推断。实践中按以下顺序做:

  1. 先用单并发和 2048 上下文启动;
  2. 从 llama.cpp 启动日志记录 model buffer、KV buffer 和 compute buffer;
  3. 把上下文升到 4096,再记录一次差值;
  4. 需要并发时,再逐个增加 slot,不要一次开到目标上限。
./build/bin/llama-server \
  -m ~/models/deepseek.gguf \
  -c 2048 -np 1 \
  --host 127.0.0.1 --port 8080

日志中的模型、KV 和计算缓冲是当前组合的证据,比网上的固定表更接近你的真实占用。

第三步:区分全显存、混合卸载和纯内存

  • 全显存:权重、KV cache 和缓冲尽量放入 GPU,显存必须留出驱动和桌面占用。
  • 混合卸载:部分层在 GPU,其余在 CPU/内存;能降低显存门槛,但速度受总线和 CPU 影响。
  • 纯 CPU:主要占系统内存,不需要独显显存;速度取决于 CPU、内存带宽、线程和模型。

使用 llama.cpp 时,从较低的 GPU layers 开始逐步增加,并观察日志:

./build/bin/llama-bench -m ~/models/deepseek.gguf -ngl 0  -p 128 -n 128
./build/bin/llama-bench -m ~/models/deepseek.gguf -ngl 20 -p 128 -n 128
./build/bin/llama-bench -m ~/models/deepseek.gguf -ngl 99 -p 128 -n 128

某一步内存不足,就退回上一个可重复运行的层数。不同模型的层数不同,99 表示尝试尽量卸载,不代表模型一定有 99 层。

4GB、6GB、8GB 显存如何做决定

不要先根据显存数字挑模型名称,先用下面的预算表:

  1. 记录空闲显存,而不是显卡标称总量;
  2. 用 GGUF 文件大小作为权重起点;
  3. 单并发、2048 上下文启动并记录 KV/compute buffer;
  4. 保留操作系统、驱动和峰值余量;
  5. 若放不下,依次降低卸载层数、上下文、模型规格或量化文件。

例如 7B 的 4 bit 权重理论下限约 3.26 GiB,但这不表示 4GB 显存就能稳定全量装下:实际文件、KV cache、缓冲和已有桌面占用都会继续消耗显存。6GB、8GB 也必须按同一流程实测。

用系统工具校正估算

# Linux 系统内存
free -h

# NVIDIA 显存和进程
nvidia-smi --query-compute-apps=pid,used_memory --format=csv

# 固定输入做一次 API 验收
curl http://127.0.0.1:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"messages":[{"role":"user","content":"只回答:预算测试通过"}],"temperature":0,"max_tokens":16}'

至少连续请求三次,确认没有第二次请求才出现的内存峰值。随后再增加真实业务长度。若发生 OOM,记录模型哈希、上下文、并发、卸载层数和错误日志,才能知道该改哪一个变量。

资料来源

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/32146.html

赞 (0)
AI小管家的头像AI小管家
豆包 AI 怎么读论文?上传 PDF、分段提问并核对原文页码
上一篇 1小时前
两张 RTX 4060 怎么部署 DeepSeek?先测单卡 7B,再观察跨卡 14B
下一篇 1小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部