[UX] Remove --hf-overrides necessity for Qwen3-ASR-ForceAligner (#63274)

Signed-off-by: Isotr0py <Isotr0py@outlook.com>
Co-authored-by: vllm-agent <claw@inferact.ai>
This commit is contained in:
Isotr0pyandvllm-agent authored and GitHub committed 2026-10-27 23:20:03 +08:00
1 parent ca8dbccf20
commit a9b727a612
5 files changed
+15 -14

No files matched your search

+1 -5
View File
@@ -64,11 +64,7 @@ If your model is not in the above list, we will try to automatically convert the
| Architecture | Models | Inputs | Example HF Models | [LoRA](../../features/lora.md) | [PP](../../serving/parallelism_scaling.md) |
| --------------------------------------------- | ------------------- | ----------------- | ------------------------------------------ | ------------------------------ | ------------------------------------------ |
| `Qwen3ASRForcedAlignerForTokenClassification` | Qwen3-ForcedAligner | T + A<sup>+</sup> | `Qwen/Qwen3-ForcedAligner-0.6B` (see note) | | ✅︎ |
!!! note
Forced alignment usage requires `--hf-overrides '{"architectures": ["Qwen3ASRForcedAlignerForTokenClassification"]}'`.
Please refer to [examples/pooling/token_classify/forced_alignment_offline.py](../../../examples/pooling/token_classify/forced_alignment_offline.py).
| `Qwen3ASRForcedAlignerForTokenClassification` | Qwen3-ForcedAligner | T + A<sup>+</sup> | `Qwen/Qwen3-ForcedAligner-0.6B` | | ✅︎ |
### Reward Models
@@ -30,7 +30,6 @@ def parse_args():
model="Qwen/Qwen3-ForcedAligner-0.6B",
runner="pooling",
enforce_eager=True,
hf_overrides={"architectures": ["Qwen3ASRForcedAlignerForTokenClassification"]},
)
return parser.parse_args()
@@ -35,11 +35,6 @@ def test_qwen3_forced_aligner(
dtype=dtype,
enforce_eager=True,
max_model_len=512,
hf_overrides={
"architectures": [
"Qwen3ASRForcedAlignerForTokenClassification",
],
},
) as vllm_model:
outputs = vllm_model.llm.encode(
[{"prompt": prompt, "multi_modal_data": {"audio": audio}}],
@@ -41,9 +41,6 @@ class Qwen3ASRForcedAlignerForTokenClassification(
llm = LLM(
model="Qwen/Qwen3-ForcedAligner-0.6B",
runner="pooling",
hf_overrides={
"architectures": ["Qwen3ASRForcedAlignerForTokenClassification"]
},
)
outputs = llm.encode(
[{"prompt": prompt, "multi_modal_data": {"audio": audio}}],
@@ -651,6 +651,19 @@ class Qwen3_5ModelArchConfigConvertor(ModelArchConfigConvertorBase):
super().__init__(hf_config, hf_text_config, revision)
class Qwen3ASRModelArchConfigConvertor(ModelArchConfigConvertorBase):
def __init__(
self,
hf_config: PreTrainedConfig,
hf_text_config: PreTrainedConfig,
revision: str | None = None,
):
thinker_config = getattr(hf_config, "thinker_config", None)
if getattr(thinker_config, "model_type", None) == "qwen3_forced_aligner":
hf_config.architectures = ["Qwen3ASRForcedAlignerForTokenClassification"]
super().__init__(hf_config, hf_text_config, revision)
class Qwen3OmniMoeModelArchConfigConvertor(ModelArchConfigConvertorBase):
def __init__(
self,
@@ -865,6 +878,7 @@ MODEL_ARCH_CONFIG_CONVERTORS = {
"pangu_ultra_moe_mtp": PanguUltraMoeMTPModelArchConfigConvertor,
"qwen3_5": Qwen3_5ModelArchConfigConvertor,
"qwen3_5_mtp": Qwen3_5MTPModelArchConfigConvertor,
"qwen3_asr": Qwen3ASRModelArchConfigConvertor,
"qwen3_omni_moe": Qwen3OmniMoeModelArchConfigConvertor,
"qwen3_next_mtp": Qwen3NextMTPModelArchConfigConvertor,
"qwen4_exp_mtp": Qwen4ExpMTPModelArchConfigConvertor,