本地模型 CPU Offload 常见问题:显存不够时怎么拆
显存不够时,把部分层放到 CPU/内存能跑起来,但通常更慢。下面用 FAQ 建立正确预期。
什么时候该考虑 offload?
模型权重无法完整放入 GPU,但仍想本机跑通,且能接受速度下降。
offload 后还算本地私有吗?
权重与请求仍在你机器上;隐私取决于进程与网络策略。offload 本身不等于自动更安全。
为什么体感极慢?
CPU 与内存带宽成为瓶颈。优先减少 offload 比例、降低上下文、选量化版。
排错顺序
- 是否可换更小量化
- 上下文是否过长
- 是否有其它进程占显存
- 再调 offload 比例
和量化、上下文的取舍
多数时候,先换更合适的量化或更短上下文,比猛上 offload 更划算。offload 适合「必须加载某尺寸模型做偶发任务」;若你要持续对话或长文档,优先评估更小模型是否已够用。
参数怎么理解(概念)
不同框架名称不同,常见思路是指定多少层驻留 GPU。从「刚好能加载」开始,再逐步提高 GPU 驻留,观察是否稳定与是否可接受延迟。
还要看什么
- 内存是否也被打满(offload 到内存也会挤占系统)
- 是否同时开了太多会话
- 磁盘是否在频繁换页(体感会极差)
不要用未经实测的「官方速度倍数」对外承诺;以你机器上的体感与日志为准。
什么时候该放弃 offload
若延迟高到无法交互、或系统内存被挤爆导致其它应用卡死,说明当前机子不适合硬跑该尺寸。此时更务实的路径是:更小模型、云端 API(注意数据策略)、或升级硬件。Offload 是权宜,不是性能优化银弹。
记录你的可复现配置:模型文件名、量化、上下文、框架版本、大致 token/s 体感。方便一个月后比较,而不是凭记忆说「好像更慢了」。
小结
本机跑模型的乐趣在于可控;代价是你要自己当运维。Offload、量化、上下文长度是一组旋钮,按任务调,而不是追求单一参数炫技。把稳定可复现放在第一位,速度放在第二位。
笔记本与台式机的散热差异很大;同一套 offload 配置在不同机器上的体感可能完全不同,别跨设备硬套经验。
补充实践
若你用图形界面封装本地模型,确认界面没有在后台重复加载第二份权重,否则显存与内存会莫名翻倍。
最后提醒:先保证能稳定加载与完成一次推理,再谈优化。把每次失败的报错原文存档,比反复盲调参数更快定位。