☰
训练后效果如何验证?DataArc SynData Toolkit集成DeepEval三大评估指标实战解析
2026/10/11 17:39:19 网站建设 项目流程

【免费下载链接】DataArc-SynData-Toolkit

Synthetic Data Generation Platform By DataArcTech

项目地址:https://gitcode.com/gh_mirrors/da/DataArc-SynData-Toolkit
点击查看免费下载

🤔 用合成数据完成 SFT 或 GRPO 训练后,模型到底变好了没有?DataArc SynData Toolkit是一款一站式合成数据生成平台,除了数据合成与后训练能力外,它深度集成了DeepEval评估框架,通过 LLM-as-a-Judge(G-Eval)机制提供答案正确性、格式合规性、成对偏好三大评估指标,一条命令即可完成训练后效果验证。本文带你快速读懂这套「训练后模型评估」方案 👇

图:从配置到合成数据、训练模型的完整流水线——评估环节为训练产出模型「把关」

一、为什么需要"训练后评估"?

合成数据训练的典型链路是:文档/语料 → 数据合成 → 数据过滤 → SFT / GRPO 训练 → 产出模型。训练日志里的 loss 下降并不等于模型真的变强,你需要一套客观、可复现的验证手段。

DataArc SynData Toolkit 将评估能力内置在平台中,核心实现位于 sdgsystem/deepeval/ 模块:

  • 评估编排器:sdgsystem/deepeval/evaluator.py
  • 指标与配置定义:sdgsystem/deepeval/config.py
  • 命令行入口sdg eval:sdgsystem/cli.py

它统一采用G-Eval(LLM-as-a-Judge)打分方式:由一个裁判大模型(如 gpt-4o 系列)按照可定制的评估标准与评分细则(Rubric),对模型输出给出 0–10 分并附理由,兼顾了灵活性与可解释性。

二、三大 DeepEval 评估指标详解

1️⃣ Answer Correctness:答案正确性

对比模型实际输出 vs 标准答案(ground truth),判断事实层面是否正确。

  • 默认 0–10 分四档 Rubric:0–2 完全错误、3–5 部分正确、6–8 基本正确、9–10 完全正确
  • 默认通过线0.7,分数低于阈值记为未通过
  • 实现见 sdgsystem/deepeval/metrics/correctness.py

💡 这是最直观回答"训练有没有用"的指标:正确率提升 = 模型真的更强了。

2️⃣ Format Compliance:格式合规性

训练时你往往要求模型按特定格式输出(例如"分步推理 + 在 ##### 后给出最终答案")。该指标检查模型输出是否遵循你在配置中指定的 output_instruction 格式要求:

  • 默认通过线0.8
  • 评估步骤自动从输出指令中提取格式要求,逐项核对结构与要素
  • 实现见 sdgsystem/deepeval/metrics/format_compliance.py

🎯 对下游自动化解析(抽取答案、结构化落库)来说,格式合规率与正确率同样关键。

3️⃣ Pairwise Preference:成对偏好比较

没有标准答案?没关系。该指标让裁判模型独立先自行判断正确答案,再对比两个回答:

  • Response A= 训练后模型输出,Response B= 基础模型(base model)输出
  • 离散打分:10 = A 胜(训练后模型赢)、5 = 平局、0 = B 胜
  • 双方都正确时,偏好更清晰、简洁的回答;出现幻觉或无关内容会被重罚
  • 实现见 sdgsystem/deepeval/metrics/pairwise.py

⚖️ 最终汇总会给出post_trained_win_rate(胜率),直观告诉你"训练后模型相对原始模型赢了多少"。

指标对比对象打分方式默认通过线
Answer Correctness模型输出 vs 标准答案G-Eval 0–10 分0.7
Format Compliance模型输出 vs 输出指令G-Eval 0–10 分0.8
Pairwise Preference训练后模型 vs 基础模型10 胜 / 5 平 / 0 负—

三、快速上手:一条命令跑完评估

1. 准备测试数据

准备一份 JSONL 格式测试集,每行包含input(问题)与output(参考答案)两个字段。项目内置了多领域示例数据可供参考:

  • 数学:examples/mathematics/gsm8k_demo.jsonl
  • 金融(CFA):examples/finance/cfa_demo.jsonl
  • 医学:examples/medicine/medqa_demo.jsonl

图:CFA 教材页面示例——平台支持从此类领域文档合成数据,训练后同样可用该领域的题目验证效果

2. 配置评估参数

基于官方配置样例 configs/eval.yaml 修改即可,关键项包括:

  • dataset.path:测试集路径
  • post_trained_model:待评估的已训练模型(路径、设备、显存等)
  • judge_model:裁判大模型名称
  • 三大指标的enabled开关,以及 criteria / evaluation_steps / rubric 均可自定义

⚠️ 开启 Pairwise 指标时必须配置pairwise.base_model(用于对比的基础模型),否则配置校验会直接报错,这是新手最容易踩的坑。

3. 配置环境变量并运行

在项目根目录的.env文件中配置:OPENAI_API_KEY(裁判模型走 OpenAI 兼容接口)、OPENAI_BASE_URL(可选)、CONFIDENT_API_KEY(Confident AI 密钥,注册后可免费创建)。然后执行:

uv run sdg eval configs/eval.yaml

支持命令行参数临时覆盖,无需改配置:--dataset换测试集、--model换待评估模型、--output换结果目录(详见 sdgsystem/cli.py)。

💡 如果你用 verl 完成了 GRPO 训练,checkpoint 需先合并为 HuggingFace 格式再评估:python -m verl.model_merger merge --backend fsdp --local_dir <checkpoint> --target_dir <output>,合并逻辑位于 verl/model_merger/。

四、读懂评估报告

评估完成后,结果默认写入./deepeval_results目录(可配置),每个启用的指标各生成一个 JSON 报告:

  • correctness_results.json
  • format_compliance_results.json
  • pairwise_results.json

📊 重点关注summary部分:

  • average_score:平均得分(0–1 归一化)
  • pass_rate:通过率(超过阈值的样本占比)
  • post_trained_win_rate / base_model_wins / ties:成对比较中的胜率、负率与平局数

同时报告还会标注数据集总样本数与被跳过的样本数(模型未生成有效输出的样本会自动剔除并告警),确保分数不被误读为全集结果。每条明细都保留了输入、期望输出、实际输出、得分与裁判理由,方便逐条归因分析。

五、使用建议小结

  • ✅三指标全开:正确性看"对不对",合规性看"规矩不规矩",成对比较看"是否比原版强",交叉验证更可信
  • ✅测试集留足量:建议在 docs/USE_CASES_zh.md 的对应领域数据上抽取验证集,保证领域一致
  • ✅固定裁判模型与推理参数(默认 temperature=0),保证多次评估结果可比
  • ✅ 自定义 rubric 与评估步骤时,保持评分档位描述互斥、可判定,能显著提升打分稳定性

结语

DataArc SynData Toolkit 把"合成数据 → 后训练 → 效果验证"串成了完整闭环:DeepEval 三大评估指标让训练后的效果从"感觉变好了"变成"分数证明了"。无论是验证 SFT 的领域知识注入效果,还是检验 GRPO 的推理提升,一条sdg eval命令即可拿到可复现的量化报告,值得每位做模型训练的同学上手试试 💪

【免费下载链接】DataArc-SynData-Toolkit

Synthetic Data Generation Platform By DataArcTech

项目地址:https://gitcode.com/gh_mirrors/da/DataArc-SynData-Toolkit
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询