20e6d97427
- 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>
39 lines
1.6 KiB
Python
39 lines
1.6 KiB
Python
"""层 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}")
|