lsnu commited on
Commit
0bb2cf8
·
verified ·
1 Parent(s): 422ae16

Upload training and eval scripts

Browse files
openpi/scripts/run_twin_dual_push_128_packed_5k.sh ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
5
+ VENV="$ROOT/.venv/bin/activate"
6
+ RUN_LOG_DIR="/workspace/run_logs"
7
+ mkdir -p "$RUN_LOG_DIR"
8
+
9
+ export HF_HOME=/workspace/.hf
10
+ export HF_HUB_CACHE=/workspace/.hf/hub
11
+ export HF_DATASETS_CACHE=/workspace/.hf/datasets
12
+ export HUGGINGFACE_HUB_CACHE=/workspace/.hf/hub
13
+ export XDG_CACHE_HOME=/workspace/.cache
14
+ export OPENPI_LEROBOT_HOME=/workspace/lerobot
15
+ export OPENPI_TORCH_COMPILE_SAMPLE_ACTIONS=0
16
+ export TOKENIZERS_PARALLELISM=false
17
+ export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
18
+
19
+ cd "$ROOT"
20
+ source "$VENV"
21
+
22
+ BASELINE_CONFIG="pi05_twin_dual_push_128_packed_baseline_pytorch_5k"
23
+ PARALLEL_CONFIG="pi05_twin_dual_push_128_packed_parallel_pytorch_5k"
24
+ BASELINE_EXP="dual_push_128_packed_baseline_5k"
25
+ PARALLEL_EXP="dual_push_128_packed_parallel_5k"
26
+ VAL_REPO="lsnu/twin_dual_push_128_val"
27
+ INTERMEDIATE_VAL_BATCHES=50
28
+ FINAL_VAL_BATCHES=100
29
+ SAMPLE_VAL_BATCHES=16
30
+ SAMPLE_NUM_STEPS="4,10"
31
+ RUN_WARMSTART_CHECK="${RUN_WARMSTART_CHECK:-0}"
32
+
33
+ BASELINE_CKPT_ROOT="$ROOT/checkpoints/$BASELINE_CONFIG/$BASELINE_EXP"
34
+ PARALLEL_CKPT_ROOT="$ROOT/checkpoints/$PARALLEL_CONFIG/$PARALLEL_EXP"
35
+
36
+ BASELINE_LOG="$RUN_LOG_DIR/${BASELINE_EXP}.log"
37
+ PARALLEL_LOG="$RUN_LOG_DIR/${PARALLEL_EXP}.log"
38
+ WARMSTART_LOG="$RUN_LOG_DIR/warmstart_dual_push_128_5k.log"
39
+
40
+ wait_for_checkpoint_dir() {
41
+ local ckpt_dir="$1"
42
+ while [[ ! -d "$ckpt_dir" ]]; do
43
+ echo "[$(date -u '+%Y-%m-%d %H:%M:%S UTC')] waiting for checkpoint dir: $ckpt_dir"
44
+ sleep 30
45
+ done
46
+ }
47
+
48
+ run_eval() {
49
+ local config_name="$1"
50
+ local ckpt_dir="$2"
51
+ local num_batches="$3"
52
+ local log_path="$4"
53
+ echo "[$(date -u '+%Y-%m-%d %H:%M:%S UTC')] eval start config=$config_name ckpt=$ckpt_dir batches=$num_batches"
54
+ python scripts/eval_twin_val_loss_pytorch.py \
55
+ --config_name "$config_name" \
56
+ --checkpoint_dir "$ckpt_dir" \
57
+ --repo_id "$VAL_REPO" \
58
+ --num_batches "$num_batches" \
59
+ --num_workers 0 \
60
+ --sample_num_batches "$SAMPLE_VAL_BATCHES" \
61
+ --sample_num_steps "$SAMPLE_NUM_STEPS" \
62
+ >"$log_path" 2>&1
63
+ echo "[$(date -u '+%Y-%m-%d %H:%M:%S UTC')] eval done log=$log_path"
64
+ }
65
+
66
+ run_train_and_evals() {
67
+ local config_name="$1"
68
+ local exp_name="$2"
69
+ local ckpt_root="$3"
70
+ local train_log="$4"
71
+
72
+ echo "[$(date -u '+%Y-%m-%d %H:%M:%S UTC')] train start config=$config_name exp=$exp_name"
73
+ torchrun --standalone --nproc_per_node=4 scripts/train_pytorch.py \
74
+ "$config_name" \
75
+ --exp_name "$exp_name" \
76
+ --overwrite \
77
+ >"$train_log" 2>&1
78
+ echo "[$(date -u '+%Y-%m-%d %H:%M:%S UTC')] train done config=$config_name exp=$exp_name"
79
+
80
+ for step in 1000 2000 5000; do
81
+ wait_for_checkpoint_dir "$ckpt_root/$step"
82
+ local num_batches="$INTERMEDIATE_VAL_BATCHES"
83
+ if [[ "$step" == "5000" ]]; then
84
+ num_batches="$FINAL_VAL_BATCHES"
85
+ fi
86
+ run_eval \
87
+ "$config_name" \
88
+ "$ckpt_root/$step" \
89
+ "$num_batches" \
90
+ "$RUN_LOG_DIR/${exp_name}_val_${step}.log"
91
+ done
92
+ }
93
+
94
+ echo "[$(date -u '+%Y-%m-%d %H:%M:%S UTC')] packed dual-push 128 5k runner started"
95
+ if [[ "$RUN_WARMSTART_CHECK" == "1" ]]; then
96
+ python -u scripts/check_parallel_warmstart_equivalence.py \
97
+ --baseline_config_name "$BASELINE_CONFIG" \
98
+ --parallel_config_name "$PARALLEL_CONFIG" \
99
+ --repo_id "lsnu/twin_dual_push_128_train" \
100
+ --batch_size 1 \
101
+ >"$WARMSTART_LOG" 2>&1
102
+ echo "[$(date -u '+%Y-%m-%d %H:%M:%S UTC')] warm-start equivalence check logged to $WARMSTART_LOG"
103
+ else
104
+ echo "[$(date -u '+%Y-%m-%d %H:%M:%S UTC')] skipping warm-start equivalence gate (RUN_WARMSTART_CHECK=$RUN_WARMSTART_CHECK)"
105
+ fi
106
+
107
+ run_train_and_evals "$BASELINE_CONFIG" "$BASELINE_EXP" "$BASELINE_CKPT_ROOT" "$BASELINE_LOG"
108
+ run_train_and_evals "$PARALLEL_CONFIG" "$PARALLEL_EXP" "$PARALLEL_CKPT_ROOT" "$PARALLEL_LOG"
109
+
110
+ echo "[$(date -u '+%Y-%m-%d %H:%M:%S UTC')] packed dual-push 5k runner finished successfully"