层1/T2: teacher.py 批量生成 + sha256 JSONL 缓存;teacher 改定 MiniMax-M3
- teacher.py: 通用 OpenAI 兼容客户端(配置驱动 base_url,替代 OpenRouter 专用); 缓存即断点(逐条落盘+flush,重跑自动续传);单条失败先落盘其余、结束汇总显式报错; M3 思考段 <think>...</think> 入库前剥离(只剥开头一段) - configs.py: 新增 TeacherGenConfig(采样参数显式化;连接三元组走 .env) - scripts/generate_teacher_completions.py: 自包含生成脚本(本地跑,与训练侧 同 seed 同子集约束已注明) - teacher 决策变更同步:.env.example / docs/00 关键设定与存档点 / docs/02 - tests/test_teacher.py: 10 个单测(假客户端注入),含与 attach 的端到端契约闭环 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
"""层 1:为 DAPO 1k 子集生成 teacher(MiniMax-M3)解答缓存。
|
||||
|
||||
自包含实验脚本:全部参数写死在此,零参数复现。在**本地**运行(纯 API 调用,
|
||||
不需要 GPU;本机可直连自建网关):
|
||||
|
||||
conda activate ars-opd
|
||||
python -u scripts/generate_teacher_completions.py
|
||||
|
||||
前置:
|
||||
1. .env 已填 TEACHER_API_BASE / TEACHER_API_KEY / TEACHER_MODEL;
|
||||
2. DAPO parquet 已下载到 DATASET_PATH(见 docs/02 §4)。
|
||||
|
||||
中断安全:缓存逐条落盘,重跑本脚本自动跳过已完成条目(断点续传)。
|
||||
"""
|
||||
|
||||
from ars_opd.configs import SFTConfig, TeacherGenConfig
|
||||
from ars_opd.data import load_sft_dataset
|
||||
from ars_opd.teacher import TeacherClient, generate_completions
|
||||
|
||||
# 非显然约束:这里的 dataset/subset_size/seed 必须与 T5 训练脚本完全一致——
|
||||
# 两侧各自走"加载→归一→抽子集",seed 相同才是同一批题(data.py 有详注)
|
||||
DATASET_PATH = "data/dapo-math-17k.parquet"
|
||||
CACHE_PATH = "data/teacher_completions_dapo1k_minimax-m3.jsonl"
|
||||
|
||||
sft_cfg = SFTConfig(
|
||||
dataset_path=DATASET_PATH,
|
||||
output_dir="outputs/_unused", # 本脚本不训练,仅复用数据管线配置
|
||||
subset_size=1000,
|
||||
seed=42,
|
||||
# teacher_completions_path 留空:此刻缓存尚不存在,取的就是 prompt-only 子集
|
||||
)
|
||||
|
||||
dataset = load_sft_dataset(sft_cfg)
|
||||
prompts = [row["messages"] for row in dataset]
|
||||
|
||||
teacher = TeacherClient(TeacherGenConfig()) # 采样参数全用 configs.py 的显式默认
|
||||
generate_completions(prompts, CACHE_PATH, teacher)
|
||||
print(f"完成。缓存文件:{CACHE_PATH}")
|
||||
Reference in New Issue
Block a user