| #!/usr/bin/env bash |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| set -euo pipefail |
|
|
| cd "$(dirname "$0")/.." |
| source "$(dirname "$0")/launch_utils.sh" |
|
|
| export DYME_OPSD_MODE="${DYME_OPSD_MODE:-rlsd}" |
| export DYME_OPSD_PROVIDERS="${DYME_OPSD_PROVIDERS:-}" |
| export DYME_OPSD_PRIVILEGE_PROFILE="${DYME_OPSD_PRIVILEGE_PROFILE:-text}" |
| export DYME_TEACHER_MODEL="${DYME_TEACHER_MODEL:-llava-hf/llava-onevision-qwen2-7b-ov-hf}" |
| export DYME_OUTPUT_DIR="${DYME_OUTPUT_DIR:-./outputs/opd-7b-chartqa-ds}" |
|
|
| |
| |
| export ACCELERATE_CONFIG="${ACCELERATE_CONFIG:-default_config_zero2.yaml}" |
| |
| export DYME_TEACHER_DEVICE_MAP="${DYME_TEACHER_DEVICE_MAP:-auto}" |
| export DYME_OPSD_DETAIL_MIN_FREE_GB="${DYME_OPSD_DETAIL_MIN_FREE_GB:-4.0}" |
| export DYME_OPSD_DETAIL_EVERY="${DYME_OPSD_DETAIL_EVERY:-0}" |
| export PYTORCH_CUDA_ALLOC_CONF="${PYTORCH_CUDA_ALLOC_CONF:-expandable_segments:True}" |
| export DYME_GRADIENT_CHECKPOINTING="${DYME_GRADIENT_CHECKPOINTING:-0}" |
| |
|
|
| NUM_PROCESSES="$(detect_num_gpus)" |
| print_launch_plan |
| echo "DeepSpeed ZeRO OPD: ACCELERATE_CONFIG=${ACCELERATE_CONFIG}" |
| echo "Teacher placement: DYME_TEACHER_DEVICE_MAP=${DYME_TEACHER_DEVICE_MAP} (auto colocates under DeepSpeed)" |
| echo "SFT cold-start / warmup: defaults in config/config_rlsd_chartqa.py (sft_cold_start_frac=0.08, etc.)" |
| echo " Optional overrides: DYME_SFT_COLD_START_STEPS, DYME_SFT_COLD_START_FRAC, DYME_MAX_STEPS" |
|
|
| LOG_DIR="${DYME_LOG_DIR:-./outputs/logs}" |
| mkdir -p "${LOG_DIR}" |
| LOG_FILE="${LOG_DIR}/train_opd_7b_ds_$(date +%Y%m%d_%H%M%S).log" |
|
|
| accelerate launch --config_file "${ACCELERATE_CONFIG}" --num_processes "${NUM_PROCESSES}" main.py \ |
| --config config/config_opd_7b_chartqa.py \ |
| --mode rl \ |
| --opsd_enabled \ |
| --opsd_mode "${DYME_OPSD_MODE}" \ |
| --opsd_providers "${DYME_OPSD_PROVIDERS}" \ |
| 2>&1 | tee "${LOG_FILE}" |
|
|