可重复的 AI 工作:留存、留痕、可回退

说明为什么使用 AI 的工作必须留存输入、记录版本、保留阶段产物并设置检查点,以及一份成果怎样才算通过验收。

  • 可重复
  • 留痕
  • 版本管理
  • 验收

Reading Guide

先问一个问题

怎样使一次 AI 辅助的工作在半年之后仍然可以被自己或他人重做与核查?

适合读者
把 AI 用于长期积累型项目的读者
阅读基础
structured-output-and-data-contracts;verification-methods

Key Points

先记住这些

  1. 模型输出不稳定,因此可重复指的不是逐字相同,而是过程可追溯、结论可复核。
  2. 至少要留存四样东西:输入材料、任务说明、模型与版本、原始输出。
  3. 阶段产物必须单独保存,不能被下一步覆盖,否则错误无法定位到具体环节。
  4. 检查点要设在错误代价开始上升的地方,通常是在批量写入与对外发布之前。
  5. 失败恢复靠的是版本管理与可回滚的提交,不是靠记忆和撤销键。
  6. 最终验收应回答三个问题:核了多少、错了多少、哪些还没定,缺一不成其为交付。

Terms

几个必要概念

阶段产物

每一道工序完成后的中间成果,独立保存且不被后续步骤覆盖。

它使错误可以定位到具体环节,也使只重做某一步成为可能。
检查点

流程中人必须介入确认才能继续的位置。

自动化的价值来自减少人工,但检查点是不能省的那部分人工。
运行记录

记录本次工作用了什么材料、什么任务说明、什么模型、在什么时间完成。

没有它,半年后无法判断某条结论当初是怎么来的,也就无法追责与订正。

此处的「可重复」是什么意思

计算研究领域早就讨论过这个问题:只公布结论而不公布数据与代码,同行无法验证,研究本身的可信度就打了折扣。相关建议归纳起来无非几条:记录每一步是怎么产生的,保存所有中间结果,把手工操作降到最低,为一切材料保留版本。S1S2

把这些搬到 AI 辅助的工作上,需要作一处调整。模型每次生成的文字并不相同,所以不能要求逐字复现。可重复在这里指的是:任何一条结论都能被追到它由哪份材料、哪份任务说明、哪个模型在哪一天产生,并且他人可以用同样的材料独立重做一遍并作出自己的判断。这个标准比逐字复现弱,但足以支撑学术性的使用。S1

要留下什么

  • 输入材料的原件:不要只留摘录,摘录本身就是一次可能出错的加工。
  • 任务说明与验收标准:与成果同版本保存,改了就记一次修订。
  • 模型名称、版本与日期:产品会静默更新,日期常常是唯一的线索。
  • 原始输出:未经人工修改的那一份,单独保存,用于日后追查错误来自模型还是来自人的编辑。
  • 核验记录:抽样比例、发现的错误、修正方式、仍未定的条目。
  • 决定与理由:凡是人推翻了模型判断的地方,一句话记下为什么。
S1S3

这些东西的体量并不大,主要是文本。真正的困难在于习惯:人在顺手的时候倾向于直接改稿,改完就忘了原来是什么样。较省事的办法是把所有工作放在一个版本库里,每完成一道工序提交一次,提交说明里写清用了什么模型、做了哪一步。这样留存与留痕合成了一个动作。S3

检查点与失败恢复

检查点应当设在错误代价开始上升的位置。批量写入文件之前、覆盖既有数据之前、对外发布之前,这三处几乎总是需要。相反,在生成候选、初步分类这类可以随时重来的环节设检查点,只会拖慢工作而不增加安全。S4

失败恢复的关键在于每一次改动都可回退。做法上并不神秘:改动前先提交一次干净状态,改动以差异清单的形式先看后执行,执行后再提交一次。一旦发现整批处理方向错了,回退一次提交即可,不必逐个文件抢救。备份则应当独立于版本库另存一份,且定期验证能否真正恢复,未验证过的备份不能算备份。S3S4

目录与命名的一个可用方案

留存要能持久,靠的不是决心而是低摩擦。若每次都要想「这个该放哪里」,几周之后就会开始随手乱放。可行的办法是把结构固定下来,让存放变成不需要判断的动作。以一次任务为单位建目录,目录内固定几个子项:原始材料、任务说明与验收标准、各阶段产物、核验记录、最终成果。名称一律用同一套写法,日期在前,任务名在后,版本在最末。S1

  • 一个任务一个目录,目录名含起始日期与任务名。
  • 原始材料只读,永不在原处修改,需要加工时先复制。
  • 阶段产物按序号命名,序号对应工序,不用「新」「最终」「改」这类词。
  • 任务说明与验收标准各一份,改动即新增版本号,旧版不删。
  • 核验记录与成果同目录,不要单独存到别处。
  • 运行记录一个任务一份,内容包括所用模型、日期、每一步的简要说明。
  • 目录一旦完成即整体只读,后续修订另开新目录并注明由哪一次派生而来。
S3

版本管理与这套目录并不冲突,反而互补。目录负责把一次任务的全部证据聚在一处,版本库负责记录每一次改动的时间与理由。两者的分工是:目录回答「这批成果由什么构成」,版本库回答「它是怎么一步步变成现在这样的」。个人项目常见的做法是整个工作区都在版本库中,每完成一道工序提交一次,提交说明写清用了什么模型、做了哪一步、有没有跳过检查点。S3

有一个细节值得单说:不要把长对话的全文当作留存的主体。对话冗长且难以检索,几周后无人会读。真正该留的是从对话中提炼出来的四样东西,即任务说明、原始输出、核验记录与决定理由。对话本身若要留,可以另存一份供追溯,但不应当占据目录的中心位置,否则整套留存会显得庞大而无用,最终被放弃。S1

最后提一个衡量标准,用来判断这套留存是否真的有效:随便挑出成果中的一条,看能否在五分钟之内说清它的来路,包括依据哪段材料、经过哪几步、由谁在什么时候核过、还有什么没定。若做不到,问题一定出在留存结构上,而不是出在记性上,应当回头修目录与命名,而不是要求自己下次记牢。S1

Conclusion

结语

AI 让产出变快,也让错误产生得更快。使工作站得住的,不是模型有多强,而是半年之后你还能说清楚每一条结论是怎么来的、核到了什么程度、哪些至今存疑。

仍可追问

  • 个人学术项目缺少现成的留存规范,本文所列条目为自拟,尚待实践检验。
  • 模型版本在多数产品中不对外暴露精确标识,仅凭日期记录的追溯能力有限。

参考资料

  1. S1

    Geir Kjetil Sandve, Anton Nekrutenko, James Taylor, Eivind Hovig.Ten Simple Rules for Reproducible Computational Research.2013

    DOI / ISBN:10.1371/journal.pcbi.1003285查看来源
  2. S2

    Roger D. Peng.Reproducible Research in Computational Science.2011

    DOI / ISBN:10.1126/science.1213847查看来源
  3. S3

    Association for Computing Machinery.Artifact Review and Badging.2020

    查看来源
  4. S4

    National Institute of Standards and Technology.Artificial Intelligence Risk Management Framework (AI RMF 1.0), NIST AI 100-1.2023

    DOI / ISBN:10.6028/NIST.AI.100-1查看来源