### 0
mkdir -p /root/models /root/datasets

### 1
hf download lmsys/gpt-oss-20b-bf16
  --local-dir /root/models/gpt-oss-20b-bf16

### 2
hf download
  --repo-type dataset zhuzilin/dapo-math-17k
  --local-dir /root/datasets/dapo-math-17k

### 3
pkill -9 sglang; sleep 3; ray stop
  --force; pkill -9 ray; pkill -9 miles; sleep 3; pkill -9 ray; pkill -9 miles; pkill -9 redis; true; 

### 4
export PYTHONUNBUFFERED=1 && ray start
  --head
  --node-ip-address 127.0.0.1
  --num-gpus 8
  --disable-usage-stats

### 5
export no_proxy=127.0.0.1 && export PYTHONUNBUFFERED=1 && ray job submit
  --address="http://127.0.0.1:8265"
  --runtime-env-json='{"env_vars": {"PYTHONUNBUFFERED": "1", "CUDA_DEVICE_MAX_CONNECTIONS": "1", "NCCL_NVLS_ENABLE": "0", "no_proxy": "127.0.0.1,127.0.0.1", "MASTER_ADDR": "127.0.0.1", "PYTHONPATH": "<REPO_ROOT>:/root/Megatron-LM:/frozen/pythonpath"}}'
  -- python3 <REPO_ROOT>/train.py
  --num-layers 24
  --hidden-size 2880
  --ffn-hidden-size 2880
  --num-attention-heads 64
  --group-query-attention
  --num-query-groups 8
  --kv-channels 64
  --use-rotary-position-embeddings
  --rotary-percent 1.0
  --rotary-base 150000
  --max-position-embeddings 131072
  --normalization RMSNorm
  --norm-epsilon 1e-5
  --swiglu
  --untie-embeddings-and-output-weights
  --vocab-size 201088
  --softmax-type learnable
  --window-size 128,0
  --window-attn-skip-freq 2
  --no-masked-softmax-fusion
  --no-rope-fusion
  --num-experts 32
  --moe-router-topk 4
  --moe-aux-loss-coeff 0.0
  --moe-token-dispatcher-type alltoall
  --moe-router-dtype fp32
  --moe-grouped-gemm
  --hf-checkpoint /root/models/gpt-oss-20b-bf16
  --megatron-to-hf-mode bridge 
  --lora-rank 32
  --lora-alpha 32
  --lora-dropout 0.0
  --target-modules "gate_proj,up_proj,down_proj"
  --no-sglang-lora-use-virtual-experts
  --lora-base-cpu-backup 
  --prompt-data /root/datasets/dapo-math-17k/dapo-math-17k.jsonl
  --input-key prompt
  --label-key label
  --apply-chat-template
  --rollout-shuffle
  --balance-data
  --rm-type math
  --num-rollout 20
  --rollout-batch-size 8
  --n-samples-per-prompt 8
  --rollout-max-response-len 4096
  --rollout-temperature 1
  --global-batch-size 64 
  --optimizer adam
  --lr 1e-05
  --lr-decay-style constant
  --weight-decay 0.1
  --adam-beta1 0.9
  --adam-beta2 0.98 
  --advantage-estimator grpo
  --entropy-coef 0.00
  --eps-clip 0.2
  --eps-clip-high 0.28 
  --use-wandb
  --wandb-project miles-run_gpt_oss_20b_lora
  --wandb-group 260101-000000-000
  --wandb-key 'frozen-wandb-api-key'
  --disable-wandb-random-suffix 
  --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
  --micro-batch-size 1
  --max-tokens-per-gpu 4096 
  --rollout-num-gpus-per-engine 4
  --sglang-mem-fraction-static 0.2
  --sglang-dtype bfloat16
  --sglang-decode-log-interval 1000
  --sglang-max-lora-rank 32
  --sglang-lora-backend triton
  --sglang-moe-runner-backend triton
  --sglang-attention-backend triton 
  --train-backend megatron
  --attention-dropout 0.0
  --hidden-dropout 0.0
  --qkv-format bshd
  --attention-backend unfused
  --actor-num-nodes 1
  --actor-num-gpus-per-node 8
  --num-gpus-per-node 8
  --colocate   
