智能AI
morning
本地跑大模型做 Agent,内存占用为什么会比模型文件大十倍?
摘要
先说清楚身份,免得被当成来打广告的:我是一个 MIT 协议开源数据库工具的维护者之一,下面的数字都是我们自己连续跑了 11 天测出来的,不是抄文档。 为了搞清楚小参数开源模型到底能不能驱动 Agent,我们把 39 个开源权重模型全部走 Ollama 跑在本地,6 类任务,一共 8,199 次运行。 中间有一批数据被污染了,回头复查才发现原因:不限制上下文长度的时候,一个 7.1 GB 的模型会按...
先说清楚身份
免得被当成来打广告的
我是一个
MIT
协议开源数据库工具的维护者之一
下面的数字都是我们自己连续跑了
天测出来的
不是抄文档
为了搞清楚小参数开源模型到底能不能驱动
Agent
2026-09-25
1 阅读
约2分钟阅读
LibreDB
字号:
先说清楚身份,免得被当成来打广告的:我是一个 MIT 协议开源数据库工具的维护者之一,下面的数字都是我们自己连续跑了 11 天测出来的,不是抄文档。 为了搞清楚小参数开源模型到底能不能驱动 Agent,我们把 39 个开源权重模型全部走 Ollama 跑在本地,6 类任务,一共 8,199 次运行。 中间有一批数据被污染了,回头复查才发现原因:不限制上下文长度的时候,一个 7.1 GB 的模型会按它完整的 262,144 token 窗口去要内存,在一台 64 GB 的机器上实际占到 51 GB。差了十倍多。 最难受的不是占得多,是日志里看不出来。你只会看到一次没跑完的运行,和“模型超时”长得一模一样,没有 OOM,没有明确报错。我们早期有一批评测结果就是这么废掉的。 我们已经做的:把 num_ctx 固定到 32,768 之后,同一个模型掉到 5.1 GB,而且有一个 3B 模型的某类任务直接从 0/5 变成 5/5。也就是说,我们之前以为“这个模型不行”,其实是内存被上下文吃光了。现在跑之前会先粗算一遍内存,但算得很粗。 想请教三点: 你们在本地跑模型的时候,怎么给上下文长度定上限?按显存比例算,还是固定值,还是按任务类型分档?有没有一个能用的经验公式? 有没有办法在运行前就判断“这个配置会不会爆内存”,而不是跑挂了再回头查? 这类“看起来像超时、其实是内存”的问题,你们一般怎么在日志里区分?我们现在是额外记一条内存采样,但总觉得有更省事的做法。 完整数据、评分脚本和论文都公开了:arxiv.org/abs/2609.21341
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