| #!/usr/bin/env bash |
| |
| set -euo pipefail |
|
|
| cd "$(dirname "$0")/.." |
| source "$(dirname "$0")/launch_utils.sh" |
|
|
| export DYME_MAX_STEPS="${DYME_MAX_STEPS:-200}" |
| export DYME_OPSD_MODE="${DYME_OPSD_MODE:-rlsd}" |
| export DYME_OPSD_PROVIDERS="${DYME_OPSD_PROVIDERS:-}" |
| export DYME_OUTPUT_DIR="${DYME_OUTPUT_DIR:-./outputs/opd-7b-chartqa-smoke}" |
| export DYME_MAX_COMPLETION_LENGTH="${DYME_MAX_COMPLETION_LENGTH:-96}" |
| export DYME_TEMPERATURE="${DYME_TEMPERATURE:-0.5}" |
| export DYME_REPETITION_PENALTY="${DYME_REPETITION_PENALTY:-1.5}" |
| export DYME_OPSD_DEGEN_WARMUP_STEPS="${DYME_OPSD_DEGEN_WARMUP_STEPS:-200}" |
| export DYME_SFT_WARMUP_STEPS="${DYME_SFT_WARMUP_STEPS:-500}" |
| export DYME_SFT_WARMUP_SLOTS="${DYME_SFT_WARMUP_SLOTS:-4}" |
| export DYME_SFT_COLD_START_FRAC="${DYME_SFT_COLD_START_FRAC:-0.08}" |
| export DYME_FORMAT_MIN_THINKING="${DYME_FORMAT_MIN_THINKING:-8}" |
|
|
| ACCELERATE_CONFIG="${ACCELERATE_CONFIG:-default_config_zero2.yaml}" |
| NUM_PROCESSES="$(detect_num_gpus)" |
| print_launch_plan |
|
|
| LOG_DIR="${DYME_LOG_DIR:-./outputs/logs}" |
| mkdir -p "${LOG_DIR}" |
| LOG_FILE="${LOG_DIR}/train_opd_7b_smoke_$(date +%Y%m%d_%H%M%S).log" |
|
|
| echo "OPD 7B smoke: max_steps=${DYME_MAX_STEPS}, log=${LOG_FILE}" |
| echo "Success criteria (grep log after run):" |
| echo " degenerate_rate < 0.5" |
| echo " opsd_mask_true / batch > 0.08" |
| echo " advantage_abs_mean > 0" |
| echo " grad_norm > 0" |
| echo " phase/sft_cold_start=1 during first ${DYME_SFT_COLD_START_FRAC} of steps" |
| echo " logits/p_answer_first > 0.8 after cold start" |
|
|
| 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}" |
|
|