File size: 1,811 Bytes
2847d0b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
DATASET_SOURCE="${DATASET_SOURCE:-/mnt/local_nvme/zoubin/cz/self_forcing_predictor_v4_1000_seed0}"
TRAIN_SOURCE="${TRAIN_SOURCE:-/mnt/local_nvme/zoubin/cz/self_forcing_predictor_v4_training_1000_seed0}"
DATASET_DESTINATION="${DATASET_DESTINATION:-$ROOT_DIR/data/self_forcing_predictor_v4_1000_seed0}"
TRAIN_DESTINATION="${TRAIN_DESTINATION:-$ROOT_DIR/checkpoints/predictor_v4_1000_seed0}"
for source in "$DATASET_SOURCE" "$TRAIN_SOURCE"; do
if [[ ! -d "$source" ]]; then
echo "错误:找不到 NVMe 源目录:$source" >&2
exit 1
fi
done
if [[ ! -f "$DATASET_SOURCE/train_manifest.jsonl" ]]; then
echo "错误:数据构建尚未完成,缺少 train_manifest.jsonl。" >&2
exit 1
fi
if [[ ! -f "$TRAIN_SOURCE/predictor_step_02000.safetensors" ]]; then
echo "错误:训练尚未完成,缺少 predictor_step_02000.safetensors。" >&2
exit 1
fi
mkdir -p "$DATASET_DESTINATION" "$TRAIN_DESTINATION"
echo "同步数据:$DATASET_SOURCE -> $DATASET_DESTINATION"
rsync -a --partial --human-readable --info=stats2 \
"$DATASET_SOURCE/" "$DATASET_DESTINATION/"
echo "同步训练产物:$TRAIN_SOURCE -> $TRAIN_DESTINATION"
rsync -a --partial --human-readable --info=stats2 \
"$TRAIN_SOURCE/" "$TRAIN_DESTINATION/"
dataset_changes="$(
rsync -a --dry-run --itemize-changes \
"$DATASET_SOURCE/" "$DATASET_DESTINATION/" | wc -l
)"
training_changes="$(
rsync -a --dry-run --itemize-changes \
"$TRAIN_SOURCE/" "$TRAIN_DESTINATION/" | wc -l
)"
if (( dataset_changes != 0 || training_changes != 0 )); then
echo "错误:同步后仍存在差异:dataset=$dataset_changes training=$training_changes" >&2
exit 1
fi
echo "NVMe 产物已完整同步回 Self-Forcing 项目。"
|