a0faec0df7
根因:150k 大词表下显存大头是 (B,T,V) logits 链(fp32 ~20G@B=8)与逐层激活, 均正比于 B 而与 0.6B 参数量无关。docs/02 §2.6 旧显存估算勘误入档; train_sft.sh 加 expandable_segments 防碎片。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
27 lines
1.4 KiB
Bash
27 lines
1.4 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 PYTORCH_ALLOC_CONF=expandable_segments:True # 变长序列 batch 易碎片化,按需扩段
|
||
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"
|