(01)

先说清楚,什么结果应该一致

同事重新运行你的分析,得到了一段措辞不同的总结。如果证据和主要发现一致,这可能没有问题。但如果原报告中的一项重要例外消失了,即使大部分文字相似,结论也已经变了。开始整理材料前,先说明你希望别人重现什么。

美国国家科学院等机构区分了几种检验:用相同数据和计算步骤得到一致结果,属于计算可复现性;重新收集数据来检验同一问题,属于重复研究;考察结论是否适用于其他人群或环境,则是在检验泛化能力。[1] 找回首次运行的完整过程是另一项基础工作。记录齐全,并不代表后面几项检验都能通过。

把通过条件写在重新运行之前。例如,提取出的数值必须相同,计算误差不得超过指定范围,或主要发现必须一致且能指向支持它的原文。条件应适合研究方法,不能等结果出来后,再挑一条让自己满意的标准。

先说明什么结果应该一致,再判断文字变化是否重要。
(02)

边做研究,边保存材料

最终报告通常看不出你排除了哪篇文献、翻译了哪段原文,或纠正了哪项AI判断。这些步骤可能改变结论。等研究结束后再凭记忆补记,很容易漏掉。

给每次运行一个编号,把输入、操作步骤、中间输出和最终结果放在这个编号下。原始材料与清洗、翻译后的版本分开保存。文件名相同不代表内容相同;可以在使用文件时记录哈希值,也就是用来核对内容的数字指纹。几个月后才计算哈希值,不能证明当时用的是哪一版。

NeurIPS的复现项目结合了检查表、代码提交和独立复现尝试。[2] 对日常工作的启发是:从研究开始就保存所需记录。发布时填写一张检查表,找不回已经消失的临时搜索结果,也补不回没有记录的人工修改。

(03)

留下具体模型版本和原始回答

只写模型的产品名,别人可能找不到你当时用的版本。OpenAI的API文档说明,不同模型快照之间的行为可能改变,建议在需要保持行为一致时固定版本,并针对任务进行评估。[4] 记录供应商、具体模型标识、API地址、请求时间、生成设置,以及服务提供的请求或响应标识、系统指纹。

固定版本也不保证每次输出完全相同,更不保证该版本永久可用。提前说明:模型退役后,可以使用什么替代方案,替代模型需要通过哪些检查。如果没有合格替代项,就如实写明哪些结果无法再按原方法复现。

使用本地模型时,保存模型文件及其哈希值、运行软件和相关硬件设置,以及如何把文字转换为模型输入的分词设置、模型压缩方式和生成参数。无论使用哪种模型,都先保存原始响应,再进行提取、整理或编辑。这样才能分清差异出在模型回答,还是后续处理。

产品名不够。要留下当时的具体版本、输入和原始响应。
(04)

保存完整指令,而不只是最后一个问题

两个人输入同一个问题,模型收到的材料仍可能不同:前面的对话、示例、检索到的段落、工具说明和输出格式都会参与这次请求。保存完整消息序列,以及组装这些消息的模板或代码。材料的顺序也要保留。

Sclar等人在少样本评估中发现,一些不改变含义的提示格式变化,也会明显影响结果。[6] 这不代表所有任务都同样敏感。它提醒我们记录试过哪些提示版本、为什么选择当前版本,以及报告展示的是常见结果,还是多次尝试中最好的一次。

修改指令后,保存新版本,并用一组固定的小样例检查效果。把固定的任务指令与本次加入的材料分开记录。如果看到结果不理想才修改指令,修改后应作为新一次运行保存,让别人能看清方法是何时、因为什么改变的。

(05)

保存实际用过的来源和处理步骤

今天输入同一条检索式,未必能找到研究当天的页面和排序。保存检索词、返回结果的标识与顺序、访问时间和纳入理由。在权限允许的范围内,保留实际用过的文件或摘录。一个网址通常不足以还原当时看到的内容。

来源进入模型前经过了什么处理,也要留下记录。例如,扫描件如何识别成文字,原文如何翻译,长文如何分段,哪些内容被截去。记录重要工具的版本、设置、输入、输出和失败情况。资料不能公开时,可以提供申请访问的步骤,以及结构相同、不含受保护信息的测试样例。这样的样例能检查流程是否运行,不能复现基于非公开资料得出的发现。

ReproEvalCard审查了55篇多阶段LLM评估论文:75%未报告随机变化的控制措施,61%缺少中间步骤记录。[5] “未报告”不等于研究者一定没有采取措施,但读者无法据此检查。只保存最终答案,会让关键差异无从追查。

(06)

检查变化是否影响发现

选一组有代表性的案例重复运行,保留所有输出。比较你事先指定的结果:提取数值、纳入的主张、排名或建议。报告它们多常改变、改变多少,以及哪些任务或群体更容易出错,不能只展示最接近原结果的一次。

如果系统提供随机种子或减少随机性的设置,应当记录,但不要把它们当作结果必然一致的保证。也可以测试方法原本应该容忍的变化,例如含义相同的指令写法或材料顺序。如果这些变化就会改变结论,应说明结果依赖哪些条件。

通过条件要与任务相符:一张计算表可能要求数值完全相同;一项质性分析则可能要求主要发现有相同证据支持,并检查例外是否被遗漏。出现差异时,先比较中间结果,找出从哪一步开始不同。最终文本的相似度分数,无法告诉你原因。

检查结论和证据是否改变,不必要求每句话原样出现。
(07)

把人工判断也记下来

研究者可能修正转写错误、选择来源、拒绝生成的代码、合并类别,或决定停止搜索。这些判断也会改变结果。记录谁看到了什么、改了什么,以及为什么改。凡是影响结果的修改,尽量同时保留原始建议与最终采用的版本。

W3C的PROV数据模型提供了记录材料、活动和责任主体关系的方法。[7] 日常项目不一定需要新建系统。让每项输出能指回所用输入和处理步骤,再加上简短的修改记录,通常就能帮助别人追查一次重要决定。

能够复现的研究仍可能使用有偏样本,或误解原文。因此,记录过程之外,还要审核研究方法。如果省略失败运行会让读者误以为结果从一开始就稳定,也应保留这些失败及后续调整。

(08)

请没参与研究的人实际重做一次

交接说明先写要重现的结果和通过条件,再列所需材料、访问方式、指令、软件和预期中间输出。提供一个小样例帮助检查环境,并说明限制和允许的用途。需要自动核对时,可以另附结构化文件清单,记录文件哈希和版本。

Heil等人提出的标准,从提供数据、模型和代码,逐步推进到说明运行环境和自动执行步骤。[3] 先把设置过程写清楚,再自动化值得重复的操作。运行失败时,应能看出失败发生在哪一步,而不是只能从头猜测。

最后请未参与研究的人按说明重做。ACM的成果审核标准区分材料可获取、经过审核且可使用,以及结果被独立复现。[8] 记录对方哪里需要猜测、哪里无法访问材料、哪里不能判断结果是否通过。修正说明和材料后,如实报告实际复现了什么,还有哪些差异。