Files
vllm-omni/vllm_omni/deploy/glm_tts.yaml
T

83 lines
2.6 KiB
YAML
Raw Normal View History

# GLM-TTS deploy: 2-stage AR -> DiT flow-matching.
#
# Default mode is async-chunk streaming through SharedMemoryConnector.
# Stage 0 (AR LLM) streams speech token chunks to Stage 1 (DiT + vocoder)
# via the shared-memory connector. Stage 1 runs as LLM_GENERATION type
# to support chunk_transfer_adapter consumption.
#
# Stage 1 keeps vLLM eager scheduling but enables the GLM-TTS bucketed DiT
# CUDA graph wrapper via hf_overrides.use_dit_cuda_graphs. Graph capture falls
# back to eager if a dynamic shape exceeds the captured buckets.
#
# Verified on 1x A40 48GB (both stages share GPU 0).
# Memory footprint ~16.6 GiB peak; fits 24GB cards with the settings below.
async_chunk: true
trust_remote_code: true
connectors:
glm_tts_shm:
name: SharedMemoryConnector
extra:
codec_streaming: true
connector_get_sleep_s: 0.002
connector_get_max_wait_first_chunk: 3000
connector_get_max_wait: 300
# Progressive chunk sizes matching original GLM-TTS defaults.
codec_chunk_frames: [25, 50, 200]
codec_left_context_frames: 25
crossfade_sec: 0.1
stages:
- stage_id: 0
max_num_seqs: 1
gpu_memory_utilization: 0.55
# BF16 for AR decode: memory-bandwidth bound on single-batch decode,
# bf16 halves HBM reads per step (~1.7x throughput on L4/A40).
dtype: bfloat16
enforce_eager: false
async_scheduling: true
enable_prefix_caching: false
max_num_batched_tokens: 512
max_model_len: 2048
devices: "0"
output_connectors:
to_stage_1: glm_tts_shm
default_sampling_params:
temperature: 1.0
top_k: 25
top_p: 0.8
max_tokens: 2048
min_tokens: 1
seed: 42
detokenize: false
hf_overrides:
sample_method: ras
ras_top_p: 0.8
ras_top_k: 25
ras_win_size: 10
ras_tau_r: 0.1
min_token_text_ratio: 2.0
max_token_text_ratio: 20.0
skip_mm_profiling: true
- stage_id: 1
max_num_seqs: 1
gpu_memory_utilization: 0.25
enforce_eager: true
max_model_len: 8192
max_num_batched_tokens: 2048
# Force float32 for the flow-matching DiT stage. The Euler ODE solver
# (10 steps × 2 forward passes each) accumulates rounding errors in half
# precision that manifest as audible hiss on H20/H100. float32 matches
# the reference implementation and eliminates the noise floor.
dtype: float32
devices: "0"
enable_prefix_caching: false
input_connectors:
from_stage_0: glm_tts_shm
default_sampling_params:
max_tokens: 2048
hf_overrides:
use_dit_cuda_graphs: true
disable_hybrid_kv_cache_manager: true
skip_mm_profiling: true