Files

84 lines
2.6 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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