Signed-off-by: lyj-jjj <liuyingjun5@huawei.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
86 lines
3.0 KiB
YAML
86 lines
3.0 KiB
YAML
# GLM-Image deploy: AR (stage 0) + Diffusion (stage 1).
|
|
# Topology declared in vllm_omni/model_executor/models/glm_image/pipeline.py.
|
|
#
|
|
# Fields omitted from a stage fall back to StageDeployConfig dataclass
|
|
# defaults (see vllm_omni/config/stage_config.py). Pipeline-wide settings
|
|
# (trust_remote_code, distributed_executor_backend, etc.) use DeployConfig
|
|
# defaults unless overridden here.
|
|
async_chunk: false
|
|
|
|
stages:
|
|
# Stage 0: AR Model (GlmImageForConditionalGeneration)
|
|
# Generates prior_token_ids for conditioning the diffusion process.
|
|
# max_tokens is set to the theoretical maximum (2048x2048 t2i ≈ 4353
|
|
# tokens). The AR model stops naturally at EOS (16385) well before
|
|
# this ceiling at lower resolutions. Do NOT override max_tokens per
|
|
# request — the actual resolution is communicated via target_h/w.
|
|
- stage_id: 0
|
|
max_num_seqs: 1
|
|
gpu_memory_utilization: 0.6
|
|
enforce_eager: false
|
|
trust_remote_code: true
|
|
enable_prefix_caching: false
|
|
max_num_batched_tokens: 32768
|
|
devices: "0"
|
|
default_sampling_params:
|
|
temperature: 0.9
|
|
top_p: 0.75
|
|
top_k: 16512
|
|
stop_token_ids: [16385]
|
|
max_tokens: 4353
|
|
seed: 42
|
|
detokenize: false
|
|
|
|
# Stage 1: Diffusion (DiT + VAE)
|
|
# Receives prior_token_ids from AR, performs denoising + VAE decode.
|
|
- stage_id: 1
|
|
max_num_batched_tokens: 32768
|
|
max_num_seqs: 1
|
|
enforce_eager: true
|
|
trust_remote_code: true
|
|
enable_prefix_caching: false
|
|
devices: "1"
|
|
default_sampling_params:
|
|
seed: 42
|
|
num_inference_steps: 50
|
|
guidance_scale: 1.5
|
|
height: 1024
|
|
width: 1024
|
|
|
|
platforms:
|
|
npu:
|
|
stages:
|
|
- stage_id: 0
|
|
devices: "0,1,2,3"
|
|
env:
|
|
# When multiple business processes share a single NPU simultaneously,
|
|
# port conflict issues may occur. You can refer to the link below to set different parameters for different processes,
|
|
# replacing the default parameter configuration.
|
|
# https://www.hiascend.com/document/detail/zh/canncommercial/850/maintenref/envvar/envref_07_0143.html
|
|
HCCL_IF_BASE_PORT: 23000
|
|
HCCL_HOST_SOCKET_PORT_RANGE: "23000-23199"
|
|
HCCL_NPU_SOCKET_PORT_RANGE: "23200-23399"
|
|
async_scheduling: true
|
|
enforce_eager: false
|
|
distributed_executor_backend: "mp"
|
|
enable_prefix_caching: true
|
|
tensor_parallel_size: 4
|
|
sequence_parallel_size: 1
|
|
compilation_config:
|
|
cudagraph_capture_sizes: [1, 2]
|
|
cudagraph_mode: "FULL_DECODE_ONLY"
|
|
worker_cls: vllm_omni.platforms.npu.worker.npu_ar_worker.NPUARWorker
|
|
scheduler_cls: vllm_omni.core.sched.omni_ar_scheduler.OmniARScheduler
|
|
- stage_id: 1
|
|
devices: "0,1,2,3"
|
|
env:
|
|
HCCL_IF_BASE_PORT: 24000
|
|
HCCL_HOST_SOCKET_PORT_RANGE: "24000-24199"
|
|
HCCL_NPU_SOCKET_PORT_RANGE: "24200-24399"
|
|
distributed_executor_backend: "mp"
|
|
parallel_config:
|
|
tensor_parallel_size: 1
|
|
sequence_parallel_size: 4
|
|
ulysses_degree: 4
|
|
ring_degree: 1
|