# MiniCPM-o 4.5 three-stage deploy on one large-memory GPU. pipeline: minicpmo_4_5 async_chunk: true 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 # Leave headroom on the shared GPU for Talker KV + concurrent Code2Wav. gpu_memory_utilization: 0.55 enforce_eager: false tensor_parallel_size: 1 max_num_batched_tokens: 16384 devices: "0" # Required for MiniCPM interleaved image/audio Daily-Omni packs (~78% recipe). # Keep these in YAML so they are applied through --deploy-config. interleave_mm_strings: true media_io_kwargs: video: fps: 1 num_frames: 128 limit_mm_per_prompt: # Daily-Omni MiniCPM pack: up to 64 interleaved image/audio pairs (1fps). image: 64 audio: 64 video: 1 default_sampling_params: temperature: 0.0 top_p: 1.0 top_k: -1 max_tokens: 2048 seed: 42 detokenize: true # 1.0 for MCQ accuracy; 1.1 can bias short A–D answers. repetition_penalty: 1.0 - stage_id: 1 max_num_seqs: 4 # Leave device-level headroom for the colocated HiFi-GAN cuDNN workspace. gpu_memory_utilization: 0.15 enforce_eager: false max_num_batched_tokens: 8192 # Talker context is 4096 (tts_config.max_position_embeddings). max_model_len: 4096 devices: "0" output_connectors: to_stage_2: connector_of_shared_memory # Talker is a single-vocab codec LM. These knobs go to vLLM's Sampler # (head_code logits). EOS is tts_config.eos_token_id (num_audio_tokens-1). default_sampling_params: temperature: 0.8 top_p: 0.8 top_k: 100 repetition_penalty: 1.02 min_tokens: 50 max_tokens: 4096 seed: 42 detokenize: false - stage_id: 2 max_num_seqs: 4 gpu_memory_utilization: 0.18 enforce_eager: true enable_chunked_prefill: false max_num_batched_tokens: 65536 max_model_len: 65536 devices: "0" 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: cuda: stages: - stage_id: 1 # Four Talker streams need much less KV than automatic sizing. # Leave single-GPU headroom for concurrent Stage 2 diffusion batches. kv_cache_memory_bytes: 2147483648 # 2 GiB 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