层1/T5: 自包含训练脚本 train_sft.sh + train_sft.py;层 1 代码收口
- train_sft.py: FSDP 环境变量前置块(import 前,DDP 下无害);fail-fast 加载 顺序(数据→tokenizer→模型);首样本自检打印(真 tokenizer 掩码边界肉眼核对); remove_unused_columns=False 等非显然约束逐条注释;sanity 模式 = replace 覆盖 - train_sft.sh: 显式 CUDA_VISIBLE_DEVICES 4 卡、PYTHONUNBUFFERED、HF 镜像/缓存 改道 /data,前置检查清单(含 scp 数据命令) - 本地验证:fail-fast 到 teacher 缓存缺失处显式报错(941/1000,59 条真实命中 反向证明 prompt_key 契约端到端成立) - roadmap 存档点:层 1 代码完成,进入运行阶段 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
# 层 1:SFT 基线训练(远程 gpu-a800-060 专用;本地不跑训练)。
|
||||
#
|
||||
# 用法(tmux 内执行,日志实时可查):
|
||||
# bash scripts/train_sft.sh sanity # 50 步冒烟:看首样本自检 + loss 是否从 ~2-3 下降
|
||||
# bash scripts/train_sft.sh # 正式:1k 子集 1 epoch
|
||||
#
|
||||
# 前置检查清单:
|
||||
# 1. nvidia-smi 确认下方 GPUS 四张卡空闲(只许用 8 卡中的 4 张,严禁自动选卡)
|
||||
# 2. data/ 下已有两个文件(gitignore 不随 git 走,本地 scp 上来):
|
||||
# scp data/dapo-math-17k-unique.parquet data/teacher_completions_dapo1k_minimax-m3.jsonl \
|
||||
# <远程>:/data/zym/ars-opd-rebuild/data/
|
||||
# 3. 代码是最新:git -C /data/zym/ars-opd-rebuild pull
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")/.." # 锚定仓库根:py 内 data/... 相对路径以此为基准
|
||||
|
||||
GPUS=0,1,2,3 # ⚠️ 改这里前先 nvidia-smi
|
||||
MODE=${1:-full}
|
||||
|
||||
export CUDA_VISIBLE_DEVICES=$GPUS
|
||||
export PYTHONUNBUFFERED=1 # 禁止日志缓存(CLAUDE.md §5)
|
||||
export HF_ENDPOINT=${HF_ENDPOINT:-https://hf-mirror.com}
|
||||
export HF_HOME=${HF_HOME:-/data/zym/hf_cache} # 模型缓存落 /data,根分区已满
|
||||
|
||||
torchrun --nproc_per_node=4 --master_port=29571 scripts/train_sft.py "$MODE"
|
||||
Reference in New Issue
Block a user