# returncode: 0

### 0
"pkill"
"-9"
"sglang"

### 1
"sleep"
"3"

### 2
"ray"
"stop"
"--force"

### 3
"pkill"
"-9"
"ray"

### 4
"pkill"
"-9"
"miles"

### 5
"sleep"
"3"

### 6
"pkill"
"-9"
"ray"

### 7
"pkill"
"-9"
"miles"

### 8
"pkill"
"-9"
"redis"

### 9
"nvidia-smi"
"topo"
"-m"

### 10
"mkdir"
"-p"
"/root/models"
"/root/datasets"

### 11
"hf"
"download"
"Qwen/Qwen3-VL-8B-Instruct"
"--local-dir"
"/root/models/Qwen3-VL-8B-Instruct"

### 12
"hf"
"download"
"--repo-type"
"dataset"
"chenhegu/geo3k_imgurl"
"--local-dir"
"/root/datasets/geo3k_imgurl"

### 13
"python3"
"<REPO_ROOT>/miles/utils/external_utils/model_args_utils.py"
"qwen3-8B"

### 14
"ray"
"start"
"--head"
"--node-ip-address"
"127.0.0.1"
"--num-gpus"
"8"
"--disable-usage-stats"
"--dashboard-host=0.0.0.0"
"--dashboard-port=8265"

### 15
"ray"
"job"
"submit"
"--address=http://127.0.0.1:8265"
"--runtime-env-json={\n  \"env_vars\": {\n    \"PYTHONPATH\": \"/root/Megatron-LM/\",\n    \"CUDA_DEVICE_MAX_CONNECTIONS\": \"1\",\n    \"NCCL_NVLS_ENABLE\": \"0\"\n  }\n}"
"--"
"python3"
"train_async.py"
"--actor-num-nodes"
"1"
"--actor-num-gpus-per-node"
"8"
"--multimodal-keys"
"{\"image\": \"images\"}"
"--swiglu"
"--num-layers"
"36"
"--hidden-size"
"4096"
"--ffn-hidden-size"
"12288"
"--num-attention-heads"
"32"
"--group-query-attention"
"--num-query-groups"
"8"
"--use-rotary-position-embeddings"
"--disable-bias-linear"
"--normalization"
"RMSNorm"
"--norm-epsilon"
"1e-6"
"--rotary-base"
"5000000"
"--vocab-size"
"151936"
"--kv-channels"
"128"
"--qk-layernorm"
"--untie-embeddings-and-output-weights"
"--hf-checkpoint"
"/root/models/Qwen3-VL-8B-Instruct"
"--load"
"/root/models/Qwen3-VL-8B-Instruct"
"--rollout-function-path"
"miles.rollout.sft_rollout.generate_rollout"
"--prompt-data"
"/root/datasets/geo3k_imgurl/train_formatted.parquet"
"--input-key"
"messages"
"--apply-chat-template"
"--rollout-shuffle"
"--num-epoch"
"3000"
"--rollout-batch-size"
"128"
"--global-batch-size"
"128"
"--loss-type"
"sft_loss"
"--calculate-per-token-loss"
"--disable-compute-advantages-and-returns"
"--debug-train-only"
"--optimizer"
"adam"
"--lr"
"1e-5"
"--lr-decay-style"
"cosine"
"--min-lr"
"1e-6"
"--lr-warmup-fraction"
"0.1"
"--weight-decay"
"0.1"
"--adam-beta1"
"0.9"
"--adam-beta2"
"0.95"
"--use-wandb"
"--wandb-project"
"miles-geo3k-vlm-sft"
"--wandb-group"
"qwen3-vl-8b-instruct-megatron"
"--wandb-key"
"frozen-wandb-api-key"
"--disable-wandb-random-suffix"
"--train-backend"
"megatron"
"--tensor-model-parallel-size"
"4"
"--sequence-parallel"
"--pipeline-model-parallel-size"
"1"
"--context-parallel-size"
"1"
"--expert-model-parallel-size"
"1"
"--expert-tensor-parallel-size"
"1"
"--recompute-granularity"
"full"
"--recompute-method"
"uniform"
"--recompute-num-layers"
"1"
"--use-dynamic-batch-size"
"--max-tokens-per-gpu"
"4096"
"--attention-dropout"
"0.0"
"--hidden-dropout"
"0.0"
"--accumulate-allreduce-grads-in-fp32"
"--attention-softmax-in-fp32"
"--attention-backend"
"flash"
"--megatron-to-hf-mode"
"bridge"
