可解释性验证不能只看解释文本是否通顺。对 LoHoSearch 这类会同时输出评分、证据片段和自然语言原因的评估工具,验证重点应当是:评分是否有可定位的原文支撑,解释是否真正反映评分依据,以及结果在合理扰动下是否保持稳定。
可解释性验证的核心,是区分“解释看起来合理”和“解释真的在驱动结果”。建议先构造小样本问题集,逐条核对输出中的证据片段是否真的出现在候选文档中;再对查询做同义改写和删词扰动,观察分数与解释是否随预期同步变化;最后检查解释是否覆盖关键否定词、时间条件等敏感限定。若解释与决策依据不一致,即使分数正确,也应视为可解释性不足。
先明确要验证哪几层
LoHoSearch 的评估结果通常至少包含三层信息:一个可比较的分数、一个或多个证据片段、一段自然语言解释。三层分别对应不同验证任务:证据需要追溯,解释需要核对,分数需要考察稳定性。把这三件事混在一起看容易漏问题,分开看才容易定位错误。
- 证据可追溯:解释中出现的每个事实点,都能在某个候选文档原文中定位到对应位置,而不是模型自行补出的背景常识。
- 解释与分数一致:分数高时,解释给出的理由应当与文档的相关特征对应;分数低时,解释应当指出缺少了哪些关键信息。
- 稳定性:重复查询、同义改写、无关文本扰动下,结果不应出现大范围无理由跳动。
构造一组能暴露问题的样例
可解释性不是靠个例证明的,需要一组覆盖常见错误模式的查询。每个样例都要能回答:预期结果是什么、解释应当引用哪段证据、哪些扰动会让正确答案改变。
| 查询类型 | 样例 | 验证重点 |
|---|---|---|
| 精确匹配 | 报销流程 | 解释是否直接引用文档中的流程步骤 |
| 同义改写 | 如何申请费用退还 | 排序保持靠前,解释是否还在用原文证据 |
| 否定限定 | 不支持远程办公 | 解释是否识别否定含义,而非只按关键词匹配 |
| 时间或实体替换 | 2025年版本的功能 | 替换后解释是否同步更新限制条件 |
样例不必多,但每个样例应单独归到一个错误类别。这样发现解释不一致时,可以直接指出是语法识别问题、实体替换问题还是证据拼接问题。
证据核对:把解释拉回原文
最基础也最容易被跳过的验证动作,是逐条核对证据片段。LoHoSearch 返回的证据片段如果是原文中的连续文本,直接与原始文档做字符串比对即可。如果是经过重写的摘要式说明,则应进一步确认解释中的判断只依赖该片段内容,没有额外引入外部知识。
- 检查解释中的数字、主体和限定词是否在原文中有对应表述。
- 检查解释中的否定表述是否与原文方向一致。
- 若接口提供文档 ID 或偏移量,把解释句子与原始位置做一一映射;若拿不到映射,则用证据片段回查原文位置。
扰动实验:让解释与决策绑定
只看单个查询的证据是否真实还不够,还需要验证解释是否真的随决策因素变化。使用一个通用接入骨架,比较原查询和扰动查询的分数与解释变化。
def loho_query(query):
# 替换为 LoHoSearch 的真实调用方式,保留原始返回结构
return {
'score': 0.82,
'top_doc': 'doc_3',
'evidence': ['原文片段...'],
'explanation': '该文档出现了关键词,因此相关'
}
def check_perturbation(original, changed):
orig = loho_query(original)
new = loho_query(changed)
print('原查询分数:', orig['score'])
print('扰动后分数:', new['score'])
print('原解释:', orig['explanation'])
print('扰动后解释:', new['explanation'])
建议先做四类扰动:同义改写、删除否定词、替换关键实体、增加时间限定。观察规则是:如果分数和解释都变化且方向符合预期,说明解释基本绑定决策;如果分数变化明显但解释没变,说明解释很可能只是后补理由;如果分数没变但解释大变,则需要排查是否有多套解释逻辑在竞争。这个判断适用于可解释性要求较高的检索场景;如果 LoHoSearch 的分数本身来自端到端模型,还要结合更多随机扰动和测试集结果一起看,不能单凭一两组扰动下结论。
一份可复用的验证清单
最后可以把上述动作整理成一份回归清单,放在每次 LoHoSearch 配置或模型变更后跑一遍。样例集和扰动脚本先保留,后续根据实际错误类型补充。
- 所有证据片段都能在原文档定位,没有拼接、错位或虚构。
- 分数最高的结果,其解释至少能指出一条决定性证据。
- 对无相关结果的查询,解释给出“缺少某关键内容”等可检验原因。
- 对同一查询做多次请求,分数和解释的主要理由保持一致。
- 在同义改写后,排序和解释不发生不可解释的跳变。
- 替换关键实体或时间后,解释中的限制条件随之更新。
- 解释中只要出现否定表述,均能在原文找到对应描述。
这套清单用于发现明显不一致,不保证彻底证明可解释性。真正上线前,还需要把样例集中的解释错误按类别统计,并交给使用评估结果的人实际判断哪些错误会影响信任度。