[ci, tests] test: add MiniMax H3 T2VA FlowGRPO GPU smoke - #447
Conversation
4656f41 to
1fd87d2
Compare
1fd87d2 to
5388775
Compare
ccbdea7 to
4030961
Compare
4030961 to
f21b910
Compare
Replace the TinyRandom DiffusionNFT smoke with a unified FlowGRPO runner that performs one T2VA and one first-frame-conditioned FL2VA actor update. The runner builds its checkpoint and both synthetic datasets on demand, exercising the reverse-SDE rollout, trajectory log-probabilities, advantage, and FlowGRPO loss paths without external reward weights. Use main's resolved Diffusers 0.40 contract rather than overriding it in the GPU preparation action. Pin the public tiny source snapshot and fetch it from the canonical Hub endpoint so the smoke is not blocked by the workflow-wide mirror metadata failure. AI assistance (pi coding agent) was used for this change. Co-authored-by: pi coding agent Signed-off-by: NancyFyong <2742092809@qq.com>
Expose the tile-grid attributes required by the current native MiniMax H3 video-VAE adapter before it invokes the tiny component's decoder. Bump the tiny checkpoint format so CI rebuilds cached checkpoints with that contract. AI assistance (pi coding agent) was used for this change. Co-authored-by: pi coding agent Signed-off-by: NancyFyong <2742092809@qq.com>
Keep the TinyRandom FlowGRPO regression within the diffusion smoke time budget by exercising only the T2VA path. Remove the unused FL2VA data helper and task dispatch while retaining rollout, log-probability, reward, advantage, and actor-update coverage. AI assistance (pi coding agent) was used for this change. Co-authored-by: pi coding agent Signed-off-by: NancyFyong <2742092809@qq.com>
080e165 to
ab5715e
Compare
Keep the TinyRandom runner and checkpoint usable for targeted T2VA, FL2VA, and Ref2VA validation while explicitly selecting only T2VA in the registered GPU smoke. This preserves reusable task coverage without extending the CI runtime. AI assistance (pi coding agent) was used for this change. Co-authored-by: pi coding agent Signed-off-by: NancyFyong <2742092809@qq.com>
Combine the T2VA, FL2VA, and Ref2VA parquet generators in one task-aware helper while preserving their schemas and deterministic image bytes. Update the runner and GPU-smoke selector to use the consolidated module. AI assistance (pi coding agent) was used for this change. Co-authored-by: pi coding agent Signed-off-by: NancyFyong <2742092809@qq.com>
|
While validating the TinyRandom builder, I confirmed that this is required by the MiniMax H3 integration in the currently pinned vLLM-Omni commit (
The encoder's actual layer construction remains config-driven and uses: self.num_layers = min(config.num_hidden_layers, selected_layer)Therefore this PR preserves the required interface ( |
Build the tiny checkpoint with the pinned source Qwen3-VL dimensions and scope a config-driven vLLM-Omni compatibility patch to the special E2E subprocesses. This removes production-sized 5120-wide test scaffolding without modifying the installed runtime. AI assistance (pi coding agent) was used for this change. Co-authored-by: pi coding agent <noreply@pi.dev> Signed-off-by: NancyFyong <2742092809@qq.com>
|
Hi,@wtomin , can you check this pr when you have time? Thank you! |
wtomin
left a comment
There was a problem hiding this comment.
Nice job! It takes much less time now.
Summary
Add a self-contained TinyRandom MiniMax H3 FlowGRPO runner supporting targeted
T2VA, FL2VA, and Ref2VA one-step actor-update validation.
The registered four-GPU
ci-e2e-diffusiontest explicitly invokes--task t2va, so CI exercises only T2VA and stays within its time budget.FL2VA, Ref2VA, and
--task allremain available for targeted manual validationwithout adding CI runtime.
The runner exercises:
The format-v5 checkpoint builder creates self-contained
FL2VA/andRef2VA/rollout partitions plus the shared Diffusers actor transformer. It requires
neither a production MiniMax checkpoint nor external reward-model weights.
Tiny text interface
The builder reads Qwen3-VL dimensions from the pinned TinyRandom source config
instead of expanding the text interface to the production width. The generated
checkpoint uses a 32-wide, 4-attention-head, 2-KV-head, one-layer text model,
and both rollout and actor DiTs use
text_dim=32. This reduces the generatedcheckpoint from about 24 MB to 2.7 MB.
Pinned vLLM-Omni currently validates MiniMax H3 text output against a fixed
production width of 5120. The runner therefore injects a test-local
sitecustomizeimport hook into only its trainer and inherited Ray workerprocesses. The hook reads the expected width from the generated checkpoint
config and changes that validation constant at module load. It does not modify
or install files into vLLM-Omni. The encoder's attention shapes already come
from the Qwen3-VL config.
Compatibility and dependencies
This work relies on merged MiniMax H3 support, including:
The PR contains only TinyRandom checkpoint/data/reward helpers, the multi-task
manual runner, and T2VA-only GPU-smoke registration. It does not duplicate
production adapter code. An open-PR search found no duplicate MiniMax H3
TinyRandom FlowGRPO GPU smoke.
The tiny source snapshot is pinned to
9018dbdcdb02a427905537035e8431c4a738d7c0and fetched from the canonicalHugging Face endpoint, independently of the workflow-wide mirror setting.
CI time budget
The registered command remains T2VA-only:
python3 tests/special_e2e/run_flowgrpo_minimax_h3_tiny.py --task t2vaA prior GitHub TinyRandom T2VA run, including first-time checkpoint
construction, took about 158 seconds. FL2VA and Ref2VA are intentionally not
added to the registered CI command.
Tests
Fresh four-GPU manual E2E validation with
--task all, one training step pertask:
training/global_step=1, 16 MP4s and 16 JSONL rows;training/global_step=1, 16 MP4s and 16 JSONL rows;training/global_step=1, 4 MP4s and 4 JSONL rows;MiniMax-H3 tiny FlowGRPO T2VA + FL2VA + REF2VA smoke PASSED.Additional validation:
(3, 32)output;text_dim=32;ci-e2e-diffusion;git diff --checkpassed.The current head still requires the normal labeled GPU CI run.
AI assistance and review
AI assistance (pi coding agent) was used for this change.
The human submitter is responsible for reviewing every changed line before
merge; final review remains pending confirmation.