diff --git a/docs/configuration/environment_variables.md b/docs/configuration/environment_variables.md index 3f15cd8cc..e113c9d7c 100644 --- a/docs/configuration/environment_variables.md +++ b/docs/configuration/environment_variables.md @@ -85,7 +85,7 @@ depends on the installed kernels and model path. | `SPEAKER_MAX_UPLOADED` | Integer; default `1000` | Speech server; read when speaker storage initializes | Environment-only setting. A non-integer logs a warning and uses `1000`; range is not otherwise validated. | Stable | | `VLLM_OMNI_ABORT_TIMEOUT` | Float seconds; default `2` | Engine abort wait for Videos DELETE and `generate()` cancel/error cleanup; read when `async_omni` imports | Environment-only setting. A non-float raises `ValueError` during import. | Experimental | | `VLLM_OMNI_ASYNC_OUTPUT_TIMEOUT` | Float seconds; default `600` | Diffusion engine async-output wait in `step_streaming`; resolved per call on the request path, not at import | Environment-only setting. A non-float or `<=0` value warns once and uses the default. | Experimental | -| `VLLM_OMNI_EVENT_DRIVEN_ORCH` | `1`, `true`, `yes` or `on` enables; default `0` (off), except Qwen3-TTS defaults to on | Orchestration loop and the serving-side final-output drain; read once when the `Orchestrator` is constructed | Environment-only setting. An explicit value always wins. Values are stripped and case-normalized; any unrecognized value leaves the legacy poll loop selected. | Experimental | +| `VLLM_OMNI_EVENT_DRIVEN_ORCH` | `1`, `true`, `yes` or `on` enables; defaults to on for Qwen3-TTS and off for other pipelines | Pipeline default computed from `pipeline_config.model_type` at engine initialization; env override resolved at `Orchestrator` construction and separately when the serving-side final-output drain starts | An explicit env value wins; otherwise both consumers use the engine's pipeline default. Values are stripped and case-normalized; any unrecognized value selects the legacy poll loop. Set before server startup. | Experimental | | `VLLM_OMNI_INPUT_WAIT_TIMEOUT_S` | Float seconds; default `600`; `<=0` disables | Full-payload input coordinator, not async-chunk transfer; read when the scheduler module imports in each worker | Environment-only setting. A non-float logs a warning and uses `600`. | Stable operational control | | `VLLM_OMNI_ORCH_MONITOR_PATH` | Filesystem path; default `/vllm_omni_orch_monitor_.json` | Orchestrator monitor enabled by `--enable-orch-monitor`; read when the monitor is created | Environment-only path override. Parent directories are created; write errors are logged. | Diagnostic | | `VLLM_OMNI_VIDEO_SYNC_TIMEOUT` | Float seconds; default `600` | Synchronous Videos API; read when the API server module imports | Environment-only setting. A non-float raises `ValueError` during import. | Experimental | diff --git a/docs/serving/speech_api.md b/docs/serving/speech_api.md index c07d9eabf..d973b51a5 100644 --- a/docs/serving/speech_api.md +++ b/docs/serving/speech_api.md @@ -957,8 +957,8 @@ Use `/v1/audio/voices` to list available voices for the loaded model. ## Orchestration Loop (experimental) Multi-stage omni deployments route stage outputs through a single orchestrator -loop. By default that loop polls every stage replica on a 1 ms cadence. An -the event-driven mode replaces the poll with one reader task per live stage +loop. The legacy loop polls every stage replica on a 1 ms cadence. The +event-driven mode replaces the poll with one reader task per live stage replica awaiting its client directly, and switches the serving-side final-output drain to a condition-variable wakeup at the same time. Qwen3-TTS uses this mode by default; other pipelines keep the legacy poll unless enabled. @@ -967,13 +967,14 @@ uses this mode by default; other pipelines keep the legacy poll unless enabled. | Variable | Default | Description | | --- | --- | --- | -| `VLLM_OMNI_EVENT_DRIVEN_ORCH` | `0` (off), except Qwen3-TTS defaults to on | Switches the orchestration loop and the final-output drain from the legacy 1 ms poll to event-driven wakeups. An explicit value wins; otherwise the pipeline default computed at engine initialization is used. Values are matched case-insensitively after surrounding whitespace is stripped; unrecognized values select the legacy poll loop. | +| `VLLM_OMNI_EVENT_DRIVEN_ORCH` | On for Qwen3-TTS; off for other pipelines | Switches the orchestration loop and the final-output drain from the legacy 1 ms poll to event-driven wakeups. An explicit value wins; otherwise the pipeline default computed at engine initialization is used. The override is resolved at orchestrator construction and separately when the final-output drain starts. `1`, `true`, `yes`, or `on` enables it, ignoring case and surrounding whitespace; other values select the legacy poll loop. | Set it on the process that runs the orchestrator (stage 0 of an omni deployment) -before starting the server when overriding the pipeline default: +before starting the server when overriding the pipeline default. For example, +explicitly disable event-driven orchestration for Qwen3-TTS: ```bash -VLLM_OMNI_EVENT_DRIVEN_ORCH=1 \ +VLLM_OMNI_EVENT_DRIVEN_ORCH=0 \ vllm serve Qwen/Qwen3-TTS-12Hz-1.7B-Base \ --omni \ --port 8091 @@ -983,8 +984,9 @@ The server logs the selected loop mode and its reader/poller counts once at startup, so you can confirm which loop is live. Routing, output ordering, and terminal-state behavior are identical on both -loops; only the poll cadence changes. Leaving the variable unset keeps the -legacy poll loop, which is the supported default. +loops; only the poll cadence changes. Leaving the variable unset selects the +pipeline default: event-driven for Qwen3-TTS, and legacy polling for other +pipelines, including Qwen3-Omni. **Known limitations:**