[Model] Add YuE2-3B text-to-music (model + /v1/audio/speech adapter) (#7886)

Signed-off-by: Youyuan Li <105433145+Darcy-Lee@users.noreply.github.com>
Signed-off-by: princepride <wangzhipeng628@gmail.com>
Co-authored-by: princepride <wangzhipeng628@gmail.com>
This commit is contained in:
Youyuan Liandprincepride authored and GitHub committed 2026-10-01 18:04:31 +08:00
1 parent a038b38179
commit 423f34326e
27 files changed
+3294 -6

No files matched your search

+14 -4
View File
@@ -15,6 +15,7 @@ import numpy as np
import pytest
import torch
from vllm.sampling_params import SamplingParams
from vllm.v1.sample.metadata import SamplingMetadata
from vllm.v1.worker import gpu_input_batch
from vllm.v1.worker.gpu_input_batch import CachedRequestState, InputBatch
@@ -103,6 +104,8 @@ def test_post_sample_talker_mtp_uses_current_sample_and_hidden() -> None:
)
assert received["req_ids"] == ["ready"]
assert isinstance(received["input_ids"], torch.Tensor)
assert isinstance(received["hidden_states"], torch.Tensor)
assert received["input_ids"].tolist() == [101]
assert received["hidden_states"].tolist() == [[1.0, 2.0]]
assert received["req_infos"] == [{"duplex": {"data_plane": True}}]
@@ -139,6 +142,8 @@ def test_post_sample_talker_mtp_uses_gpu_token_with_async_scheduling() -> None:
)
assert received["req_ids"] == ["ready"]
assert isinstance(received["input_ids"], torch.Tensor)
assert isinstance(received["hidden_states"], torch.Tensor)
assert received["input_ids"].tolist() == [101]
assert received["hidden_states"].tolist() == [[1.0, 2.0]]
assert received["req_infos"] == [{"duplex": {"data_plane": True}}]
@@ -275,7 +280,12 @@ def test_speech_extra_params_reach_model_sampler_as_sampling_metadata(monkeypatc
)
input_batch.sampling_metadata = input_batch._make_sampling_metadata()
received = []
received: list[SamplingMetadata] = []
def sample(logits: torch.Tensor, metadata: SamplingMetadata) -> str:
received.append(metadata)
return "model-sampler"
runner = object.__new__(GPUARModelRunner)
runner._omni_cache_policy = ModelCachePolicy(needs_full_hidden_states=True)
runner._pooler_payload_include_hidden_flag = True
@@ -283,7 +293,7 @@ def test_speech_extra_params_reach_model_sampler_as_sampling_metadata(monkeypatc
runner.model = SimpleNamespace(
prefer_model_sampler=True,
skips_model_sampler_output_token_history=True,
sample=lambda logits, metadata: received.append(metadata) or "model-sampler",
sample=sample,
)
runner.sampler = SimpleNamespace()
logits = torch.zeros((1, 4))
@@ -1670,7 +1680,6 @@ class TestMergeModelKvTransferMetadata:
# ...while the engine-shared originals are untouched.
assert original["r1"]["custom_metadata"] is original_meta
assert original_meta == {"a": 1}
assert "talker_codes" not in original["r1"]["custom_metadata"]
def test_merge_without_model_meta_passes_entry_through(self):
class _Model:
@@ -1713,7 +1722,7 @@ class TestDownstreamPayloadMemoization:
return runner
def test_missing_marker_defaults_true_without_memoizing(self):
stages = {"r1": None}
stages: dict[str, int | None] = {"r1": None}
runner = self._runner(stages)
assert runner._request_needs_downstream_stage_payload("r1") is True
@@ -1861,6 +1870,7 @@ class TestPreferModelSamplerNoneFallback:
"minicpmo_4_5",
"minimax_music3",
"nemotron_voicechat",
"yue2", # Always supplies SamplerOutput, including empty/prefill steps.
}
assert declarers == expected, (
"The set of models declaring `prefer_model_sampler` changed:\n"