Notes · 2026.03.14
对照实验要能复现
记录比心情重要。
协助对照关键词、向量、图谱检索的差异。把评测结论反馈到策略。可复现的意思是:换一台机器、同一个配置,能长出同一张表。长不出,就写长不出,别改表。错误案例和复现步骤一起存。心情觉得这次更强,不进记录。会议里「评测已经说明了」要能打开日志目录。目录打不开,说明了只是当天心情不错。心情不错的策略上线,新领域的词会把图谱打空。空了要有返回。返回之前,表要能再长出来。
对照是一次只动一样
关键词、向量、图谱,三条检索路可以比。比的时候若同时改了切分、改了模型、改了提示词,差异不知道从哪来。不知道从哪来的差异,反馈到策略会变成「我们全面换成图谱」。全面换成某条路,产品上可能更差。更差之后再换回来,一周没了。
我参与这类对照整理,写参与。策略可以改。改要能指回那张表。表要能指回脚本、split、seed、checkpoint、日志目录。五样缺一,策略会议里的「因为评测」四个字作废。作废了还改产品,是用心情改。
同一份划分很关键。检索对照若用不同划分,胜负是数据差。数据差写成方法差,后面的人会沿着错的方向加复杂。复杂很像进展。进展要对着能复现的表。
换一台机器
本机有代理 7890、有 brew 的 ruby、有时没有 rg。这些不影响检索对照的数,除非脚本偷偷依赖了本机缓存。偷偷依赖很常见:某份向量已经写在我的磁盘上,另一台要现场算,现场算用了另一半数据。于是两台机器两张表。两张表我若挑好看的,就是造假。
所以配置要包括数据版本。数据版本和代码版本一起钉。钉在日志目录里,不要钉在聊天记录里。聊天记录会丢。目录会留。留了才能换机器。换机器失败,把失败写进记录。失败本身是结果。结果比「大概是环境问题」有用。环境问题也要写是哪条命令、哪份缺失。
uv 或仓库指定的安装器要跟锁文件。对照脚本若在全局包里跑通,换机器必挂。挂了不要怪对照设计。先怪安装。安装干净了还长不出同一张表,再谈随机性和 seed。
别改表
长不出同一张表时,人会去改表。改表有几种:四舍五入到能对上、删掉漂的那一行、只保留和 PPT 一致的列。这些我都动过心。动心之后若真改了,记录就死了。死的记录仍能支持一句策略。策略会在评委抽问时裂。PPT 和系统不是同一套。表和复现也不是同一套。表必须服从复现。
错误案例要能再跑出来。再跑需要步骤:输入是哪条、配置是哪份、当时检索到了什么。只存一句「图谱在这个 query 上更好」,更好无法复查。无法复查的更好,两周后我会怀疑是记反了。记反了的策略,比不改更坏。
反馈到策略
评测结论可以改产品:某类查询走关键词,某类走向量。改之前问:这个结论在 OOD 文本上还成立吗。检索的 OOD 是新领域的词。新领域上图谱也许空。空要当功能处理,不要假装有边。空和超时一样,要有返回。
TextGuard 那条线和检索对照不是同一张表。不要把检测的 MCC Decay 句子套到检索。套指标和套旧准确率句子是一类错。指标换了,语言换。任务换了,语言也换。
限制
这篇没有三路检索的分数。不宣布图谱更好或关键词够用。更好和够用都要能再长出来。长不出来的时候,我宁可策略停一版。停一版难看。难看比把心情写进上线记录好。NeurIPS 2026、AAAI 2027 仍是 Under Review,和这张对照表无关,也不要借它们给检索策略撑场面。
我协助整理时,最怕的会议句是「评测已经说明了」。说明了要能打开目录。目录打不开,说明了只是在场的人记得那天心情不错。心情不错的策略上线,用户会用新领域的词把图谱打空。空了若没有返回,界面转圈,又回到智能体挂了怎么办。检索对照和智能体失败路径其实通着:都要求失败可复现、可解释、可降级。可复现排第一。第一没有,后面的策略会议可以不开。