Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
e81cf39
Read verl TransferQueue provenance from the extra_fields record
chowhsu Oct 20, 2026
480f96f
Map Miles convert_to_hf names to checkpoint names in quant hf_slices;…
chowhsu Oct 20, 2026
d62e554
Serve Harbor's codex agent through the records proxy with Qwen3.8
chowhsu Oct 20, 2026
3e6604a
Stage-1 mini rehearsal on Modal: plan, SGLang expert load report, req…
chowhsu Oct 20, 2026
5df375d
s25_g1 driver: print and keep the prep summary
chowhsu Oct 20, 2026
f0bbfd9
Stage-1 plan: sampler.extra_args; mini plan disables SGLang shared-ex…
chowhsu Oct 20, 2026
a875e23
T-G3 harness: Megatron-LM on PYTHONPATH, model_args_utils path, GPU n…
chowhsu Oct 20, 2026
e80d9fe
s25_g1 driver: a failed sampler cancels the running trainer, and the …
chowhsu Oct 20, 2026
e5e8919
Report model calls that hit their token cap on the verl Harbor path
chowhsu Oct 20, 2026
4c05531
Add a CPU check to the Modal records endpoint and fix its import path
chowhsu Oct 20, 2026
0ff31dc
Stage 1: no --rollout-num-gpus on the trainer-only island; check the …
chowhsu Oct 20, 2026
aca8dab
Stage 1: task.data_local for offline nodes; s25_g1 driver exports the…
chowhsu Oct 20, 2026
7314e2b
T-G3 harness: symmetric failure handling in N8.2, logits captured bef…
chowhsu Oct 20, 2026
6f41656
Miles island: glm5_next geometry from config.json; stage 1 trainer re…
chowhsu Oct 20, 2026
80da1a1
s25_g1 driver: logs on container disk, mirrored to the Volume
chowhsu Oct 20, 2026
f483de5
Stage 1: pin the island's AlgorithmSpec hash like the launcher
chowhsu Oct 20, 2026
ab3e172
Stage 1: export RAY_ADDRESS for the island so its env reaches the Ray…
chowhsu Oct 20, 2026
e875afd
T-G3 harness: extra continuous and resume samples for the N7.1d spread
chowhsu Oct 20, 2026
55cd48d
Hand host copies to the requantizer from the Miles adapter; record th…
chowhsu Oct 20, 2026
d44a44b
glm5_next trains from a Megatron torch_dist checkpoint in raw mode
chowhsu Oct 20, 2026
d1fc221
Stage 1: the torch_dist converter takes the model arguments only
chowhsu Oct 20, 2026
db07dc1
Stage 1: run the torch_dist converter with the Megatron checkout on P…
chowhsu Oct 20, 2026
bd81274
s25_g1 driver: convert-only entrypoint (2 cards, no sampler)
chowhsu Oct 20, 2026
40b3536
Merge S25 Modal GPU test fixes (G2, G3, G4)
chowhsu Oct 20, 2026
648f47c
Stage 1: trainer.miles.extra_env; mini plan puts the Megatron checkou…
chowhsu Oct 20, 2026
abf0de2
Trainer-only Miles island publishes without engines
chowhsu Oct 20, 2026
0be12c3
Resume a replaced spot sampler island and allow several samplers per …
chowhsu Oct 20, 2026
79130ce
verl: trainer island over the sample buffer (S25 C2)
chowhsu Oct 20, 2026
39aa81f
Wire the yeto round-cut controller into the verl island; digest the s…
chowhsu Oct 20, 2026
a9fad17
Split the trainer's rounds evenly over several sampler islands
chowhsu Oct 20, 2026
b651fe0
Let synced trainer islands feed sampler islands through merged releases
chowhsu Oct 20, 2026
af2303b
s25_g1 driver: the re-quantizer runs in its own CPU container
chowhsu Oct 20, 2026
bf94fa7
Leave at once on the reclaim marker from a watcher thread
chowhsu Oct 20, 2026
7c21f7f
T-C4 GPU probes: verl SCHEDULED cut + resume chain, Miles stale-maste…
chowhsu Oct 20, 2026
07ec4ca
Driver accepts a publication without members on an engineless pool
chowhsu Oct 20, 2026
9e0ec82
Make the in-flight export check a CutSource class attribute; fix the …
chowhsu Oct 20, 2026
6361010
Re-quantizer accepts the text-model prefix of Miles' raw glm5_next ex…
chowhsu Oct 20, 2026
58c2e32
verl cut: load the trainable state non-strictly (frozen LoRA base wei…
chowhsu Oct 20, 2026
615ebfc
Round cut walks a ChainedOptimizer through its members
chowhsu Oct 20, 2026
6f2a056
Mini plan: capture SGLang CUDA graphs up to batch 16 only
chowhsu Oct 20, 2026
7a25a04
Turn the reclaim signal into the marker inside the sampler island
chowhsu Oct 20, 2026
8e8253e
T-C4 verl probe: fresh container per phase and a Volume reload before it
chowhsu Oct 20, 2026
94b0a60
Add --rl-sampler-spot: spot sampler islands, on-demand trainer
chowhsu Oct 20, 2026
8105fc4
Mini plan: the SGLang flag is --cuda-graph-max-bs-decode
chowhsu Oct 20, 2026
45006c7
verl island: order-independent prompt digest per round; record the fi…
chowhsu Oct 20, 2026
51a6ebf
Cut coverage: dense tensors are covered over the EP ranks of a (tp, pp)
chowhsu Oct 20, 2026
cfc2fb4
s25_g1 driver: every launch starts from an empty run store
chowhsu Oct 20, 2026
2c482b6
Never raise from the sampler's reclaim signal handler
chowhsu Oct 20, 2026
eb99fc1
Merge verl sampler island (C2) into synced-trainers branch (C3)
chowhsu Oct 20, 2026
3eb1780
Synced verl trainer islands feed sampler islands; merged releases ove…
chowhsu Oct 20, 2026
e449334
Register the qwen3_2507 chat template (Qwen3-4B-Instruct-2507) with t…
chowhsu Oct 20, 2026
4de5c78
verl image: add yeto's object-store client (boto3) for s3/oss stores
chowhsu Oct 20, 2026
e4a7740
Records endpoint: model presets (Qwen3-4B-Instruct-2507 for N10.9)
chowhsu Oct 20, 2026
ef6400c
Island keeps the default verify_miles_revision call without --miles-c…
chowhsu Oct 20, 2026
ba86cf0
Merge s25-c1-spot-sampler into s25-integ4
chowhsu Oct 20, 2026
e6a232e
Merge s25-c4-cut-ctl into s25-integ4
chowhsu Oct 20, 2026
ac4f852
verl agentic path: records proxy over verl's rollout client, path-sec…
chowhsu Oct 20, 2026
5f7d529
Agentic outcome: a malformed model reply that ends the agent is a tra…
chowhsu Oct 20, 2026
e44e4ed
G1B: dense word-diversity reward plan and per-release tensor digests
chowhsu Oct 20, 2026
12b7cd7
Miles Harbor path with the records proxy as recorder (N10.9)
chowhsu Oct 20, 2026
f158400
Add the RL capability evaluation suite (tools/eval)
chowhsu Oct 20, 2026
c05b6ca
tools/eval: price A10G containers with their CPU and memory requests
chowhsu Oct 20, 2026
8a9a659
tools/eval: one detached app per verl run; Modal 1.6 call timeouts
chowhsu Oct 20, 2026
78d6327
tools/eval: no image-level PYTHONPATH on the verl image; stop the run…
chowhsu Oct 20, 2026
934e505
tools/eval: check the preflight before claiming the run dir
chowhsu Oct 20, 2026
8dd269f
tools/eval: ship the verl harness functions by value (tools is not in…
chowhsu Oct 20, 2026
2d01736
verl agentic entry: register yeto_grpo lazily so the Ray setup hook i…
chowhsu Oct 20, 2026
4895f1a
tools/eval: Miles launches skip the launcher thread preflight (the sc…
chowhsu Oct 20, 2026
25b418a
verl agentic path: report each sample's weight step range (min/max_gl…
chowhsu Oct 20, 2026
c8efa15
Miles records generate: take the router address from Miles' arguments
chowhsu Oct 20, 2026
8731a0f
codepack: reuse a tree another launch unpacked first instead of failing
chowhsu Oct 20, 2026
7e031aa
tools/eval: E4 counts the Miles buffer reader's passed-over stale gro…
chowhsu Oct 20, 2026
8b2a031
Resume a replaced spot sampler island and allow several samplers per …
chowhsu Oct 20, 2026
c7812a8
Split the trainer's rounds evenly over several sampler islands
chowhsu Oct 20, 2026
8ffc381
Leave at once on the reclaim marker from a watcher thread
chowhsu Oct 20, 2026
e47429a
Turn the reclaim signal into the marker inside the sampler island
chowhsu Oct 20, 2026
944c6ee
Add --rl-sampler-spot: spot sampler islands, on-demand trainer
chowhsu Oct 20, 2026
31af37f
Never raise from the sampler's reclaim signal handler
chowhsu Oct 20, 2026
00064e4
Agentic outcome: a conversation that outgrows the context is a traine…
chowhsu Oct 20, 2026
d9330ea
Nebius spot sampler island: host unit forwards the VM stop, member re…
chowhsu Oct 20, 2026
a4b9962
Resume a replaced engine sampler island; never overwrite a payload
chowhsu Oct 20, 2026
7346fc2
Token-diversity test reward; engine sampler rewards see token ids
chowhsu Oct 20, 2026
e7125c8
G1 driver: wall-clock limits and one log directory per sampler container
chowhsu Oct 20, 2026
bd58b18
Resume a replaced engine sampler island; never overwrite a payload
chowhsu Oct 20, 2026
0e29001
Miles buffer reader tapes passed-over stale groups (rl_buffer_stale_s…
chowhsu Oct 20, 2026
58329f9
Eval E2-verl runs the production engine sampler entry: resume after a…
chowhsu Oct 20, 2026
c34612b
tests: the Miles reader stub reports its stale groups
chowhsu Oct 20, 2026
434435b
eval E2-verl: save the sampler tape when the island leaves (a reclaim…
chowhsu Oct 20, 2026
3e1c833
codepack: unpacked trees get a 2000-01-01 mtime so sky can zip them
chowhsu Oct 20, 2026
3bf6524
Engine server adapters start the server with SIGINT ignored: a cloud …
chowhsu Oct 20, 2026
37c00f6
nebius_reclaim: host unit install works with a remote sky API server
chowhsu Oct 20, 2026
89985b8
codepack: the pack lists its executables; verify restores lost execut…
chowhsu Oct 20, 2026
58e10d4
launcher: the spot sampler env tolerates an island task built without…
chowhsu Oct 20, 2026
d7958c0
Merge s25-c1b: real spot preemption and remote sky API fixes
chowhsu Oct 20, 2026
ae34153
Merge s25-g1c: stage-1 mini rehearsal fixes and G1C
chowhsu Oct 20, 2026
5937baa
Merge s25-n109: agentic RL chain (Harbor TB2.1 on verl and Miles)
chowhsu Oct 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,4 @@ openspec/changes/*/evidence/**/*.pyc
openspec/**/*.jsonl
openspec/**/*.out
openspec/**/*.err
.g1-build/
1 change: 1 addition & 0 deletions examples/stage1/glm53-flash-ppu.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ model:
origin: modal-volume://apex-w4a8-full/source/cecb5eeb9c6b32404a0dd930df81de2c239bdd84
staged: oss://oss-pai-ircyeaqtnfjw11wby2-cn-wulanchabu/yeto/models/apex-flash-1-bf16-cecb5ee/
local_dir: /data/models/apex-flash-1-bf16-cecb5ee
torch_dist: /data/models/apex-flash-1-bf16-cecb5ee_torch_dist # Miles converter output (convert step)
sampler_initial: # round 0: the HF MXFP4 export, not our re-quantizer
repo: yetalabs/apex-flash-1-mxfp4-experts
revision: 70e86a0
Expand Down
148 changes: 148 additions & 0 deletions examples/stage1/glm5next-mini-modal-dense.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
# S25 T-G1B: glm5next-mini-modal.yaml with two changes, so the weights move and the
# chain "trained weights -> re-quantized MXFP4 experts -> sampler" is checked by value:
# task.reward yeto.rl.word_diversity_reward:score (GSM8K is constant 0 on this model,
# so GRPO advantages and grad_norm were 0 in T-G1 run-17)
# trainer.miles.lr 3.0e-4 (1e-6 Adam steps are below one bf16 ulp of most weights,
# so a release hash could stay the same even with a non-zero gradient)
# Everything else (nodes, store, images, sampler, sampling) is the T-G1 plan.
#
# Stage-1 mini rehearsal (S25 T-G1) on Modal H100: the same plan schema and
# the same generated commands as glm53-flash-ppu.yaml; only the nodes
# (Modal containers) and the store (a Modal Volume through the yeto store
# hook, not OSS) differ. Model: Miles' 4-layer GLM5.3-Flash CI checkpoint cut
# to 32 routed experts per MoE layer (tools/probes/s25_g1/make_mini.py).
#
# yeto-stage1 plan examples/stage1/glm5next-mini-modal.yaml
# modal run tools/probes/s25_g1/modal_app.py::... (the driver reads this plan)

run_id: s25-g1-mini
inventory: modal-mini-inventory.yaml
rounds: 3
seed: 17

rendezvous:
modal-trainer: 127.0.0.1
modal-sampler: 127.0.0.1

roles:
trainer: [modal-trainer]
sampler: [modal-sampler]

model:
name: GLM5.3-Flash-4layer-e32
architecture: glm5_next
num_layers: 4 # KDA, DSA, KDA, DSA
first_k_dense_replace: 1
num_experts: 32 # cut from 288 (make_mini.py)
params_b: 5.3 # 推算: 10.5 GB bf16 / 2
expert_params_b: 2.4 # 3 MoE layers x 32 x 3 x 4096 x 2048
bf16_source:
revision: 7fb7883207fe73ea04430ac392f6ffe2b9f936c4 # CharyZeng/GLM-5.3-Flash-4layer, then cut
origin: hf://CharyZeng/GLM-5.3-Flash-4layer@7fb7883207fe73ea04430ac392f6ffe2b9f936c4
staged: modal-volume://yeto-s25-g1-models/glm5next-mini-bf16-7fb7883
local_dir: /data/models/glm5next-mini-bf16-7fb7883
torch_dist: /data/models/glm5next-mini-bf16-7fb7883_torch_dist # Miles converter output (convert step)
sampler_initial: # round 0: our N8.5 converter on the bf16 mini model
repo: local/glm5next-mini-mxfp4-r0-7fb7883
revision: 7fb7883
staged: modal-volume://yeto-s25-g1-models/glm5next-mini-mxfp4-r0-7fb7883
local_dir: /data/models/glm5next-mini-mxfp4-r0-7fb7883

quant:
scheme: mxfp4-g32-rtn
format: mxfp4-pack-quantized
release_dir: policy-releases-mxfp4-g32-rtn
expected_expert_matrices: 288 # 3 MoE layers x 32 experts x (gate, up, down)
frozen_pattern: '^model\.visual\.' # Miles trains the text model only; the vision tower stays the base

store: /data/store/s25-g1
store_backend: modal-volume # the only difference from OSS: the store hook and its Volume
store_volume: yeto-s25-g1-store
store_access:
head: direct

images:
sampler: ghcr.io/michaellchung/yeto-miles-ports@sha256:5b9dc2a9e6e315d73dabfbc6faae428b59cc01aabec6189645a5c8c80d6e3721
trainer: ghcr.io/michaellchung/yeto-miles-ports@sha256:5b9dc2a9e6e315d73dabfbc6faae428b59cc01aabec6189645a5c8c80d6e3721
docker_device_args: [--gpus, all] # unused on Modal; the containers get the GPUs

trainer:
backend: miles
miles:
commit: 1618b5c38db80e17ec928cfa47fe832cb18565fc # s25-distopt, checked out in the image
megatron: radixark/Megatron-LM@a84b105
mbridge: image
workdir: /root/miles
extra_env:
# Megatron's get_model imports megatron.post_training (modelopt check), which the
# image's editable megatron_core install does not expose (Modal run-10)
PYTHONPATH: /root/Megatron-LM:/root/sky_workdir
tp: 1
sequence_parallel: false
pp: 1
pp_layers: [4]
cp: 1
ep: 2
etp: 1
optimizer_offload_fraction: 1.0
memory_estimate: # 推算; `plan` checks them
weights_grads_gib_per_card: 22.9
host_optimizer_gib_per_node: 59.2
transformer_impl: transformer_engine
recompute: full
max_tokens_per_gpu: 8192
lr: 3.0e-4 # T-G1B: see the header
verl:
commit: null
strategy: fsdp2
fsdp_size: 2
ulysses: 1
param_offload: false
optimizer_offload: true
lr: 1.0e-6

sampler:
engine: sglang
engine_version: 0.5.21.dev70+g2fa8801
python: python3
topology: tp1
tp: 1
precision: mxfp4
max_model_len: 4096
port: 30000
moe_runner_backend: triton
hierarchical_cache: false
nextn: false
renames_weight_packed: true # the yeto hook in the image renames (sglang_load_report)
load_report: true # the hook reports loaded expert matrices (post-load check 1)
in_place_reload: false
# SGLang fuses the BF16 shared expert into the routed FusedMoE as expert 32; under the
# MXFP4 MoE method that slot is packed U8, so the BF16 shared weights do not fit (smoke-2)
extra_args: [--disable-shared-experts-fusion, --cuda-graph-max-bs-decode, "16"] # 16 = 4 prompts x 4 samples; capture took 118 s at the default sizes
extra_env:
PYTHONPATH: /root/sky_workdir
checks:
require_fixed_answers: false # a cut 4-layer model cannot answer GSM8K
fixed_max_tokens: 64

sampling:
max_tokens: 512
max_prompt_len: 512
temperature: 1.0
top_p: 1.0
top_k: -1
repetition_penalty: 1.0
frequency_penalty: 0.0
presence_penalty: 0.0

task:
data: zhuzilin/gsm8k
data_revision: 0cbd9f31d91ac21a7613dcbc7fef992adac459ae
reward: yeto.rl.word_diversity_reward:score # T-G1B: see the header
rollout_batch_size: 4
n_samples_per_prompt: 4
prompts_jsonl: /data/models/datasets/gsm8k-0cbd9f3/train.jsonl
data_local: /data/models/datasets/gsm8k-0cbd9f3/train.jsonl # the same rows for the trainer (offline nodes)
input_key: messages
label_key: label
prompt_format: chat
154 changes: 154 additions & 0 deletions examples/stage1/glm5next-mini-modal-g1c.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
# S25 T-G1C: glm5next-mini-modal-dense.yaml (T-G1B) with the reward and lr changed again:
# task.reward yeto.rl.token_diversity_reward:score (the word reward was gamed in g1b-1:
# one 512-token word scored 1.0 for every sample, round 2 had grad_norm 0)
# trainer.miles.lr 1.0e-4 (3e-4 drove the collapse in two steps; 1e-4 Adam steps are
# still about one bf16 ulp of a 0.02 weight, so releases still change)
#
# T-G1B: glm5next-mini-modal.yaml with two changes, so the weights move and the
# chain "trained weights -> re-quantized MXFP4 experts -> sampler" is checked by value:
# task.reward yeto.rl.word_diversity_reward:score (GSM8K is constant 0 on this model,
# so GRPO advantages and grad_norm were 0 in T-G1 run-17)
# trainer.miles.lr 3.0e-4 (1e-6 Adam steps are below one bf16 ulp of most weights,
# so a release hash could stay the same even with a non-zero gradient)
# Everything else (nodes, store, images, sampler, sampling) is the T-G1 plan.
#
# Stage-1 mini rehearsal (S25 T-G1) on Modal H100: the same plan schema and
# the same generated commands as glm53-flash-ppu.yaml; only the nodes
# (Modal containers) and the store (a Modal Volume through the yeto store
# hook, not OSS) differ. Model: Miles' 4-layer GLM5.3-Flash CI checkpoint cut
# to 32 routed experts per MoE layer (tools/probes/s25_g1/make_mini.py).
#
# yeto-stage1 plan examples/stage1/glm5next-mini-modal.yaml
# modal run tools/probes/s25_g1/modal_app.py::... (the driver reads this plan)

run_id: s25-g1-mini
inventory: modal-mini-inventory.yaml
rounds: 3
seed: 17

rendezvous:
modal-trainer: 127.0.0.1
modal-sampler: 127.0.0.1

roles:
trainer: [modal-trainer]
sampler: [modal-sampler]

model:
name: GLM5.3-Flash-4layer-e32
architecture: glm5_next
num_layers: 4 # KDA, DSA, KDA, DSA
first_k_dense_replace: 1
num_experts: 32 # cut from 288 (make_mini.py)
params_b: 5.3 # 推算: 10.5 GB bf16 / 2
expert_params_b: 2.4 # 3 MoE layers x 32 x 3 x 4096 x 2048
bf16_source:
revision: 7fb7883207fe73ea04430ac392f6ffe2b9f936c4 # CharyZeng/GLM-5.3-Flash-4layer, then cut
origin: hf://CharyZeng/GLM-5.3-Flash-4layer@7fb7883207fe73ea04430ac392f6ffe2b9f936c4
staged: modal-volume://yeto-s25-g1-models/glm5next-mini-bf16-7fb7883
local_dir: /data/models/glm5next-mini-bf16-7fb7883
torch_dist: /data/models/glm5next-mini-bf16-7fb7883_torch_dist # Miles converter output (convert step)
sampler_initial: # round 0: our N8.5 converter on the bf16 mini model
repo: local/glm5next-mini-mxfp4-r0-7fb7883
revision: 7fb7883
staged: modal-volume://yeto-s25-g1-models/glm5next-mini-mxfp4-r0-7fb7883
local_dir: /data/models/glm5next-mini-mxfp4-r0-7fb7883

quant:
scheme: mxfp4-g32-rtn
format: mxfp4-pack-quantized
release_dir: policy-releases-mxfp4-g32-rtn
expected_expert_matrices: 288 # 3 MoE layers x 32 experts x (gate, up, down)
frozen_pattern: '^model\.visual\.' # Miles trains the text model only; the vision tower stays the base

store: /data/store/s25-g1
store_backend: modal-volume # the only difference from OSS: the store hook and its Volume
store_volume: yeto-s25-g1-store
store_access:
head: direct

images:
sampler: ghcr.io/michaellchung/yeto-miles-ports@sha256:5b9dc2a9e6e315d73dabfbc6faae428b59cc01aabec6189645a5c8c80d6e3721
trainer: ghcr.io/michaellchung/yeto-miles-ports@sha256:5b9dc2a9e6e315d73dabfbc6faae428b59cc01aabec6189645a5c8c80d6e3721
docker_device_args: [--gpus, all] # unused on Modal; the containers get the GPUs

trainer:
backend: miles
miles:
commit: 1618b5c38db80e17ec928cfa47fe832cb18565fc # s25-distopt, checked out in the image
megatron: radixark/Megatron-LM@a84b105
mbridge: image
workdir: /root/miles
extra_env:
# Megatron's get_model imports megatron.post_training (modelopt check), which the
# image's editable megatron_core install does not expose (Modal run-10)
PYTHONPATH: /root/Megatron-LM:/root/sky_workdir
tp: 1
sequence_parallel: false
pp: 1
pp_layers: [4]
cp: 1
ep: 2
etp: 1
optimizer_offload_fraction: 1.0
memory_estimate: # 推算; `plan` checks them
weights_grads_gib_per_card: 22.9
host_optimizer_gib_per_node: 59.2
transformer_impl: transformer_engine
recompute: full
max_tokens_per_gpu: 8192
lr: 1.0e-4 # T-G1C: see the header
verl:
commit: null
strategy: fsdp2
fsdp_size: 2
ulysses: 1
param_offload: false
optimizer_offload: true
lr: 1.0e-6

sampler:
engine: sglang
engine_version: 0.5.21.dev70+g2fa8801
python: python3
topology: tp1
tp: 1
precision: mxfp4
max_model_len: 4096
port: 30000
moe_runner_backend: triton
hierarchical_cache: false
nextn: false
renames_weight_packed: true # the yeto hook in the image renames (sglang_load_report)
load_report: true # the hook reports loaded expert matrices (post-load check 1)
in_place_reload: false
# SGLang fuses the BF16 shared expert into the routed FusedMoE as expert 32; under the
# MXFP4 MoE method that slot is packed U8, so the BF16 shared weights do not fit (smoke-2)
extra_args: [--disable-shared-experts-fusion, --cuda-graph-max-bs-decode, "16"] # 16 = 4 prompts x 4 samples; capture took 118 s at the default sizes
extra_env:
PYTHONPATH: /root/sky_workdir
checks:
require_fixed_answers: false # a cut 4-layer model cannot answer GSM8K
fixed_max_tokens: 64

sampling:
max_tokens: 512
max_prompt_len: 512
temperature: 1.0
top_p: 1.0
top_k: -1
repetition_penalty: 1.0
frequency_penalty: 0.0
presence_penalty: 0.0

task:
data: zhuzilin/gsm8k
data_revision: 0cbd9f31d91ac21a7613dcbc7fef992adac459ae
reward: yeto.rl.token_diversity_reward:score # T-G1C: see the header
rollout_batch_size: 4
n_samples_per_prompt: 4
prompts_jsonl: /data/models/datasets/gsm8k-0cbd9f3/train.jsonl
data_local: /data/models/datasets/gsm8k-0cbd9f3/train.jsonl # the same rows for the trainer (offline nodes)
input_key: messages
label_key: label
prompt_format: chat
Loading
Loading