Skip to content
懒人吧
Go back

大模型上下文窗口超限:从 32K 到 48K 的改造实录

编辑页面

大模型上下文窗口超限:从 32K 到 48K 的改造实录

问题

模型运行一段时间后突然报错:

Error: Model context length exceeded.
Reason: request (35550 tokens) exceeds the available context size (32768 tokens)

35550 个 token 超过了 32768 的上下文窗口限制。

原因分析

根本原因

影响范围

解决方案

第一步:扩大模型上下文窗口

--ctx-size 从 32768 改为 49152(48K):

--ctx-size 49152

为什么是 48K 不是 64K?

第二步:调整 Agent 端配置对齐

参数旧值新值说明
max_input_length13107249152与模型 48K 对齐
compact_threshold_ratio0.80.7更早触发压缩
reserve_threshold_ratio0.10.3压缩后保留更多
history_max_length100005000减少历史堆积
pruning_old_msg_max_bytes30005000保留更多旧消息
pruning_recent_n23多保留几轮最新消息

第三步:同步重启

修改完模型端和 Agent 端配置后,必须两端一起重启才能生效。

经验总结

  1. 模型端和 Agent 端上下文必须对齐:不一致会导致”我以为你能收,实际你收不了”的问题
  2. 48K 是 20GB 显存的极限:35B Q3_K + 48K ≈ 19.2GB,留了 800MB 余量
  3. 压缩策略要精细调优
    • 宽松的保留比例(30%)防止关键信息丢失
    • 早一点触发压缩(70%)避免堆积到超限
  4. 建议监控 token 使用量,接近阈值时主动触发压缩

编辑页面
Share this post on:

Previous Post
反直觉真相:35B A3B 模型为什么比 12B Dense 模型跑得还快?
Next Post
多 Agent 系统实战:Agent 找回与配置恢复