Merge remote-tracking branch 'origin/main' into dev/vllm-align
Made-with: Cursor # Conflicts: # vllm_omni/entrypoints/openai/serving_chat.py # vllm_omni/worker/gpu_model_runner.py Signed-off-by: tzhouam <tzhouam@connect.ust.hk>
This commit is contained in:
commit
3e539fcb6a
37 files changed
+1072
-169
No files matched your search
@@ -64,6 +64,7 @@ def _make_runner(req_ids=("r1", "r2"), hidden_size=4):
|
||||
# Minimal attributes used by OmniGPUModelRunner._talker_mtp_forward
|
||||
runner.input_batch = DummyInputBatch(list(req_ids))
|
||||
runner.requests = {rid: DummyReqState() for rid in req_ids}
|
||||
runner.model_intermediate_buffer = {}
|
||||
|
||||
# query_start_loc.cpu[req_index] is used to locate the token position
|
||||
# in the flattened `inputs_embeds`.
|
||||
@@ -167,6 +168,61 @@ def test_talker_mtp_forward_cpu_empty_batch_noop(monkeypatch):
|
||||
assert torch.allclose(inputs_embeds, before)
|
||||
|
||||
|
||||
def test_update_intermediate_buffer_writes_to_buffer_and_setattr(monkeypatch):
|
||||
"""Validate that _update_intermediate_buffer writes to model_intermediate_buffer
|
||||
(forward path) and mirrors to additional_information_cpu setattr (backward compat)."""
|
||||
import vllm_omni.worker.gpu_model_runner as mod
|
||||
|
||||
monkeypatch.setattr(mod, "set_forward_context", _noop_forward_context)
|
||||
|
||||
runner = _make_runner(req_ids=("r1",), hidden_size=4)
|
||||
|
||||
update = {"my_tensor": torch.tensor([1.0, 2.0]), "my_list": [3, 4]}
|
||||
OmniGPUModelRunner._update_intermediate_buffer(runner, "r1", update)
|
||||
|
||||
# Forward: buffer is populated
|
||||
assert "r1" in runner.model_intermediate_buffer
|
||||
buf = runner.model_intermediate_buffer["r1"]
|
||||
assert torch.allclose(buf["my_tensor"], torch.tensor([1.0, 2.0]))
|
||||
assert buf["my_list"] == [3, 4]
|
||||
|
||||
# Backward compat: setattr is also populated
|
||||
info_cpu = runner.requests["r1"].additional_information_cpu
|
||||
assert torch.allclose(info_cpu["my_tensor"], torch.tensor([1.0, 2.0]))
|
||||
assert info_cpu["my_list"] == [3, 4]
|
||||
|
||||
|
||||
def test_update_intermediate_buffer_accumulates():
|
||||
"""Validate that successive merges accumulate keys in the buffer."""
|
||||
runner = _make_runner(req_ids=("r1",), hidden_size=4)
|
||||
|
||||
OmniGPUModelRunner._update_intermediate_buffer(runner, "r1", {"a": torch.tensor([1.0])})
|
||||
OmniGPUModelRunner._update_intermediate_buffer(runner, "r1", {"b": torch.tensor([2.0])})
|
||||
|
||||
buf = runner.model_intermediate_buffer["r1"]
|
||||
assert "a" in buf and "b" in buf
|
||||
assert torch.allclose(buf["a"], torch.tensor([1.0]))
|
||||
assert torch.allclose(buf["b"], torch.tensor([2.0]))
|
||||
|
||||
|
||||
def test_update_intermediate_buffer_skips_empty_update():
|
||||
"""Validate that an empty update dict is a no-op."""
|
||||
runner = _make_runner(req_ids=("r1",), hidden_size=4)
|
||||
|
||||
OmniGPUModelRunner._update_intermediate_buffer(runner, "r1", {})
|
||||
|
||||
assert "r1" not in runner.model_intermediate_buffer
|
||||
|
||||
|
||||
def test_update_intermediate_buffer_skips_unknown_req_id():
|
||||
"""Validate that merge is a no-op when req_id is not in self.requests."""
|
||||
runner = _make_runner(req_ids=("r1",), hidden_size=4)
|
||||
|
||||
OmniGPUModelRunner._update_intermediate_buffer(runner, "unknown_req", {"key": torch.tensor([1.0])})
|
||||
|
||||
assert "unknown_req" not in runner.model_intermediate_buffer
|
||||
|
||||
|
||||
def test_maybe_attach_mimo_audio_req_infos_enriches_dict():
|
||||
runner = _make_runner_for_mimo()
|
||||
req_id = "r_mimo"
|
||||
|
||||
Reference in new issue
Block a user