Files
vllm-omni/vllm_omni/deploy/minicpmo_4_5_3gpu.yaml

113 lines
3.2 KiB
YAML

# MiniCPM-o 4.5 three-stage deploy with one GPU per stage.
#
# This replaces the former fused two-stage layout: Thinker, Talker, and
# Code2Wav run independently on GPUs 0, 1, and 2.
pipeline: minicpmo_4_5
async_chunk: true
# session_mode: duplex makes vllm-omni serve run this model duplex-only
# (/v1/realtime?duplex=1); every other duplex_session knob keeps its runtime default.
session_mode: duplex
# Keep the active window aligned with the session and stage capacities below.
# A smaller window serializes first-packet generation for concurrent chat turns.
duplex_session:
# Matches Stage 0/1 max_num_seqs below.
max_sessions: 4
trust_remote_code: true
enable_prefix_caching: false
connectors:
connector_of_shared_memory:
name: SharedMemoryConnector
extra:
connector_get_sleep_s: 0.01
connector_get_max_wait_first_chunk: 3000
connector_get_max_wait: 300
codec_chunk_frames: 25
codec_left_context_frames: 3
# HiFT capture buckets are derived from codec_chunk_frames and
# codec_left_context_frames. (#5869)
# A future initial_codec_chunk_frames shape will use lazy capture unless
# HiFTGraphWrapper.derive_capture_bucket_size explicitly includes it.
enable_hift_graph: true
enable_cfm_graph: true
cfm_max_graphs: 32
stages:
- stage_id: 0
max_num_seqs: 4
gpu_memory_utilization: 0.9
enforce_eager: false
tensor_parallel_size: 1
max_num_batched_tokens: 16384
devices: "0"
interleave_mm_strings: true
media_io_kwargs:
video:
fps: 1
num_frames: 128
limit_mm_per_prompt:
video: 1
default_sampling_params:
temperature: 0.0
top_p: 1.0
top_k: -1
max_tokens: 2048
seed: 42
detokenize: true
repetition_penalty: 1.1
- stage_id: 1
max_num_seqs: 4
gpu_memory_utilization: 0.9
enforce_eager: false
max_num_batched_tokens: 8192
devices: "1"
output_connectors:
to_stage_2: connector_of_shared_memory
default_sampling_params:
temperature: 0.8
top_p: 0.85
top_k: 25
# See minicpmo_4_5.yaml: the Talker rescores this over a 16-frame window.
repetition_penalty: 1.05
min_tokens: 50
max_tokens: 4096
seed: 42
detokenize: false
- stage_id: 2
max_num_seqs: 4
gpu_memory_utilization: 0.9
enforce_eager: true
enable_chunked_prefill: false
max_num_batched_tokens: 65536
max_model_len: 65536
devices: "2"
input_connectors:
from_stage_1: connector_of_shared_memory
default_sampling_params:
temperature: 0.0
top_p: 1.0
top_k: -1
max_tokens: 65536
detokenize: true
platforms:
npu:
stages:
- stage_id: 0
max_num_batched_tokens: 8192
compilation_config:
cudagraph_mode: PIECEWISE
- stage_id: 1
max_num_batched_tokens: 8192
compilation_config:
cudagraph_mode: PIECEWISE
- stage_id: 2
# Stage 2 stays outer-eager and captures only exact-shape CFM DiT
# estimator kernels through the NPU platform patch.
additional_config:
code2wav_enable_npu_graph: true
code2wav_max_npu_graphs: 32