c5a3b7d0bb
- 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>
26 lines
1.3 KiB
Bash
26 lines
1.3 KiB
Bash
#!/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"
|