model-iteration: runDic 单一可信源 + label-master 逐条调用

- 新增 scripts/resolve_run_ids.sh:从 workflow5/ 解析出 SFT_RUNDIC / EVAL_RUNDIC,禁止 agent 心算 +1
- submit_sft_via_cml.sh 拆成 <SFT_RUNDIC> <EVAL_RUNDIC> [PREV_RUNDIC] 三参,yaml 用 SFT_RUNDIC,cml workflow run 用 EVAL_RUNDIC
- program.md §746 / §5.2 / §1.2 同步约束,并加 R2 落盘多 +1 的踩坑案例
- §4.0.1 Step A.5 / §4.5 label-master 复核改逐条调用(≤8 路并发),禁止批量塞多条 query

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
hupenglong1
2026-05-25 11:42:44 +08:00
parent 362321c460
commit 57f5b60a3e
6 changed files with 606 additions and 74 deletions
@@ -26,7 +26,8 @@ from pathlib import Path
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s")
log = logging.getLogger(__name__)
AI_PLANNING = Path(__file__).resolve().parent / "ai-planning"
CHAT_ROOT = Path(__file__).resolve().parent.parent
AI_PLANNING = CHAT_ROOT / "ai-planning"
TRAIN_SET_DIR = AI_PLANNING / "data" / "train_set"
DATA_TRAIN_DIR = AI_PLANNING / "data_train"
GENERATE_TRAIN_SCRIPT = DATA_TRAIN_DIR / "generate_train.py"
@@ -148,7 +149,7 @@ def run_sft_training(data_dir: str, model_path: str, model_type: str, train_outp
epochs: int = 3, lr: float = 1e-5, max_seq_length: int = 1024,
per_device_batch: int = 1, grad_accum: int = 1):
"""基于 zk_trainer 的 accelerate launch 方式启动 SFT 训练。"""
zk_trainer_dir = str(Path(__file__).resolve().parent / "zk_trainer")
zk_trainer_dir = str(CHAT_ROOT / "zk_trainer")
if not os.path.isdir(zk_trainer_dir):
log.error(f"zk_trainer 目录不存在: {zk_trainer_dir}")
return None