AB
AiBoss站
教程

上下文窗口与回答准确率:给 AI 投喂资料时的判断方法

教程

上下文窗口与回答准确率:给 AI 投喂资料时的判断方法

上下文窗口大,不等于回答就准。这篇教程把「资料放得下」和「资料用得上」拆成两件事,用桌面的比喻和一组可复现的对比步骤,讲清投喂资料前该问哪些问题、哪些内容必须留、哪些可以删,以及怎样用同一道题验证答案与依据是否对得上。

很多人有过这样的经历:把一整份资料丢给 AI,以为它读得完就能答得对,结果它偏偏漏掉了最关键的那个条件。问题往往不在模型「读不懂」,而在于我们把「资料放得下」当成了「资料用得上」。这篇教程讨论的就是这两件事的区别,以及在实际投喂资料时该怎么判断。内容不涉及编程,适合日常需要用 AI 处理文档、规章、合同、说明书、内部手册的人阅读。

准备工作

这篇教程不需要安装任何软件,也不需要写代码。需要准备的只有三样东西。

  • 一份可以公开使用或自己虚构的资料。不要用含个人信息、商业机密或未公开的内部文件做练习。资料最好包含「一般规则」和「例外条款」两部分,这样才看得出差别。
  • 一个可以调整输入内容的 AI 对话工具。用哪个都行,关键是同一个工具、同一套设置下做对比,中途不要换模型。
  • 一张纸或一个表格,用来记录每次提问的输入、输出和判断结果。凭记忆比较是不可靠的。

另外要提前明确一点:不同模型、不同服务对输入长度的上限、计费方式和计数方法都不一样,这些属于容易变动的信息,请以所用服务官网的当前说明为准。本文不会给出任何具体的长度数字或价格。

操作步骤

第一步:把「上下文」和「上下文窗口」分开理解

上下文指的是 AI 在生成这次回答时能够参照的全部信息。它不只是你敲进去的那句问题,还包括你给的指令、之前的对话记录、你附上的资料,以及工具检索回来的结果。

上下文窗口则是容纳这些信息的容量范围。可以把它想成一张工作台:台面越宽,能同时摊开的资料越多。但台面宽并不代表你能一眼看出两份资料互相矛盾,也不代表你能准确找到需要的那一句话。这个比喻想说明的只是「能放多少」,不是说 AI 的阅读方式和人的阅读方式一样。

容量的计量单位通常叫 token,是把文本切分后得到的处理单位,和字数不是一回事。具体怎么数、上限是多少,同样要看所用模型的说明。

把几个容易混淆的词摆在一起看会更清楚:

说法它表示什么它本身说明不了什么
上下文这次回答所参照的信息信息是否正确、是否充分
上下文窗口能容纳信息的容量范围依据能否被准确使用
回答质量是否满足你提出的条件单看容量无法推断

第二步:把「放进去了」和「用上了」当成两件事

资料没有超出上限,只能说明它被收进去了,不能证明关键信息被正确取了出来。有一项 2023 年的研究(通常被称为「Lost in the Middle」)在多个文档的问答任务中发现,把依据放在输入的不同位置,表现会不一样:在被考察的那些模型上,依据位于输入中段时,表现有下降的倾向。

需要强调的是,这是当时那些模型和那套实验条件下的结果,不能直接推广成「现在所有模型都会以同样的比例失败」。但有一条做法是可以带走的:不要只看容量数字,要去验证依据到底有没有被用上。

于是验证可以拆成三层,而且必须分开做:

  1. 资料是否在容量范围之内。
  2. 回答是否取出了真正需要的依据。
  3. 回答是否把条件和例外都答对了。

第一层过了,不代表第二层过了;第二层过了,也不代表第三层过了。

第三步:加资料之前,先问「缺的是什么」

设想一个虚构的图书室场景。你问:「这里的书可以借多少天?」手边有两份材料,一份写着「普通借阅为 14 天」,另一份写着「参考资料仅限馆内阅览」。

这时候如果你再补上图书室的沿革介绍和活动记录,对判断参考资料的借阅条件没有任何帮助。反过来,如果你手上只有那份普通借阅的说明,那么补上例外条款就是有意义的。

按这个思路,可以把候选资料分成几类:

想加进去的信息在回答里扮演的角色怎么处理
普通借阅期限构成基本答案放进去
参考资料的借阅限制会改变答案的例外一起放进去
多年前的旧借阅规定可能与现行规则混淆与当前问题无关时去掉
图书室的历史沿革与借阅条件关系很弱这次去掉

这里的天数和场景都是为说明问题虚构的,不是任何真实机构的规则。

要注意的是,把资料变短本身不该成为目标。一味求短,很容易把例外条款一起削掉。判断标准应该是:这条信息会不会改变这个问题的答案。会改变的留下,不会改变的再考虑删。

第四步:按问题类型决定给多宽的范围

宽范围并非总是坏事。当你要比较整本书的结构,或者想在多份文档之间找共同点时,同时给出较大的范围是有意义的。

但如果只是确认某一个使用条件,就可以只给相关段落加上它的例外条款。用检索来挑选资料再交给模型的做法(通常称为 RAG),支撑的正是这种选择方式。不过要留意,检索一旦漏掉了例外条款,回答所需的信息就缺了一块。

