Skip to content

feat(sft): Phase 13 正式 7B SFT/LoRA baseline(launcher + evaluator + merge tool) - #11

Merged
xianyu9n merged 4 commits into
masterfrom
phase13-sft-baseline
Aug 19, 2026
Merged

feat(sft): Phase 13 正式 7B SFT/LoRA baseline(launcher + evaluator + merge tool)#11
xianyu9n merged 4 commits into
masterfrom
phase13-sft-baseline

Conversation

@xianyu9n

@xianyu9n xianyu9n commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator

Phase 13 — 7B SFT baseline(reproducible baseline + candidate downstream-init artifact)

注:本 PR 是 reproducible SFT baseline;Phase 13 checkpoint 不是冻结的 RL 初始化。
正式实验只固定基模 Qwen/Qwen2.5-7B-Instruct,不冻结任何具体 checkpoint。

Commits

  • b8b5216 feat(sft): 7B LoRA baseline launcher + choice-metrics evaluator + verl LoRA→HF merge tool
  • 85c1264 feat(sft): baseline eval JSON 持久化每条 completion
  • 41c24e3 refactor(sft): Phase-13 的 end_to_end 指标改名 proxy_e2e(factorized/proxy 语义)
  • e05f7ed fix(sft): merge 前 review 修复(见下)

Changed files

  • script/verl/sft/run_baseline.sh — Qwen2.5-7B-Instruct SFT/LoRA 训练 launcher(env 化,输出 hyperparams.json)
  • script/verl/sft/evaluate_baseline.py — factorized/proxy 评估器(choice protocol,复用 agent.evaluation
  • script/verl/sft/merge_lora_checkpoint.py — verl LoRA FSDP checkpoint → 合并 HF 目录

Merge 前 review 修复(e05f7ed)

  • contract validation 改为 hard gatescript.verl.sft.validate 非 0 → 打印错误并 exit 2,不再 warning 后继续训练(token-budget gate 逻辑不变)。
  • checkpoint 默认配置改安全SAVE_FREQ=50(低频)、MAX_CKPT_KEEP=4(上限,避免 7B FSDP ckpt ~15GB/个塞满盘);默认不绑定任何数据集步数。
  • grad accumulation fail-fastTRAIN_BATCH_SIZE 不能被 MICRO_BATCH_SIZE_PER_GPU × GPUS 整除时直接报错退出,不再整数除法静默截断。
  • RL-init 措辞修正:移除“seeds later GRPO/RLOO/ReMax / 可作为后续 RL 共同初始化”表述;只把 checkpoint 定位为 reproducible SFT baseline / candidate downstream-initialization artifact;仅固定基模。

验证

  • 训练(既有):pers_info 280 样本、LoRA r8/α16、4 epochs=140 steps、seed 42,exit 0(0 OOM,峰值显存 31.3 GiB/32G)
  • 结果(test n=18/stage):base vs SFT-final —— Stage1 Recall@5 0.278→0.444;Stage2 acc 0→0.833;proxy E2E 0→0.389
  • tests:tests/task/ evaluation/ rl/184 passed, 1 skipped
  • bash -n run_baseline.sh / py_compile 通过;grad-accum guard 功能测试(batch=7 → exit 2)通过
  • 未改 prompt/reward/parser/data/parquet schema;proxy_e2e 为 factorized 指标(Stage2 用预构造 gold bundle),true-E2E 见 PR feat(eval): Phase 13.5 classification framework freeze + true end-to-end evaluator #12

说明

  • 阶段内未做 RL、未做超参搜索。
  • 完整实验记录在本地报告 docs/reports/stage-13-sft-baseline-report.md(按仓库约定不入库)。

…ate, bounded checkpoint defaults, grad-accum divisibility guard, RL-init wording
@xianyu9n
xianyu9n merged commit 0ff7d62 into master Aug 19, 2026
3 checks passed
@xianyu9n
xianyu9n deleted the phase13-sft-baseline branch August 19, 2026 19:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant