Files
llmiotsafe/DPODataGen
2026-05-12 17:01:39 +08:00
..
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00
2026-05-12 17:01:39 +08:00

DPODataGen

独立于 data/benchmark/ 的 DPO 训练数据生成器。

当前版本提供:

  • 40 个与 benchmark 场景族隔离的新训练场景
  • train/dev 场景级隔离
  • 生成 episode JSON
  • 生成 prompt + chosen + rejectedpairs.jsonl
  • chosen_source=rulerejected_source=constructed
  • DPO 专用短 prompt按任务类型裁剪日志而不是把全量事件直接塞进训练样本
  • 数据审计脚本与后续模型出题导出脚本

运行

python -m DPODataGen.run_generate_dpo --split both --overwrite

小样本 smoke

python -m DPODataGen.run_generate_dpo --split both --max-episodes 20 --overwrite

长度审计:

python DPODataGen/audit_dataset.py --root data

导出给强/弱模型批量生成回答的任务:

python DPODataGen/export_model_tasks.py --split train --output train_tasks.jsonl
python DPODataGen/export_model_tasks.py --split dev --output dev_tasks.jsonl

调用强/弱模型批量作答:

python DPODataGen/collect_api_answers.py --input train_tasks.jsonl --output strong_train_answers.jsonl --model <strong-model> --api-base <base> --api-key <key> --workers 4 --max-tokens 4096
python DPODataGen/collect_api_answers.py --input train_tasks.jsonl --output weak_train_answers.jsonl --model <weak-model> --api-base <base> --api-key <key> --workers 4 --max-tokens 4096 --no_thinking

把模型回答回填成最终 preference pairs

python DPODataGen/assemble_preference_pairs.py --split train --input-root data_dpo_v2 --strong-answers strong_train_answers.jsonl --weak-answers weak_train_answers.jsonl --output final_train_pairs.jsonl --report final_train_pairs_report.json

输出

  • data/train_pref_v1/episodes/*.json
  • data/train_pref_v1/pairs.jsonl
  • data/train_pref_v1/summary.json
  • data/dev_pref_v1/episodes/*.json
  • data/dev_pref_v1/pairs.jsonl
  • data/dev_pref_v1/summary.json

注意

  • 这版先落地 rule chosen + constructed rejected
  • strong-model chosenactual-model-error rejectedhuman curated pairs 可以在此目录结构上继续增量扩展。