上下文窗口限制的应对
上下文窗口不够用,不是只有换模型一条路。可选手段有四类:减少片段条数(精排后只保留最相关的几条)、压缩片段(抽取与问题相关的句子)、分段生成再汇总(Map-Reduce 或 Refine)、把全文放到可检索的工具里让模型按需索取。设计之前先量化「正确回答需要多少上下文」:统计答案所需片段数的分布,用数据定条数与预算,避免一刀切地按窗口上限把提示词塞满。
基本信息
| 典型现象 | 提示词超长被截断,答案质量下降 |
|---|---|
| 量化方法 | 统计答案所需片段数的 p50 与 p90 |
| 手段一 | 减少片段条数,依赖精排质量 |
| 手段二 | 压缩或摘录片段内容 |
| 手段三 | 分段生成再汇总 |
| 手段四 | 工具化按需检索,模型自行索取 |
| 注意 | 必须预留输出空间 |
典型使用场景
- 长文档问答需要跨章节信息,单次检索装不下
- 多轮对话历史挤占检索片段的窗口空间
- 检索条数调大后效果不升反降,说明中间内容被忽略
- 成本敏感场景需要在窗口占用与调用次数之间取舍
- 模型具备工具调用能力时,改用按需检索替代全量塞入
最小上下文测算
最小上下文测算
统计:正确回答所需片段数的分布(p50 / p90)
→ 用它决定上下文条数与预算,避免一刀切按窗口上限配置
→ 同时记录输出长度分布,为输出预留空间
→ 定期复核:语料与问题分布变化后,这个分布会跟着变应对手段对照
| 手段 | 代价 | 适用情形 |
|---|---|---|
| 减少片段条数 | 可能漏关键信息,需评测保障 | 精排环节可靠时 |
| 压缩或摘录片段 | 压缩环节引入误差风险 | 片段长而问题聚焦 |
| 分段生成再汇总 | 调用次数与延迟增加 | 整篇摘要类任务 |
| 工具化按需检索 | 实现复杂,需要循环控制 | 文档量大且问题发散 |
把「答案所需片段数」纳入评测报表:它直接决定上下文预算与成本,是容量规划的基础数据,比拍脑袋设条数可靠得多。
长上下文里中间位置的信息最容易被忽略:把最相关的片段放在开头或结尾,通常比单纯增加条数有效。