本文复盘我一作论文 OKC-SFT 的完整实践:面向空分装置异常操作处置指令的结构化微调方法,论文投稿 CAC 2026,数据集已在 GitHub 开源(CC BY 4.0)。文中所有数字均可复现。
一、问题:工业场景容不下幻觉
空分装置(ASU)是流程工业的核心设备,操作工在异常工况下需要的是可立即执行的处置指令。让通用大模型回答「粗氩塔氮塞了怎么办」这类问题,答案往往读起来专业、细究全是错:编不存在的阀门位号、把处置顺序颠倒、漏掉必须停车的安全边界。
在聊天场景里,幻觉是体验问题;在工业处置场景里,幻觉是安全事故。这个项目要解决的只有一件事:让微调后的模型输出的每一条处置指令都可执行、可验证、有边界。
二、方法:把处置逻辑显式化为六元素链
分析优秀操作工的回答习惯后发现,合格的处置指令天然有一条完整的逻辑链。我们把它显式化为操作知识链(Operation Knowledge Chain,OKC)六元素,要求模型每次回答都必须输出全部六个字段:
| 字段 | 职责 |
|---|---|
| Diagnosis 诊断 | 判定异常状态与严重程度 |
| Evidence 证据 | 给出支撑判断的过程变量、设备状态、测量值 |
| Possible Causes 原因 | 解释因果机理与可能的故障源 |
| Operation Suggestions 操作 | 可执行的操作步骤 |
| Verification Indices 验证 | 操作后的监控变量与恢复判据 |
| Safety Notes 风险边界 | 何时减速、停车或上报升级 |
核心思路:幻觉最容易发生在模型「自由发挥」的地方,六字段结构把回答的每一步都锚定在必须填充的槽位上,模型没有随意发挥的余地,缺了哪个字段在评测端立刻可见。
三、数据:611 条结构化样本与 858 条非结构化基线
为了证明增益来自结构而非数据量,我们构建了两组训练数据做对照,场景均为粗氩塔氮塞(nitrogen_plugging):
| 数据集 | 样本数 | 形态 | 作用 |
|---|---|---|---|
| okc_sft_train.jsonl | 611 | 六字段结构化输出 | 实验组 |
| qa_sft_train.jsonl | 858 | 常规问答式输出 | 基线组 |
| test_set.jsonl | 61 | 六类任务均衡分布 | 评估集 |
三个设计细节值得记录:
- 全字段输出。OKC-SFT 的每条样本无论问题类型是什么,输出都必须是完整六字段。问「AI705 这个位号什么意思」,也要走完诊断到风险边界的全链,让结构成为肌肉记忆。
- 来源可追溯。每条样本的 metadata 带 source_trace,标记它来自哪条源问答、哪条知识链条目,数据出问题可以逐条回溯。
- 评估集带关键点。测试集不写标准答案全文,只写 expected_key_points(期望关键点),例如「AI705 表征粗氩纯度,持续下降是氮塞最核心的预警信号」,为自动评测留接口。
四、评测:三个指标构成的完整循环
工业问答没有现成基准,我们自建了评测循环,围绕三个指标:
| 指标 | 含义 | 目标方向 |
|---|---|---|
| 结构完整率 | 输出是否包含全部六字段 | 越高越好 |
| 关键点覆盖率 | expected_key_points 被命中的比例 | 越高越好 |
| 幻觉率 | 输出中出现编造位号、错误操作、虚构机理的比例 | 越低越好 |
基座模型为 Qwen2.5-7B,LoRA 微调。先训基线组跑一轮评测,再训实验组跑同一套评测,两轮使用完全相同的测试集与评分口径,保证对比公平。
五、结果
| 指标 | QA-SFT 基线(858 条) | OKC-SFT(611 条) |
|---|---|---|
| 幻觉率 | 34.4% | 15.6% |
| 结构完整率 | 无结构约束 | 99.8% |
| 关键点覆盖率 | 低于实验组 | 0.7378 |
三个值得强调的点:
- 更少的结构化数据赢了更多的非结构化数据。611 条对 858 条,幻觉率下降超过一半,说明增益来自结构约束本身。
- 结构完整率接近满分说明六字段格式被模型稳定学会,格式约束是零成本兑现的。
- 幻觉率 15.6% 仍不达标。工业上线还需要检索增强与人工审核兜底,论文也如实讨论了这一点。
六、经验总结
- 结构即约束。抑制幻觉最直接的手段是把输出空间收窄到必须填充的槽位上,这比堆数据、堆参数便宜得多。
- 评测先于训练。expected_key_points 与评分口径在训模型之前就定好,后面所有迭代都有统一的标尺,避免「感觉变好了」式开发。
- 小数据垂直微调是可行的。611 条高质量样本足以让 7B 模型学会一个工业场景的回答范式,前提是每条样本的格式与来源都严格受控。
- 可追溯性救过命。数据审查时发现的部分错误样本,全靠 source_trace 逐条定位回源问答修正,没有这套机制只能靠重读全量数据。
- 诚实面对残余幻觉。15.6% 写进论文比包装成 0% 更有价值,它直接定义了下一阶段(RAG + 审核流)的工作目标。
七、开源资源
- 数据集:OKC-SFT-Dataset(CC BY 4.0),含全部训练、基线与测试数据
- 格式兼容 LLaMA-Factory,拷入 data 目录即可开训
- 论文:投稿 CAC 2026,目前为单一场景(氮塞)验证,多场景扩展进行中
欢迎在 GitHub 提 Issue 交流。