### 0
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; 

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

### 2
nvidia-smi topo -m 2>/dev/null | grep -o 'NV[0-9][0-9]*' | wc -l

### 3
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", "PYTORCH_CUDA_ALLOC_CONF": "expandable_segments:True", "PYTHONPATH": "<REPO_ROOT>:/root/Megatron-LM:/frozen/pythonpath"}}'
  -- python3 <REPO_ROOT>/train_async.py
  --swiglu
  --num-layers 36
  --hidden-size 2560
  --ffn-hidden-size 9728
  --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 1000000
  --vocab-size 151936
  --kv-channels 128
  --qk-layernorm
  --hf-checkpoint /root/models/Qwen3-4B-Base
  --ref-load /root/models/Qwen3-4B-Base_torch_dist
  --load /root/shared_data/checkpoints
  --save /root/shared_data/checkpoints
  --save-interval 1000 
  --rollout-function-path miles.rollout.sft_rollout.generate_rollout
  --prompt-data /root/datasets/openhermes2_5.parquet
  --input-key messages
  --rollout-shuffle
  --num-epoch 3
  --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-run_qwen3_sft
  --wandb-group 260101-000000-000
  --wandb-key 'frozen-wandb-api-key'
  --disable-wandb-random-suffix 
  --tensor-model-parallel-size 1
  --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 9216 
  --attention-dropout 0.0
  --hidden-dropout 0.0
  --accumulate-allreduce-grads-in-fp32
  --attention-softmax-in-fp32
  --attention-backend flash
  --actor-num-nodes 1
  --actor-num-gpus-per-node 8
  --num-gpus-per-node 8   
  --deploy-component all
