首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于
智能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必读

每日精选科技资讯,直达你的邮箱