# 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.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"
"--prompt-data"
"/root/datasets/geo3k_imgurl/train.parquet"
"--input-key"
"problem"
"--label-key"
"answer"
"--apply-chat-template"
"--rollout-shuffle"
"--rm-type"
"math"
"--custom-generate-function-path"
"examples.geo3k_vlm.rollout.generate"
"--num-rollout"
"3000"
"--rollout-batch-size"
"64"
"--n-samples-per-prompt"
"8"
"--rollout-max-response-len"
"4096"
"--rollout-temperature"
"0.8"
"--global-batch-size"
"512"
"--eval-interval"
"20"
"--eval-prompt-data"
"geo3k_imgurl"
"/root/datasets/geo3k_imgurl/test.parquet"
"--n-samples-per-eval-prompt"
"1"
"--eval-max-response-len"
"4096"
"--advantage-estimator"
"grpo"
"--kl-loss-coef"
"0.00"
"--kl-loss-type"
"low_var_kl"
"--kl-coef"
"0.00"
"--entropy-coef"
"0.00"
"--eps-clip"
"0.2"
"--eps-clip-high"
"0.28"
"--optimizer"
"adam"
"--lr"
"1e-6"
"--lr-decay-style"
"constant"
"--weight-decay"
"0.1"
"--adam-beta1"
"0.9"
"--adam-beta2"
"0.98"
"--rollout-num-gpus-per-engine"
"1"
"--sglang-mem-fraction-static"
"0.6"
"--sglang-cuda-graph-bs"
"1"
"2"
"4"
"8"
"16"
"24"
"32"
"40"
"48"
"56"
"64"
"72"
"80"
"88"
"96"
"104"
"112"
"120"
"128"
"136"
"144"
"152"
"160"
"168"
"176"
"184"
"192"
"200"
"208"
"216"
"224"
"232"
"240"
"248"
"256"
"--use-wandb"
"--wandb-project"
"miles-geo3k-vlm"
"--wandb-group"
"qwen3-vl-8b-instruct-megatron"
"--wandb-key"
"frozen-wandb-api-key"
"--disable-wandb-random-suffix"
"--train-backend"
"megatron"
"--load"
"/root/models/Qwen3-VL-8B-Instruct"
"--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"
"--colocate"
