我是一名计算机相关专业的硕士研究生。除了平时的学习和科研,我还会接触一些 AI 训练数据制作的任务。
这类工作的难点其实不只是“把答案写出来”。
有些任务会一次性给很多附件,包括 PDF、Word、PPT、Excel、图片、CSV、代码文件等,同时再给一份很长的 Instruction。Instruction 里面会规定模型的角色、任务目标、输出格式、计算规则和各种限制条件。最后不仅要做出标准答案,还需要保证答案严格符合 Prompt,不能漏掉隐藏在长指令里的要求。
我现在比较常用的组合是 GPT-5.6 Sol + Codex,偶尔也会用 OpenCode。
经过一段时间的使用,我发现 AI 对我最大的帮助不是“替我生成答案”,而是帮我完成 拆规则、读材料、查代码、找冲突和做第二轮质检。
比如最近做的一条数据,就是一个 ECG 课程成果验收任务。
它的附件非常多,除了周期采样、小波分析、时频分析等 PDF,还有多个实验 PPT、实验报告、MATLAB 程序、实验结果图片、真实 ECG 的 CSV 数据,以及不同版本的验收规则。
最后还要求根据这些材料生成一个 Excel 工作底稿。
这种任务如果一上来就把所有文件丢给 AI,让它直接“完成答案”,其实非常容易出错。
第一步:我会先让 GPT-5.6 Sol 拆 Prompt,而不是直接做题
这条任务的 Prompt 写在 Instruction 文件里,而且长度非常长。
例如最终 Excel 必须按顺序包含:
- 材料谱系
- 声明与证据
- 实验复核
- 风险与整改
- 发布状态
5 个工作表。
但真正麻烦的并不是记住这 5 个 Sheet,而是 Prompt 后面还有很多互相关联的细节。
比如要从正式成果里找出风险最高的 8 条事实性声明;风险还要按照规定的优先级排序;整改部分只能选前 5 个根因问题;部分数值必须保留 Excel 公式,不能直接把计算结果写死。
甚至整个任务还维护了一个连续状态值 S 和冻结标记 F。
初始 S=10、F=0,每完成一个阶段都要按照规则更新。更容易漏掉的是:
从第 3 个工作表开始,如果进入阶段时 S>12,并且原始变化是正数,那么实际变化最多只能记 +1。
这种要求埋在一大段 Prompt 里面,如果模型前面读懂了、后面执行的时候忘了,最后整个状态机就可能算错。
所以我一般先让 GPT-5.6 Sol 只拆要求,不生成答案。
我会让它把 Instruction 分成几类:
- 最终必须交付什么;
- 文件和格式有哪些硬性要求;
- 哪些结论必须查附件才能确定;
- 哪些地方需要计算公式;
- 哪些规则存在先后依赖;
- 哪些地方最容易出现“一处错,后面全部跟着错”的情况。
这一阶段最大的作用,就是先把一整段长 Prompt 转成一个可以逐项检查的任务清单。
以前我会边做边回头翻 Prompt,现在先做这一步之后,漏要求的情况少了很多。
第二步:让 Codex 帮我查“材料到底说了什么”
Prompt 拆完以后,才真正进入附件。
这时候我比较常用 Codex。
因为很多训练数据并不是只看 Word 或 PDF 就能判断,有时候 报告里的描述和代码真正执行的逻辑并不完全一样。
这条 ECG 数据就是这样。
例如材料里同时出现了实验报告、结果汇总和 MATLAB 代码。有些结论不能只看 PPT 里怎么写,还需要继续往程序里面追:
- 实际调用的是哪个数据文件?
- 采样率来自哪里?
- 小波处理的输入到底是什么?
- 频域处理和小波处理是串联还是并列?
- R 峰到底检测了多少个?
- 某一个数字是报告里直接写的,还是程序计算出来的?
这时候 Codex 比较适合用来查代码里的变量传递、函数调用和文件读取。
我不会简单地问:
“这个程序是什么意思?”
而是会问得更具体,比如:
“只根据当前附件,找到补充实验实际读取的 CSV 文件,并沿着变量传递说明后续频域处理和小波处理分别使用了什么输入。不要根据文件名猜测。”
这样得到的结果更容易核对。
第三步:特别检查“同一个数字,不一定是同一个结论”
这种跨文件任务里,我觉得 AI 最容易犯的一个错误就是:
看到两个数字一样,就自动认为它们在证明同一件事。
例如这条数据里,心率就出现了多个来源。
当前正式成果里报告的平均心率是 76.61 bpm。
结果汇总中还能看到 78.00 和 75.00 等不同数字。
而 Prompt 又明确要求,根据完整记录时长和实际检测到的 R 峰数量重新计算一次心率。
附件里实际检测到 13 个 R 峰,完整记录长度是 10 秒。
所以审计复核值应该通过 Excel 公式计算:
13 ÷ 10 × 60 = 78.00 bpm
然后还要继续计算它和正式成果中 76.61 bpm 的绝对差:
|78.00 - 76.61| = 1.390 bpm
关键就在这里:
78.00 和 76.61 都可能有自己的来源,并不是看到不同就简单判断谁“错了”。
我要做的是进一步确认:
“这个数是怎么计算出来的?”
“它对应的是哪一次实验?”
“Prompt 当前要求采用哪一种口径?”
这一点对于做训练数据尤其重要。
因为我们需要的是 可追踪的证据链,而不是找一个“看起来最合理”的数字填进去。
第四步:文件名只能当线索,不能当证据
这也是我现在会特别提醒 AI 的地方。
比如这条任务里有两个 CSV:
ecg_105.csv
和
ecg_real_10s.csv
看到 10s,模型很容易直接推断:
“这个文件一定是 10 秒的数据。”
但 Prompt 明确要求 不能仅凭文件名判断数据身份。
而且另一个程序里的 Fs=360 Hz,也不能随便传播给一个还没有建立调用关系的数据文件。
所以我现在经常在 Prompt 后面再加一句:
不允许根据文件名、文件夹名或者变量名直接补全事实;如果附件之间没有建立明确映射,就标记为无法确认。
这一句话对降低 AI“自作聪明”的情况非常有效。
第五步:标准答案写完以后,再让 AI 当一次“质检员”
生成标准答案并不是最后一步。
我一般还会单独开一次检查,让 AI 暂时不要修改文件,而是站在质检的角度重新对照 Instruction。
比如我会这样写:
先不要修改当前答案。重新逐条阅读 Instruction,对照标准答案进行检查。重点检查是否存在漏项、文件引用错误、错误的数据身份映射、Excel 公式写死、计算口径错误、排序规则错误以及状态机执行错误。每发现一个问题,都同时指出对应的 Instruction 原要求和答案中的位置。
这种问法和:
“帮我检查一下答案有没有问题”
效果差别很大。
前一种相当于让 AI 按规则做一次 Checklist Review,而后一种很容易只得到“整体完成度较高,建议检查细节”这种没有实际帮助的回答。
这条数据最后的标准答案就是一个 Excel,包含 5 个工作表。
其中有些指标不能简单填写静态数字,还必须保留公式,让后续质检时可以直接追踪引用范围和计算过程。
我一般会重点再检查:
- Sheet 名称和顺序有没有错;
- Prompt 要求的 Top 8 / Top 5 数量有没有满足;
- 数值精度有没有按局部要求处理;
- 公式是不是引用了真正应该引用的单元格;
- 当前事实和“整改后预计结果”有没有混在一起;
- 状态 S 和冻结标记 F 是否按照完整规则一路算下来。
我现在怎么分配几个 AI 工具
经过几次任务以后,我现在基本形成了自己的分工:
GPT-5.6 Sol:负责长 Prompt 理解、规则拆解和跨材料判断。
尤其是 Instruction 很长、条件很多的时候,我会先让它把任务转成检查清单。
Codex:负责代码、文件和变量调用链。
遇到 MATLAB、Python、脚本或者目录中有大量文件时,我更喜欢让 Codex 去找具体证据,而不是靠我自己一个文件一个文件搜索。
OpenCode:作为补充。
我偶尔会用它快速浏览目录、检索关键词或者辅助处理一些机械性的代码和文件任务。
但无论使用哪个 AI,最终关键结论我都会自己再检查一次。
我踩过的几个坑
做这种训练数据以后,我现在最警惕三个问题。
第一,AI 会把“合理推断”偷偷写成“已经证实”。
特别是遇到文件名、相似数字、相似实验时,模型很容易自己建立一个材料里并不存在的关系。
所以没有证据,就宁愿标记“待补证”或“无法确认”。
第二,长 Prompt 最大的问题不是看不懂,而是执行到后面忘了。
排序、状态机、Top N、公式精度这种要求,都建议先单独提取成 Checklist。
第三,不要因为有“标准答案”,就不再检查。
标准答案本质上也是制作出来的。尤其 Excel 公式、跨文件引用、复杂状态计算,最好再进行一次独立复核。
最后总结一下我的工作流
我现在做复杂 AI 训练数据,大概会按照:
拆 Instruction → 建 Checklist → 查附件 → 查代码调用链 → 写标准答案 → 对照 Prompt 二次质检
这一套流程来做。
以前我的思路更多是:
“怎么让 AI 一次把答案写对?”
现在反而变成了:
“怎么把一个复杂任务拆成几个 AI 不容易做错的小任务?”
对我来说,这才是 GPT-5.6 Sol、Codex 这类工具真正提升效率的地方。
AI 可以帮我读几十份材料,可以帮我查代码,也可以帮我发现前后矛盾。
但涉及训练数据时,我觉得最重要的一点始终没有变:
AI 负责提高处理信息的速度,人负责守住证据、规则和最终判断。


