人人都能看懂的实验报告

AI 助手为什么会答不上来?
—— 一次「找资料」实验的完整复盘

我们的 AI 助手回答问题前,会先去一个有 1120 份资料 的库里翻找参考。 这次实验用 55 个真实问题 做测试,结果发现:能不能答对,很大程度取决于「对的资料有没有被翻出来」。 下面这个实验台的数据全部来自真实测试,你可以亲手操作,复现每一个结论。

1
翻资料
两种搜索方法各自翻库,各出一份候选名单
2
并名单
把两份名单按名次合成一份,取最前面的几条
3
再作答
对的资料进了名单,AI 就能答;被挤掉就答不上
认识一下

库里两位「搜索员」,脾气完全不同

同一个资料库,两种翻法。它们各自擅长的题不一样——这正是整场实验的出发点。

意

懂意思的搜索

技术名:dense / 语义检索

把你的问题和资料都转成「意思」,按意思相近来找。哪怕资料里一个相同的字都没有,只要讲的是一回事,它也能翻出来。

问法随意也能找到(“有没有不联网也能用的语音识别”这类大白话)
遇到没见过的专有名词(比如冷门软件名)容易抓瞎——它不认识这个词,就找不到含这个词的资料
字

认字的搜索

技术名:BM25 / 关键词检索

完全按字面来:你打了哪些词,就去找哪些词出现得多的资料。一个专有名词只要库里出现过,它一定能揪出来。

专有名词一抓一个准(软件名、型号名)
问法一泛就乱来——会把“字面像、意思不像”的资料大量拉进来,反而挤掉真正有用的
动手实验

亲手试试:换一个问题,看名单怎么变

先选一个问题,再试下面这些开关。带 ★ 黄框的资料 就是「正确答案所在的资料」—— 盯着它看就够了:它进了最右边的名单,AI 就能答对;被挤出去,AI 就会答「资料里没提到」。

机器人怎么决定「要不要请认字的同事帮忙」?三步判定,实时演示
1.00 往右拖 = 更听认字的搜索的。只在「关掉自动求助、手动开两路」时生效(自动求助触发时会自动用固定值 1.5)。经验值:低于 0.9 时认字名单的第一名根本挤不进前 8,调了白调
8 最后发给 AI 的参考条数。多了更全,但也掺进更多没用的

懂意思的搜索找到的

认字的搜索找到的

合并后的名单(取前 8 条)

正确答案排第几 · 只用懂意思的搜索
正确答案排第几 · 只用认字的搜索
正确答案排第几 · 当前合并名单
真实成绩单

四种用法各跑了 55 题,结果差别很大

下面的结果不是模拟,是真实跑出来的答案状态,只有两种:「答上了」和「没答上」(AI 回复“参考资料中未提到”)。 绿色卡片 = 你在实验台里当前的操作最接近哪种用法。

调参过程

「认字的话语权」这个数,是怎么试出来的

好消息是:这一步完全不花钱。只看检索结果、不需要 AI 真的去回答,所以秒级出结果。 我们只看两个信号:专有名词被捞回来几条(越多越好)、和懂意思的名单重合几条(重合越多越安全,说明没引入太多噪声)。

试错路线:先猜、再扫、后验证

最早试的是「全局无差别调权重」——失败。但它暴露了一个反方向信号:把话语权压向认字一侧(1.5)时, 专有名词的捞回数从 1 条涨到 3 条。于是围绕 1.5 两侧扫描,得到下表:

认字话语权SenseVoice 题 捞回Pyannote 题 捞回量化题 与懂意思名单重合判读
1.53 条3 条3 / 8专有名词场景最好 → 最终选择(只在自动求助触发时生效)
1.01 条1 条4 / 8只救回 1 条,不够
0.70 条1 条4 / 8SenseVoice 题开始失守
0.50 条1 条4 / 8同上
0.20 条1 条5 / 8认字搜索已帮不上忙(灰行 = 数学上就没用,留作反证)

往大于 1.5 的方向也补扫了一遍:捞回数全部停在原地不再涨(SenseVoice / Pyannote 停在 3 条,量化题重合停在 3/8), 拖到 3.0 时另一道题的成绩反而开始掉。也就是说 1.5 是「够用的最小偏置」——再高没有收益、只有风险,扫描可以收工了。 最后用 55 题让 AI 真实作答验证:确认修好 3 道「零回答」的题(见上方成绩单)。

① 没有全场景通吃的旋钮——专有名词的题要偏认字,泛化的题怕认字太吵,全局调权重两头不讨好。
② 话语权低于 0.9 就是死区——认字名单的第一名根本挤不进前 8(原因见实验台滑杆旁的提示),上表灰行就是反证。
③ 有效区间只剩两档:1.0(平权)和 1.5(偏认字)——所以最终方案做成开关而不是旋钮:平时只用懂意思的搜索,自动求助触发时才把话语权切到 1.5。

三句话总结这次实验

  1. AI 答不上来,多半不是「不会答」,而是「没找到资料」——尤其是不认识的专有名词。
  2. 两种搜索互补,但不能永远一起开:一起开虽然多了 3 题答对,却有 2 题明确变差;只在需要时请认字的搜索帮忙,才是零回退的最优解。
  3. 最终方案是一个开关,不是一根滑杆:平时纯语义检索;一旦「问题含专有名词 + 语义没找到」同时成立,才自动补一手字面搜索(话语权固定 1.5,不受滑杆影响)。55 题实测:38 题答对、零回退——比纯语义的 35 题多 3 题(其中 1 题的修复含随机性成分,详见成绩单)。
名词解释(本页出现的说法 ↔ 技术名词对照)
懂意思的搜索
即「语义检索 / dense」:问题和资料都编码成向量、按语义相似度查找,没出现相同字词也能命中。
认字的搜索
即「BM25 / 关键词检索」:按关键词出现频率打分,专有名词准,但容易引入字面像、意思不像的噪声。
合并名单
即「RRF 倒数排名融合」:不看原始分数、只看各自名次(某路第 n 名得 权重÷(60+n)),两路相加后重排。
名单取几条 / 前 N 条
即「top-K」:融合后取前 K 条作为参考资料发给 AI。K 越大越全,噪声也越多。
认字的话语权
即「λ」:认字搜索相对语义搜索的权重,1.0 表示平权,越大越偏字面。自动求助触发时会固定用 1.5;旁边的滑杆只在「手动全开」时生效。
自动求助
即「条件触发 / auto」:仅当「问题含专有名词」且「语义搜索前 8 条没找到」时才启用字面搜索,其余时候保持纯语义。
正确答案(★)
即「金标准」:标题或正文含该题关键词的资料片段,是答对这道题所必需的参考。
答上了 / 没答上
实测答案状态:「实质回答」与「拒答」(AI 回复“参考资料中未提到”)。