vla / scripts /slurm /phase_b_generate_12tasks.sbatch
anhtld's picture
Initial commit: DoVLA-CIL codebase (h=16 breakthrough) (part 2)
20c251e verified
Raw
History Blame Contribute Delete
3.03 kB
#!/bin/bash
#SBATCH --job-name=dovla_12task_gen
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=16
#SBATCH --gres=gpu:1
#SBATCH --mem=64000M
#SBATCH --time=72:00:00
#SBATCH --output=logs/phase_b_12task_gen_%j.out
#SBATCH --error=logs/phase_b_12task_gen_%j.err
set -euo pipefail
# Phase B Option 1: Generate 12-task ManiSkill collection
# Fastest option - uses existing infrastructure
PROJECT_DIR="${PROJECT_DIR:-$PWD}"
cd "$PROJECT_DIR"
source .venv/bin/activate
OUT_DIR="/scratch/$USER/dovla/experiments/phase_b_12task_collection"
K=16
STATE_BATCH_SIZE=16
# 12 tasks: 6 existing + 6 new
declare -A TASK_GROUPS=(
# Original 6
["PickCube-v1"]=800
["PushCube-v1"]=800
["PullCube-v1"]=600
["StackCube-v1"]=600
["LiftPegUpright-v1"]=600
["PegInsertionSide-v1"]=600
# New 6 (TODO: ensure demos exist)
["TurnFaucet-v1"]=500
["OpenDrawer-v1"]=500
["CloseDrawer-v1"]=500
["PlugCharger-v1"]=400
["HangMug-v1"]=400
["PourWater-v1"]=400
)
mkdir -p "$OUT_DIR" logs
echo "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "="
echo "Phase B Option 1: 12-Task ManiSkill Collection"
echo "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "="
echo ""
echo "Target: 6,200 groups, 99,200 records (K=$K)"
echo "Strategy: Expand existing ManiSkill tasks"
echo ""
# Check if this is just a planning run
if [ "${DRY_RUN:-0}" = "1" ]; then
echo "DRY RUN: Would generate 12 tasks"
for TASK in "${!TASK_GROUPS[@]}"; do
echo " $TASK: ${TASK_GROUPS[$TASK]} groups"
done
exit 0
fi
# Generate each task
for TASK in "${!TASK_GROUPS[@]}"; do
NUM_GROUPS="${TASK_GROUPS[$TASK]}"
# Check if already generated
if [ -d "$OUT_DIR/${TASK}_k${K}_n${NUM_GROUPS}/merged" ]; then
echo "✓ $TASK already exists, skipping"
continue
fi
echo "Generating $TASK: $NUM_GROUPS groups..."
# Use existing generation script
python scripts/generate_maniskill_lattice.py \
--env-id "$TASK" \
--control-mode pd_ee_delta_pose \
--out "$OUT_DIR/${TASK}_k${K}_n${NUM_GROUPS}" \
--num-groups "$NUM_GROUPS" \
--k "$K" \
--state-batch-size "$STATE_BATCH_SIZE" \
--seed 42 \
--pre-success-only \
--use-official-demos || {
echo "⚠️ $TASK failed (demo might not exist)"
continue
}
echo "✅ $TASK complete"
echo ""
done
echo "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "="
echo "Merging into unified 12-task collection"
echo "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" "="
python scripts/make_cil_collection.py \
--source-dirs "$OUT_DIR"/*/merged \
--out "$OUT_DIR/merged_12tasks" \
--name "phase_b_12task_collection"
echo ""
echo "✅ Phase B Option 1 complete: 12-task collection ready"
echo " Location: $OUT_DIR/merged_12tasks"
echo ""
echo "Next: Train on 12 tasks"
echo " sbatch scripts/slurm/phase_b_train_12tasks.sbatch"