Repository navigation
[New Model] Ming-3-TTS (inclusionAI/Ming-3.0-tts-tiny) Support - #9119
Conversation
…lize stop decision, cleanup exposed vars Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Preserve the SFT checkpoint KDA gate settings while retaining legacy configuration behavior. Read checkpoint sampling and decode limits, and use those limits for speech request validation and default token budgets. Keep the existing deployment defaults unchanged. Source-Commit: 2407d27c3 Source-Snapshot: 460202bf1dd36cf9d95cc405a9849f62cf5d957b Validation: applicable pre-commit hooks and Python syntax checks passed. CPU pytest and model inference pending the prepared server environment. AI assistance: Codex reorganized the changes and regression tests. Signed-off-by: 禾波 <yangrunhe.yrh@antgroup.com>
Select softplus-scale posterior sampling at the existing shared encoder call. Preserve the configured encoder depth, checkpoint tensors, dtypes and request generator; avoid adding a forwarding-only encoder module. Exercise configured encoder depths and retain the prefill RNG regression. Source-Commits: 044122896, 9e3747406 Source-Snapshot: 460202bf1dd36cf9d95cc405a9849f62cf5d957b Validation: applicable pre-commit hooks and Python syntax checks passed. CPU pytest and reference-model inference await the server environment. AI assistance: Codex reorganized and simplified the changes and tests. Co-authored-by: duleilei.dll <duleilei.dll@antgroup.com> Signed-off-by: 禾波 <yangrunhe.yrh@antgroup.com>
Reuse the shared MoE prompt builder with LingV3 token/EOS semantics. Support short and complete structured controls, freeform instructions, target languages, masked-speaker and no-speaker-slot conditioning. Carry per-reference waveform boundaries and speaker order for Podcast; validate its checkpoint alignment and resolve text-derived decode limits through the request token budget and stop decision. Source-Commits: a5f8e3df5, 08bea7068, c8d5a94ea, 9f362cff8, 1af88162a, 460202bf1 Validation: applicable pre-commit hooks, syntax and 22 isolated token, language, instruction and decode-window logic checks passed. These checks are not project pytest or real inference. Server validation is pending. AI assistance: Codex reorganized the implementation and regression tests. Signed-off-by: 禾波 <yangrunhe.yrh@antgroup.com>
Reuse the existing speaker cache for uploaded voice generations and content-keyed reference clips. Scope per-reference entries by model, preserve clip ordering and keep request prompt latents uncached. Cover voice replacement, model changes, individual Podcast references and additional-information serialization through the adapter. Source-Commits: dfea23962, 08bea7068 Source-Snapshot: 460202bf1dd36cf9d95cc405a9849f62cf5d957b Validation: applicable pre-commit hooks and Python syntax checks passed. CPU pytest and concurrent real inference await the server environment. AI assistance: Codex reorganized the implementation and regression tests. Signed-off-by: 禾波 <yangrunhe.yrh@antgroup.com>
Use CFG 1.0 for the shared cond + cfg * (cond - uncond) formulation. Validate and transport explicit CFG and temperature overrides. Leave the Flow temperature unset when the request omits it, preserving the checkpoint default instead of copying the AR stage temperature of zero. Cover absent and explicit zero temperature, invalid controls, and runtime state propagation. Align the existing vectorized test call with the baseline method's required sample_eligible argument. Source-Commits: 386d6a240, 9f362cff8, 460202bf1 Validation: applicable pre-commit hooks, syntax and 25 isolated source-logic checks passed. Full CPU pytest and real inference await the server. AI assistance: Codex reorganized the changes, fixed default propagation and added regression coverage. Signed-off-by: 禾波 <yangrunhe.yrh@antgroup.com>
Extend the existing recipe with controlled and emergent speech, ordered Podcast references, checkpoint requirements and Flow sampling semantics. Use curl requests rather than new model-specific Python examples. Document retained reference duration limits and explicit seed handling. Validation: all applicable pre-commit hooks passed for the nine changed files. Seven Bash blocks passed bash -n; five request bodies parsed as JSON. Subsequent branch validation on 2026-10-18: 137 CPU contract tests passed (Python 3.12.15, PyTorch 2.13.0+cu130, Transformers 5.14.1, vLLM 0.29.0). The same production files passed 26 sequential online smoke cases on one NVIDIA L20X: finite, nonempty mono 44.1 kHz WAVs and byte-identical seeded repeats. Runtime used context length 4096, process-scoped CUDA 13.0 compatibility libraries, checkpoint Flow temperature 1.5 and CFG 1.0. Native-reference accuracy, concurrent serving and performance were not evaluated; perceptual quality remains for listening review. AI assistance: Codex drafted and checked the recipe updates. Signed-off-by: 禾波 <yangrunhe.yrh@antgroup.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
bd32e11 to
4e19895
Compare
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
amy-why-3459
left a comment
There was a problem hiding this comment.
Re-checked 4e198958..a43e5029. The seeding and step-count points look addressed: _get_request_generator now seeds the per-request torch.Generator with generator.seed() instead of torch.seed(), so the process-wide RNG is left alone, and DEFAULT_CFM_STEPS now drives the graph sampler, the warmup/request solver noise, and the solver_noise shape check (derived from len(t) - 1).
The y0 layout point on cfm_cudagraph.py is still open at this head: the graph path still draws (B, patch_size, latent_dim) directly (L130-135), while the eager FlowLoss.sample and _draw_request_cfm_noises draw (B, latent_dim, patch_size) and transpose. With patch_size > 1, a fixed tts_local_seed can still get different first-step noise depending on whether the step runs through the graph or eager path.
|
PTAL @hsliuustc0106 @Gaohan123 The AMD/Intel CI error should be unrelated |
Sy0307
left a comment
There was a problem hiding this comment.
Three inline comments on prefill handling, eager-mode configuration, and an unused shared AudioVAE branch. These are based on static code tracing; I have not run model/GPU validation.
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
amy-why-3459
left a comment
There was a problem hiding this comment.
Looked at the two new commits (59737ef chunked-prefill conditioning, 3db61eb CFM graph gating). The chunked-prefill path looks right to me: speaker/prompt-audio positions are global, each slice is clipped against [offset, offset + len), the reference work happens once per request, and the cache is dropped in on_requests_finished. One concern on the shared Ming module, inline.
Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com>
…project#9119) Signed-off-by: Yuanheng <jonathan.zhaoyh@gmail.com> Signed-off-by: 禾波 <yangrunhe.yrh@antgroup.com> Co-authored-by: 禾波 <yangrunhe.yrh@antgroup.com> Co-authored-by: Co-Author runheyang <2591045161@qq.com>
PLEASE FILL IN THE PR DESCRIPTION HERE.
Contributor intent (required human answers)
All four questions must be answered by the human contributor before submission.
An agent may reuse explicit human answers with a public-safe source reference;
it must not invent, infer, or prefill missing answers. If an answer is missing
or materially ambiguous, ask the human and wait. Do not publish private
conversation content without authorization.
1. What outcome do you want to achieve?
Support deploying
inclusionAI/Ming-3.0-tts-tinywith vLLM 0.32.2. What is the highest-leverage variable for that outcome?
Successful model loading, service startup, speech generation, and basic features.
3. How will this work move that variable?
Add the integration needed to deploy and generate audio from unsupported.
4. Whose customer or user needs does this address, and what are those needs?
Users who need this model to generate audio for different TTS scenarios.
Purpose
Add Ming-3.0-TTS Tiny support (inclusionAI/Ming-3.0-tts-tiny), including checkpoint loading, AR/Flow decoding, streaming AudioVAE, voice cloning, instruction controls, and Podcast requests.
Co-authored with @runheyang
Test Plan
vLLM Version: 0.32.0
vLLM-Omni Commit: rebased on top of db23219
recipes/inclusionAI/Ming-3.0-TTS.mdTest Result
Example output files:
model_card_clone.wav
model_card_dialect.wav
BEFORE SUBMITTING: read CONTRIBUTING.md and run the precheck-pr skill with the code agent for a self-check against project conventions.
Note
To avoid agent spam, vLLM-Omni limits contributors without write access to 5 open PRs. If this blocks well-intentioned critical work, please contact a committer to request bypass list access.
(anything written below this line will be removed by GitHub Actions)