From 9070f15f526923889fa94fb98dc2d1bb7fc27a10 Mon Sep 17 00:00:00 2001 From: tzhouam Date: Tue, 24 Feb 2026 03:17:11 +0000 Subject: [PATCH] debug qwen tts Signed-off-by: tzhouam --- .../core/sched/omni_generation_scheduler.py | 4 ++++ .../omni_connectors/connectors/shm_connector.py | 2 +- .../omni_connectors/utils/serialization.py | 17 ++++++++++++----- .../qwen3_tts/qwen3_tts_code_predictor_vllm.py | 2 ++ 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/vllm_omni/core/sched/omni_generation_scheduler.py b/vllm_omni/core/sched/omni_generation_scheduler.py index fff0730f8..071620de9 100644 --- a/vllm_omni/core/sched/omni_generation_scheduler.py +++ b/vllm_omni/core/sched/omni_generation_scheduler.py @@ -111,6 +111,8 @@ class OmniGenerationScheduler(VLLMScheduler): req_to_new_blocks[request.request_id] = new_blocks num_scheduled_tokens[request.request_id] = num_new_tokens cached_prompt_token_ids[request.request_id] = request.prompt_token_ids + if request.num_cached_tokens < 0: + request.num_cached_tokens = num_computed_tokens token_budget -= num_new_tokens scheduled_running_reqs.append(request) req_index += 1 @@ -177,6 +179,8 @@ class OmniGenerationScheduler(VLLMScheduler): req_to_new_blocks[request.request_id] = new_blocks num_scheduled_tokens[request.request_id] = num_new_tokens + if request.num_cached_tokens < 0: + request.num_cached_tokens = 0 token_budget -= num_new_tokens scheduled_new_reqs.append(request) diff --git a/vllm_omni/distributed/omni_connectors/connectors/shm_connector.py b/vllm_omni/distributed/omni_connectors/connectors/shm_connector.py index c654e2697..341bbcdba 100644 --- a/vllm_omni/distributed/omni_connectors/connectors/shm_connector.py +++ b/vllm_omni/distributed/omni_connectors/connectors/shm_connector.py @@ -48,7 +48,7 @@ class SharedMemoryConnector(OmniConnectorBase): payload = self.serialize_obj(data) size = len(payload) - if size > self.threshold: + if True: # Use Shared Memory lock_file = f"/dev/shm/shm_{put_key}_lockfile.lock" with open(lock_file, "w") as lockf: diff --git a/vllm_omni/distributed/omni_connectors/utils/serialization.py b/vllm_omni/distributed/omni_connectors/utils/serialization.py index 74aa6d4d0..ae9dc4953 100644 --- a/vllm_omni/distributed/omni_connectors/utils/serialization.py +++ b/vllm_omni/distributed/omni_connectors/utils/serialization.py @@ -145,7 +145,7 @@ class OmniMsgpackEncoder: "encoder_prompt": obj.encoder_prompt, "encoder_prompt_token_ids": obj.encoder_prompt_token_ids, "num_cached_tokens": obj.num_cached_tokens, - "multi_modal_placeholders": obj.multi_modal_placeholders, + "multi_modal_placeholders": getattr(obj, "multi_modal_placeholders", None), "kv_transfer_params": obj.kv_transfer_params, } # Handle dynamically added multimodal_output attribute @@ -301,15 +301,22 @@ class OmniMsgpackDecoder: """Decode dict to RequestOutput. RequestOutput is not a dataclass, so msgspec.convert doesn't work. - We construct it manually, passing all known fields via **kwargs. + We construct it manually using only the known __init__ parameters to + avoid triggering the "Ignoring extra arguments" warning in vllm. + Fields that are not part of RequestOutput.__init__ (e.g. + multi_modal_placeholders, multimodal_output) are extracted first and + then restored as dynamic attributes after construction. """ - # Extract multimodal_output before constructing (it's dynamically added) + # Extract dynamically-added / non-init fields before constructing so + # they are not passed as unknown **kwargs to RequestOutput.__init__. mm_output = obj.pop("multimodal_output", None) + multi_modal_placeholders = obj.pop("multi_modal_placeholders", None) - # RequestOutput.__init__ accepts **kwargs for forward compatibility ro = RequestOutput(**obj) - # Restore dynamically added multimodal_output attribute + # Restore dynamic attributes that are not part of __init__. + if multi_modal_placeholders is not None: + setattr(ro, "multi_modal_placeholders", multi_modal_placeholders) if mm_output is not None: setattr(ro, "multimodal_output", mm_output) return ro diff --git a/vllm_omni/model_executor/models/qwen3_tts/qwen3_tts_code_predictor_vllm.py b/vllm_omni/model_executor/models/qwen3_tts/qwen3_tts_code_predictor_vllm.py index b8b8f6bed..88de50f2d 100644 --- a/vllm_omni/model_executor/models/qwen3_tts/qwen3_tts_code_predictor_vllm.py +++ b/vllm_omni/model_executor/models/qwen3_tts/qwen3_tts_code_predictor_vllm.py @@ -143,6 +143,7 @@ class _LocalPredictorKVCache: cursor += 1 max_seq_len = int(seq_lens_i32[:num_reqs].max().item()) + max_query_len = int(query_lens_i32[:num_reqs].max().item()) query_start_loc_gpu = qsl.to(device=self.device) seq_lens_gpu = seq_lens_i32.to(device=self.device) block_table = self._block_table[:num_reqs].contiguous() @@ -154,6 +155,7 @@ class _LocalPredictorKVCache: num_tokens=num_tokens, query_start_loc_gpu=query_start_loc_gpu, query_start_loc_cpu=qsl, + max_query_len=max_query_len, seq_lens=seq_lens_gpu, max_seq_len=max_seq_len, block_tables=[block_table],