可以这样区分:

  • 范围窄的问题:只给相关段落和与之相关的条件。
  • 需要整体比较的问题:给多份资料以及它们之间的对应关系。

先确定这个问题需要多大范围,再据此调整资料量。

第五步:做摘要时保留回到原文的线索

把长资料压缩成摘要,确实能让台面清爽一些。但压缩过程中,「不过」「不适用」「仅在这种情况下」这类限定语最容易掉。一旦掉了,答案就可能从「通常可以」变成「一律可以」。

所以摘要里要留下能回到原文的线索,比如文档名称、章节标题、条款编号。当回答涉及重要条件时,要保证还能顺着这些线索回去核对原句。

第六步:用同一道题做前后对比

下面这套流程是用来自己动手验证的,不是任何机构发布的评测结果。用公开资料或自己虚构的资料都可以做。

  1. 先由人从资料里写出正确答案和依据所在的位置。
  2. 准备两个版本:一个是「只给相关段落和例外」,另一个是「把周边资料也一起给」。
  3. 用同一个模型、同一套设置,在不继承之前对话记录的状态下,问同一个问题。
  4. 比较两版的答案、例外条件、依据位置是否都对得上。
  5. 再加一道资料里本来就没有答案的问题,看它会不会硬凑一个答案出来。
  6. 不要凭一次成功就下结论,换几种问法、换一下依据所在的位置再试。

如果发现资料加多之后,例外被漏掉的次数反而变多,那就是该重新考虑资料筛选和分段方式的信号。

一个完整示例

下面用一个虚构的图书室场景,把整套流程走一遍。所有内容均为说明用,不对应任何真实机构。

第一步,准备资料。假设手上有三份材料:

  • 材料 A:普通图书的借阅期限为 14 天。
  • 材料 B:参考资料仅限馆内阅览,不可外借。
  • 材料 C:五年前的一份旧通知,写着普通图书借阅期限为 7 天。

第二步,先写出正确答案和依据。针对问题「这里的书可以借多少天」,正确答案应当是:普通图书 14 天,参考资料不能外借。依据分别是材料 A 和材料 B。材料 C 是过期信息,不应作为依据。

第三步,构造两个输入版本。

版本一(窄)
资料:
普通图书的借阅期限为 14 天。
参考资料仅限馆内阅览,不可外借。

问题:
这里的书可以借多少天?

版本二(宽)
资料:
本图书室成立于若干年前,最初只有一间阅览室。
普通图书的借阅期限为 14 天。
参考资料仅限馆内阅览,不可外借。
五年前的旧通知:普通图书借阅期限为 7 天。
历年活动记录:共举办读书会若干场。

问题:
这里的书可以借多少天?

第四步,在相同条件下分别提问。两次都不要带上之前的对话记录,模型和设置保持一致。

第五步,逐项核对。检查三件事:答案里有没有出现 14 天;有没有说明参考资料不能外借;有没有误把 7 天当成现行规则。三个都对了,才算这一轮通过。

第六步,加一道没有答案的问题。比如问「周末开放到几点」,而资料里根本没写开放时间。这时正确的表现是说明资料中没有相关信息,而不是编一个时间出来。

第七步,换位置再试一次。把材料 A 和材料 B 的位置对调,或者把它们夹在更多无关内容中间,再问一遍同样的问题。如果表现出现波动,说明依据的位置确实会影响结果,那么在实际使用时,把关键条款放在更显眼的位置、或者干脆只给必要段落,都是值得尝试的做法。

注意事项

下面这些是实际使用中容易踩的坑,以及对应的检查动作。

常见做法该检查什么
把看起来相关的资料全部丢进去这次的问题里,有没有根本用不上的资料
为了变短而删掉例外条款会改变结论的条件是否还在
沿用很久以前的对话指令那些指令和当前目的是否冲突
看到有出处名称就相信出处里的内容是否真的支撑这个答案

还有几点需要单独说明。

  • 不要把「越短越好」或「越长越好」当成固定规则。同一道题用不同长度试一次,比任何笼统的说法都可靠。
  • 关于输入长度上限、计费方式、token 的计数方法,各家服务差异很大且会调整,请以所用服务官网的当前信息为准。
  • 前面提到的那项研究结论有明确的适用条件,不能读成「所有模型都会以同样方式失败」。它提供的是一种验证思路,不是一个固定的失败比例。
  • 做对比测试时,务必保证模型、设置、是否继承历史对话这几个变量一致,否则比出来的差异说明不了问题。
  • 涉及重要决策的场景,回答必须能回到原文核对。摘要只能当作索引,不能当作最终依据。

最后可以这样收束:上下文窗口是 AI 工作台能摊开多少资料的容量范围;资料在范围内,和依据被正确使用,是两件要分开验证的事;挑选资料时,优先保留会改变答案的信息和例外;整体比较用宽范围,单项确认用窄范围;摘要要留回原文的线索,答案要和依据对照着看。找一道你平时常问的问题,在加资料前后各问一次,比较答案和依据是否对得上,就是最直接的起点。