Repository navigation
[Docs][Model] Add Parakeet TDT transcription support via plugin - #65005
Conversation
|
Documentation preview: https://vllm--65005.org.readthedocs.build/en/65005/ |
|
/ci run |
|
✅ Triggered Buildkite CI #99078 for commit ℹ️ This PR is 26 commits behind upstream |
|
Hi @Alex-Wengg, the pre-commit checks have failed. Please run: uv pip install pre-commit>=4.5.1
pre-commit install
pre-commit run --all-filesThen, commit the changes and push to your branch. For future commits, |
|
/ci run |
|
❌ CI already ran on this commit: https://buildkite.com/vllm/ci/builds/99078. No new CI build was started. Push new changes to run CI again, use |
List NVIDIA Parakeet TDT (ParakeetForTDT, e.g. nvidia/parakeet-tdt-0.6b-v3) as supported through the out-of-tree vllm-parakeet-plugin, the same route as Nemotron 3.5 ASR in vllm-project#59827. Co-authored-by: Claude Signed-off-by: Alex-Wengg <hanweng9@gmail.com>
Head branch was pushed to by a user without write access
9b4ced1 to
70fa36d
Compare
|
/ci run |
|
✅ Triggered Buildkite CI #99199 for commit |
Overview
Lists NVIDIA Parakeet TDT (
ParakeetForTDT, e.g.nvidia/parakeet-tdt-0.6b-v3) as supported through the out-of-tree vllm-parakeet-plugin, the same route as Nemotron 3.5 ASR in #59827. Refs #23943.Claims
ParakeetForTDTis listed in the plugin table insupported_models.mdand with the other plugin-backed encoder-decoder models inv1_guide.md.Validation
The plugin on vLLM 0.32.0, one RTX A6000:
generate(), 73 LibriSpeech clips, fp32 (scripts/parity.py)vllm serve(bf16 encoder), LibriSpeech test-clean / test-other (scripts/eval_wer.py)vllm serve, 64 concurrent requests, test-cleanpre-commit run --files docs/models/supported_models.md docs/usage/v1_guide.mdpasses.Details
ModelStatework), the first Parakeet TDT integration, which has been waiting since September on a decision about native support. That PR decodes each transcript at prefill and replays it as forced tokens. The plugin instead decodes step by step, batched across requests, and adds no model code to vLLM.vllm.general_pluginsentry point, aVerifyAndUpdateConfighook, an MRV2ModelStatethat keeps each request's encoder frames, the decode loop insideforward, and one-hotcompute_logits. It differs in two ways. The TDT loop advances all requests together in GPU tensors and applies TDT's frame-skip durations. The plugin also captures its own CUDA graphs, so it runs with plainvllm serveand needs no--enforce-eagerorVLLM_USE_V2_MODEL_RUNNER=1._OOT_SUPPORTED_MODELSentry. Transformers definesParakeetForTDT, so without the plugin, vLLM resolves the model to the Transformers backend before it checks that table, and the entry would never be used.Pull Request Checklist
I used vLLM's
/pr-checklistskill. (Mandatory for agents, optional for humans).AI assistance was used during the creation of this PR.
Design Fit: Minimizes impact on core components, reuses existing functionality, and justifies added complexity.
Testing and Validation: Validates the change and ensures any added tests are meaningful and reliable, with CI coverage or documented CI resource constraints and validation performed outside CI.
Code Quality and Style: Keeps code and comments clear and concise, and updates relevant documentation and examples.
Pull Request Contents: Includes a brief summary and relevant links, supports claims with evidence, explains root causes and implementation trade-offs, and follows the contributing guide.
🤖 Generated with Claude Code