Repository navigation
chore: drop runtime guards that can no longer fire - #568
Merged
CjhHa1 merged 2 commits intoOct 12, 2026
Merged
Conversation
- vLLM direct rollout: remove protocol_version from the driver/runtime pipe. The runtime is spawned from the same checkout, so the two hard-coded copies always agree and the check only adds a second place to forget on a bump (the same shape as the vLLM version guard fixed in Tencent-Hunyuan#560). request_id and command validation stay. - Qwen3-Omni: remove the transformers 5.6.0 s_aux shim. transformers is pinned to >=5.12,<5.13, where flash_attention_forward already skips s_aux.to() for None. - Qwen3.5: drop the bundle's duplicate transformers>=5.0 check; validation.py owns the version floor and the pin is >=5.12.
CjhHa1
requested review from
celve,
haonan3,
leviking98z-rgb and
zzhuoxin1508
as code owners
October 5, 2026 15:06
2 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Follow-up to #560: remove runtime guards that can no longer fire under the current code and dependency pins. Pure deletion (1 line changed, 105 removed).
protocol_version.engine.pyandruntime.pyeach hard-coded_PROTOCOL_VERSION = 1and checked the other side's value on every request/response. The runtime is aspawnchild started from the same checkout and is never respawned once the connection breaks, so the two copies always agree; the check can only ever fail when someone bumps one copy and forgets the other — the same shape as the vLLM version guard fixed in fix(vllm): align direct rollout manifest guard with runtime pin #560. Removed the constant, the field, both checks, and its entry in the driver's reserved-payload set.request_idmonotonicity andcommandvalidation stay; they catch stale or mismatched responses.s_auxshim._transformers_compat.pyonly activated when transformers is exactly 5.6.0, whoseflash_attention_forwardcalleds_aux.to(...)unconditionally. The repo now pinstransformers>=5.12,<5.13(build(sglang): migrate runtime to 0.5.19 #471), and 5.12.1 already guardss_aux.to(...)withif s_aux is not None. Deleted the module and its call inbundle.py.bundle.py::_model_class_forrepeated thetransformers>=5.0check thatvalidation.py::_MIN_TRANSFORMERSowns; both are below the 5.12 pin. Dropped the bundle copy.Found while auditing for #560-style drift. The one guard that needs hardware to decide — Cosmos3's H20 cuBLAS workaround, gated to torch 2.10/cu128 while the repo pins torch 2.13/cu130 — is filed as #567 rather than changed here.
Related Issue
N/A (follow-up to #560; related: #567)
Test Plan
PYTHONPATH=. python3 /tmp/verify_vllm_pipe_protocol.py(kept outside the repo): sends a driver-shaped request through amultiprocessing.Pipeintoruntime._recv_request, replies withruntime._send_response, and reads it withVLLMRolloutEngine._recv— round-trip succeeds withoutprotocol_version; non-monotonicrequest_id, emptycommand, and a stale response are still rejected.integrations/flash_attention.py:84callss_aux.to(query.dtype)unconditionally; 5.12.1:85-87guards it withif s_aux is not None.python3 -c "import unirl.models.qwen3_omni.bundle, unirl.models.qwen3_5.bundle"— ok.SKIP=no-commit-to-branch pre-commit run --from-ref upstream/main --to-ref HEAD— pass;git diff --check upstream/main— pass.7003606, imageqwen38next-runtime-base:ubuntu24-cu130-torch213-v2(torch 2.13.0+cu130, transformers 5.12.1):Qwen3_5Bundle.from_config, eager and meta-init: both resolveQwen3_5ForConditionalGeneration; greedy reply to "12*7" is84.Qwen3OmniBundle.from_configwithflash_attention_2: loads with 0 missing keys (onlytalker.*/code2wav.*unexpected, as for a thinker-only load); forward makes 48 flash-attention calls, all withs_aux=None, logits finite; greedy reply starts with84.examples/ar/qwen3_moe_grpo_30b_a3b_gsm8k_fsdp_vllm_tp4on Qwen3-30B-A3B-Base, vLLM 0.28.0 TP4 + FSDP, 2 rollouts with one native IPC weight sync between them: exit 0, reward 0.56 → 0.69. The sync woke the weights, reloaded them layer-wise on all 4 TP workers, and committed without error before rollout 2 generated; every driver/runtime command (startup, generate, sleep/wake, weight update, shutdown) went over the pipe withoutprotocol_version.Compatibility / Risk
No config, checkpoint, or public API change. The driver/runtime pipe is internal to one process tree, so dropping
protocol_versionhas no cross-version compatibility surface. Running Qwen3-Omni on transformers 5.6.0 (outside the declared pin) would hit the upstreams_aux=Nonebug again.Reviewer Notes
AI-assisted change.
request_id/commandpipe validation;unirl/reward/remote.pyprotocol_version(separately deployed HTTP service) andVLLM_NATIVE_PROTOCOL_VERSION(single definition) are different protocols and untouched.gpt-5.6-sol-highand bygrok-4.7-high-fast: no findings.Checklist