Files
ars-opd-rebuild/scripts/generate_teacher_completions.py
T
iomgaa 42a4349e69 层1/T2: 生成脚本接入本地已有的 DAPO 去重版 parquet(17917 行),补试跑说明
数据管线已用真实数据验证(加载→归一→seed 抽子集,5 条无报错)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 08:11:01 -04:00

44 lines
2.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""层 1:为 DAPO 1k 子集生成 teacherMiniMax-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-unique.parquet" # DAPO 官方去重版,17917 行
CACHE_PATH = "data/teacher_completions_dapo1k_minimax-m3.jsonl"
# 试跑说明:首次建议把下面 subset_size 临时改成 5,跑通并人工抽查缓存里的解答
# 质量(think 是否剥净、格式是否正常)后再改回 1000 重跑。放心改:subset 是对
# 同一 seed 的洗牌序列取前缀,前 5 条与前 1000 条的头 5 条完全相同,试跑写入的
# 缓存在正式跑时全部命中,一分钱不浪费。
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}")