github.com/zhangshuwei932-ai/AUTO_EVAL --- MIT License,欢迎 Star 与贡献。
1. 引言
大语言模型(LLM)的训练范式通常遵循"预训练 → 监督微调(SFT)→ 人类偏好对齐(RLHF/DPO)"三阶段流程。然而,在领域适配场景中,SFT 和 DPO 阶段常导致模型出现灾难性遗忘 (catastrophic forgetting)和输出质量退化(output degradation),具体表现为模板残留、事实幻觉增加和逻辑连贯性下降。
当前工业界和学术界的模型评测主要依赖两类方法:(1)基于困惑度(perplexity)或损失函数的内蕴指标;(2)基于人工标注的外在评测。前者与真实输出质量相关性弱,后者成本高昂且不可规模化。为填补这一空白,本文设计并实现了一个多层次自动化评测框架 AUTO_EVAL。
2. 系统架构
AUTO_EVAL 采用四层递进式架构,各层按计算成本递增排列,低层过滤后的样本方进入高层,以实现成本与精度的平衡。
2.1 Layer 1:规则引擎
规则引擎包含五条确定性检测规则,运行时无需 GPU,单条推理耗时低于 1ms:
| 规则 | 检测目标 | 实现方式 |
|---|---|---|
| 空回答检测 | 输出长度 ≤ 5 字符 | 字符串长度判断 |
| 截断检测 | 输出未以标点结尾 | 正则:末字符匹配 [。!?.!?] |
| 模板残留检测 | 输出包含训练模板标签 | 正则:匹配 <答案>、`< |
| 重复检测 | 同一句子重复出现 ≥ 3 次 | 句分割 + 频率统计 |
| 长度异常检测 | 输出长度超出 20, 2000 字 | 字符计数 |
2.2 Layer 2:NLP 语义指标
本层采用四项无监督/有参考指标,全部本地计算,无 API 调用成本:
- BERTScore(Zhang et al., 2020):利用预训练 BERT 模型计算候选文本与参考文本的 token 级余弦相似度,衡量语义保真度。
- ROUGE-L(Lin, 2004):基于最长公共子序列(LCS)的召回率,衡量关键词覆盖程度。
- 关键点覆盖率:对参考文本提取知识点后,计算候选文本命中的比例。
- 实体幻觉检测:利用 jieba 词性标注提取候选文本中的命名实体,与参考实体集求差,统计幻觉实体数。
2.3 Layer 3:LLM-as-Judge 评分
本层调用大语言模型(默认为 DeepSeek-chat)作为评测者,从流畅度、相关性、准确性三个维度各以 1-5 分评分,总分 15 分。
为消除 LLM-as-Judge 中已知的位置偏差(position bias)------模型倾向于偏好排在前面的回答------在两两对比(pairwise comparison)中采用交换位置评两次取平均的策略:
Score_AB = Judge(A, B) # A 在前
Score_BA = Judge(B, A) # B 在前(交换位置)
Final = (Score_AB - Score_BA) / 2
此外,框架实现了基于 ReAct 模式的 Agent Judge:评测者在打分前可调用规则引擎、NLP 指标、事实核查等工具收集证据,再基于证据链给出评分,增强可解释性。
2.4 统计引擎
所有评分结论均需通过统计检验方可视为有效。统计引擎提供四项核心检验:
- Bootstrap 置信区间(Efron, 1979):有放回重采样 10,000 次,取 α/2 和 1-α/2 百分位构成 95% CI,不假设数据分布。
- 配对 t 检验:对同一评测题的两个模型分数进行配对检验,消除题目难度差异。
- Cohen's d 效应量(Cohen, 1988):d = 差值均值 / 差值标准差,按阈值 0.2/0.5/0.8 分为 negligible/small/medium/large。
- Wilson Score Interval:用于二项分布的 Win Rate 置信区间,避免 Wald 区间在小样本下越界 0, 1。
3. 数据清洗 Agent
针对训练数据中的质量问题,设计了三版清洗 Agent:
3.1 单 Agent 版
一个 LLM 实例同时负责检测和清洗,存在确认偏差(confirmation bias)------Agent 倾向于漏检自身不易识别的错误。
3.2 LangGraph 工作流版
引入 LangGraph 的状态图框架,将清洗流程建模为节点-边图,Router 节点根据清洗质量决定"通过"或"重试"。增强了流程可观测性。
3.3 双 Agent 对抗版(v3)
核心设计采用对抗生成范式:Writer Agent 生成清洗版本,Reviewer Agent 独立审查,不合格则打回重写。这一机制类似于生成对抗网络(GAN)的判别器-生成器博弈。实验表明,v3 在召回率和精确率上均优于前两版。
4. 实验
4.1 评测集
自建金融领域评测集,50 题,分类为:解释型(40%)、比较型(24%)、计算型(6%)、判断型(30%)。每道题包含参考答案、关键知识点、常见错误提示和评分备注。
4.2 Layer 1 结果
| 模型 | 通过率 | 截断 | 模板残留 | 重复 |
|---|---|---|---|---|
| base | 93% | 16 | 0 | 1 |
| sft | 66% | 46 | 40 | 0 |
| dpo | 71% | 47 | 24 | 1 |
| sft_v3 | 81% | 48 | 0 | 0 |
SFT 模型模板残留 40 次,回溯分析显示训练数据中 5,871/47,780 条(12.3%)包含 <答案:> 等训练模板标签。
4.3 Layer 2 结果
| 模型 | BERTScore | ROUGE-L | 幻觉实体 |
|---|---|---|---|
| base | 0.678 | 0.167 | 32 |
| sft | 0.645 | 0.134 | 115 |
| dpo | 0.657 | 0.134 | 67 |
| sft_v3 | 0.686 | 0.216 | 26 |
sft_v3 在 BERTScore 和 ROUGE-L 上均取得最优,幻觉实体数较 sft 降低 77.4%。
4.4 Layer 3 结果(DeepSeek-chat 作为 Judge)
| 模型 | 流畅度 | 相关性 | 准确性 | 总分/15 |
|---|---|---|---|---|
| base | 4.7 | 3.6 | 2.5 | 10.8 |
| sft | 3.5 | 2.6 | 2.3 | 8.4 |
| dpo | 3.5 | 2.9 | 2.2 | 8.6 |
| sft_v3 | 4.3 | 3.5 | 2.6 | 10.5 |
sft_v3 在准确性维度上超越基座模型(2.6 vs 2.5),是唯一在该维度提升的微调模型。
4.5 统计检验
| 对比 | p-value | Cohen's d | 效应量 | 结论 |
|---|---|---|---|---|
| base vs sft | < 0.001 | 0.78 | medium | 显著 |
| base vs dpo | < 0.001 | 0.94 | large | 显著 |
| base vs sft_v3 | 0.373 | 0.13 | negligible | 不显著 |
| sft vs sft_v3 | < 0.001 | -0.76 | medium | 显著(sft_v3 优) |
| dpo vs sft_v3 | < 0.001 | -0.87 | large | 显著(sft_v3 优) |
核心发现:base vs sft_v3 的 p=0.373 表明两者在 α=0.05 水平下无统计显著差异。sft_v3 通过数据清洗和推理参数优化,成功消除了微调过程引入的性能退化。
4.6 推理参数对输出的影响
sft_v3 的初版在 temperature=0.8 条件下出现严重的重复生成(36 次),总分仅 7.3/15------低于旧版 sft(8.5)。将 temperature 降至 0.1、max_new_tokens 限制为 120、增加双重停止符后,重复现象完全消除,总分跃升至 10.5(+44%)。这验证了推理参数对输出质量的显著影响,而非训练过程本身的问题。
5. 相关工作
本工作与以下研究方向相关:(1)LLM-as-Judge 范式(Zheng et al., 2024),本框架进一步引入了去偏机制;(2)Agent 增强评测(ReAct, Yao et al., 2023),框架实现了工具调用和证据收集;(3)统计显著性检验在 NLP 评测中的应用(Dror et al., 2018),框架整合了 Bootstrap 和效应量;(4)数据质量对模型性能的影响(Gunasekar et al., 2023),本实验提供了金融领域的实证证据。
6. 结论与展望
本文提出 AUTO_EVAL,一套多层次自动化评测框架,实验表明:(1)SFT 模型性能退化主要归因于训练数据质量不足而非 SFT 训练本身;(2)数据清洗 + 推理参数优化可使微调模型性能恢复至基座水平(p>0.05);(3)LLM-as-Judge 与统计推断的结合为模型评测提供了可量化的置信度依据。
后续工作方向包括:引入多 Judge 集成(ensemble judging)以降低单一 Judge 偏差;扩展评测集覆盖更多垂直领域;将评测框架集成至训练循环中实现实时质量监控。
参考文献
- Cohen, J. (1988). Statistical Power Analysis for the Behavioral Sciences.
- Dror, R. et al. (2018). The Hitchhiker's Guide to Testing Statistical Significance in Natural Language Processing. ACL.
- Efron, B. (1979). Bootstrap Methods: Another Look at the Jackknife. Annals of Statistics.
- Lin, C.-Y. (2004). ROUGE: A Package for Automatic Evaluation of Summaries. ACL Workshop.
- Yao, S. et al. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR.
- Zhang, T. et al. (2020). BERTScore: Evaluating Text Generation with BERT. ICLR.
- Zheng, L. et al. (2024). Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena. NeurIPS.