基于检索结果信号的小型 RAG 模型自训练
本项目研究一种减少人工偏好标注的方法:让同一个模型对同一道问题回答两次,一次提供检索资料,一次不提供,再判断哪次回答质量更高。
如果带资料的回答确实更好,这个差异就可能变成一条训练数据。模型可以借此学习怎样更好地使用检索内容,而不需要每一条数据都由人来比较。
这是我在约克大学的硕士毕业设计,目前仍在研究中。因此这篇文章主要说明我在研究什么、准备怎样验证,不提前宣称实验已经成功。
研究背景
偏好训练通常需要人来看两个回答,再选出更好的那个。这种数据很有价值,但收集起来慢,而且成本高。
RAG 系统每次回答问题时,本来就会做一件很像对照实验的事:先找资料,再根据资料回答。如果我们能确认“找资料以后,回答真的变好了”,也许就能自动生成一部分偏好数据。
研究的关键在于建立可靠的判断标准,确认回答质量的变化确实来自检索资料,而不是答案长度、评分偏差或随机波动。
研究职责与工作范围
该课题由我独立设计并推进,工作范围覆盖研究假设、实验设计、数据构建和结果验证:
- 提出用“同一问题有资料和无资料的回答差异”自动构造偏好数据;
- 设计严格对照,让两次回答只改变是否提供检索资料;
- 制定样本筛选规则,只保留差异足够明确的回答,减少错误训练信号;
- 建立基线、跨领域测试和实验记录,判断提升究竟来自训练、检索还是偶然波动;
- 主动识别长度偏差、评分器偏差和数据泄漏等风险,并把它们纳入验证方案。
工作重点是将研究设想落实为可验证、可复现的实验流程,并建立足以支持结论的证据链。
实验设计
每一道问题都使用同一个模型和同一套生成参数,只改变一个条件:是否提供检索资料。
- **回答 A:**不给检索资料,让模型直接回答。
- **回答 B:**先检索相关资料,再让模型回答。
然后比较两个答案。根据不同数据集,评分会关注:
- 最终答案是否正确;
- 回答是否真的得到检索资料支持;
- 模型有没有说出资料里不存在的内容;
- 两个答案的差距是否足够明显。
只有差异清楚的样本才会保留。两个答案差不多,或者评分互相矛盾的样本,会直接丢掉。留下来的数据可以组成 DPO 训练所需的“更好回答/较差回答”对。
控制变量:固定检索器
如果检索器和回答模型同时变化,最后即使结果变好,我也无法判断原因。可能只是检索器找到了更好的资料,和偏好训练没有关系。
所以主实验先固定检索器。检索结果保持可比,只观察回答模型经过训练以后发生了什么变化。
主要风险
检索不一定有帮助。它可能找回无关资料,也可能找回互相冲突的内容。还有一种情况是,RAG 回答只是写得更长、更像样,并没有更加正确。
因此我要特别防止:
- 把错误的比较结果当成训练数据;
- 奖励“写得长”,而不是“答得对”;
- 训练数据和测试数据互相泄漏;
- 模型把评分器的偏差学进去;
- 只在一个数据集上有效,换个领域就失效。
这也是为什么实验必须包含数据过滤、基线比较、固定随机种子和跨领域测试。
可复现性与结果验证
每一次实验都会记录语料版本、检索到的片段、提示词、生成参数、评分方法和模型检查点。
这样,当一个指标发生变化时,我可以一路追查到具体是哪一步造成的。这个工作看起来没有训练模型那么吸引人,但如果实验过程无法追踪,一个普通配置变化也可能被误判成研究成果。
研究目标与预期价值
我的目标不是证明自动信号可以完全取代人工。更实际的问题是:在什么条件下,检索带来的回答改善足够可靠,可以减少人工偏好标注?
哪怕只能回答一部分,也有实际价值。它可以告诉我们哪些样本适合自动生成,哪些仍然需要人来判断,以及小型 RAG 模型怎样在训练预算有限的情况下继续改进。
如果验证成立,这种方法可以为资源有限的团队提供更可控的模型改进路径:先由系统筛选差异明确的样本,再将人工判断集中在真正困难或存在争议的样本上。