Compare commits
9
Commits
docker-doc
...
khluu/ci
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
edda01380d | ||
|
|
205238f7e3 | ||
|
|
9dc7a70ca6 | ||
|
|
ebd17001c4 | ||
|
|
e63c151f86 | ||
|
|
c0b88a87ba | ||
|
|
863cdb82b6 | ||
|
|
f73791d246 | ||
|
|
0e07a0ae9e |
No files matched your search
@@ -1,6 +1,23 @@
|
|||||||
steps:
|
steps:
|
||||||
|
- label: ":docker: Build image"
|
||||||
|
key: image-build
|
||||||
|
commands:
|
||||||
|
- "aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7"
|
||||||
|
- "docker build --file docker/Dockerfile.ci -t vllm-omni-ci ."
|
||||||
|
- "docker tag vllm-omni-ci public.ecr.aws/q9t5s3a7/vllm-ci-test-repo:omni-latest"
|
||||||
|
- "docker push public.ecr.aws/q9t5s3a7/vllm-ci-test-repo:omni-latest"
|
||||||
|
agents:
|
||||||
|
queue: "cpu_queue_premerge_us_east_1"
|
||||||
|
|
||||||
- label: "Simple Unit Test"
|
- label: "Simple Unit Test"
|
||||||
|
depends_on: image-build
|
||||||
commands:
|
commands:
|
||||||
- ".buildkite/scripts/simple_test.sh"
|
- ".buildkite/scripts/simple_test.sh"
|
||||||
agents:
|
agents:
|
||||||
queue: "cpu_queue_premerge"
|
queue: "cpu_queue_premerge"
|
||||||
|
plugins:
|
||||||
|
- docker#v5.2.0:
|
||||||
|
image: public.ecr.aws/q9t5s3a7/vllm-ci-test-repo:omni-latest
|
||||||
|
always-pull: true
|
||||||
|
propagate-environment: true
|
||||||
|
|
||||||
@@ -156,9 +156,6 @@ cython_debug/
|
|||||||
# cursor
|
# cursor
|
||||||
.cursor/
|
.cursor/
|
||||||
|
|
||||||
# docker
|
|
||||||
docker/
|
|
||||||
|
|
||||||
# scripts
|
# scripts
|
||||||
/scripts/
|
/scripts/
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
ARG VLLM_BASE_IMAGE=vllm/vllm-openai
|
||||||
|
ARG VLLM_BASE_TAG=v0.11.0
|
||||||
|
FROM ${VLLM_BASE_IMAGE}:${VLLM_BASE_TAG}
|
||||||
|
ARG APP_DIR=/workspace/vllm-omni
|
||||||
|
WORKDIR ${APP_DIR}
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Install vllm-omni into the same uv-managed Python environment used by the base image.
|
||||||
|
RUN uv pip install --python "$(python3 -c 'import sys; print(sys.executable)')" --no-cache-dir ".[dev]"
|
||||||
|
|
||||||
|
RUN ln -sf /usr/bin/python3 /usr/bin/python
|
||||||
|
|
||||||
|
ENTRYPOINT []
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# Volunteers for Bugfix and CI
|
||||||
|
|
||||||
|
We encourage you to check current docs and [issues](https://github.com/vllm-project/vllm-omni/issues) to find possible solutions for your questions. If non of these can solve it, please propose an issue to describe your questions about bug or CI problems for developing.
|
||||||
|
|
||||||
|
If you have urgent need for locating and solving bugfix or CI problems, please find community volunteers below.
|
||||||
|
|
||||||
|
| Dec 4-Dec 12 | Dec 15-Dec 19 | Dec 22-Dec 26 | Dec 29- Jan 2, 2026| Jan 5-Jan 9 | Jan 12-Jan 16 |
|
||||||
|
|----------|----------|----------|----------|----------|----------|
|
||||||
|
| <a href="https://github.com/congw729">Conw729</a> | <a href="https://github.com/yinpeiqi">yinpeiqi</a> | <a href="https://github.com/tzhouam">tzhouam</a> | <a href="https://github.com/SamitHuang">SamitHuang</a> | <a href="https://github.com/gcanlin">gcanlin</a> | <a href="https://github.com/natureofnature">natureofnature</a> |
|
||||||
|
| <a href="https://github.com/david6666666">david6666666</a> | <a href="https://github.com/R2-Y">R2-Y</a> | <a href="https://github.com/hsliuustc0106">hsliuustc0106</a> | <a href="https://github.com/Gaohan123">Gaohan123</a> | <a href="https://github.com/ZJY0516">ZJY0516</a> | <a href="https://github.com/qibaoyuan">qibaoyuan</a> |
|
||||||
|
|
||||||
|
We kindly welcome more contributors to fix bugs and contribute new features!
|
||||||
@@ -37,4 +37,7 @@ vLLM-Omni is a Python library that supports the following GPU variants. The libr
|
|||||||
## Set up using Docker
|
## Set up using Docker
|
||||||
|
|
||||||
### Pre-built images
|
### Pre-built images
|
||||||
To be released... Stay tuned!
|
|
||||||
|
=== "NVIDIA CUDA"
|
||||||
|
|
||||||
|
--8<-- "docs/getting_started/installation/gpu/cuda.inc.md:pre-built-images"
|
||||||
@@ -73,3 +73,24 @@ uv pip install --no-build-isolation --editable .
|
|||||||
</details>
|
</details>
|
||||||
|
|
||||||
# --8<-- [end:build-wheel-from-source]
|
# --8<-- [end:build-wheel-from-source]
|
||||||
|
|
||||||
|
|
||||||
|
# --8<-- [start:pre-built-images]
|
||||||
|
|
||||||
|
vLLM-Omni offers an official docker image for deployment. These images are built on top of vLLM docker images and available on Docker Hub as [vllm/vllm-omni](https://hub.docker.com/r/vllm/vllm-omni/tags). The version of vLLM-Omni indicates which release of vLLM it is based on.
|
||||||
|
|
||||||
|
Here's an example deployment command that has been verified on 2 x H100's:
|
||||||
|
```bash
|
||||||
|
docker run --runtime nvidia --gpus 2 \
|
||||||
|
-v ~/.cache/huggingface:/root/.cache/huggingface \
|
||||||
|
--env "HF_TOKEN=$HF_TOKEN" \
|
||||||
|
-p 8091:8091 \
|
||||||
|
--ipc=host \
|
||||||
|
vllm/vllm-omni:v0.11.0rc1 \
|
||||||
|
--model Qwen/Qwen3-Omni-30B-A3B-Instruct --port 8091
|
||||||
|
```
|
||||||
|
|
||||||
|
!!! tip
|
||||||
|
You can use this docker image to serve models the same way you would with in vLLM! To do so, make sure you overwrite the default entrypoint (`vllm serve --omni`) which works only for models supported in the vLLM-Omni project.
|
||||||
|
|
||||||
|
# --8<-- [end:pre-built-images]
|
||||||
@@ -25,8 +25,11 @@ a:not(:has(svg)):not(.md-icon):not(.autorefs-external) {
|
|||||||
|
|
||||||
a[href*="localhost"]::after,
|
a[href*="localhost"]::after,
|
||||||
a[href*="127.0.0.1"]::after,
|
a[href*="127.0.0.1"]::after,
|
||||||
a[href*="org.readthedocs.build"]::after,
|
|
||||||
a[href*="docs.vllm.ai"]::after {
|
/* Hide external link icons for all links */
|
||||||
|
a[href^="//"]::after,
|
||||||
|
a[href^="http://"]::after,
|
||||||
|
a[href^="https://"]::after {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ th {
|
|||||||
|`ZImagePipeline` | Z-Image | `Tongyi-MAI/Z-Image-Turbo` |
|
|`ZImagePipeline` | Z-Image | `Tongyi-MAI/Z-Image-Turbo` |
|
||||||
|
|
||||||
|
|
||||||
## List of Supported Models for Ascend NPU
|
## List of Supported Models for NPU
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
th {
|
th {
|
||||||
|
|||||||
@@ -11,3 +11,15 @@ A: If you encounter error about backend of librosa, try to install ffmpeg with c
|
|||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install ffmpeg
|
sudo apt install ffmpeg
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> Q: I encounter some bugs or CI problems, which is urgent. How can I solve it?
|
||||||
|
|
||||||
|
A: At first, you can check current [issues](https://github.com/vllm-project/vllm-omni/issues) to find possible solutions. If non of these satisfy your demand and it is urgent, please find these [volunteers](https://docs.vllm.ai/projects/vllm-omni/en/latest/community/volunteers/) for help.
|
||||||
|
|
||||||
|
> Q: Does vLLM-Omni support AWQ or any other quantization?
|
||||||
|
|
||||||
|
A: vLLM-Omni partitions model into several stages. For AR stages, it will reuse main logic of LLMEngine in vLLM. So current quantization supported in vLLM should be also supported in vLLM-Omni for them. But systematic verification is ongoing. For quantization for DiffusionEngine, we are working on it. Please stay tuned and welcome contribution!
|
||||||
|
|
||||||
|
> Q: Does vLLM-Omni support multimodal streaming input and output?
|
||||||
|
|
||||||
|
A: Not yet. We already put it on the [Roadmap](https://github.com/vllm-project/vllm-omni/issues/165). Please stay tuned!
|
||||||
@@ -8,6 +8,7 @@ Source <https://github.com/vllm-project/vllm-omni/tree/main/examples/offline_inf
|
|||||||
Please refer to [README.md](https://github.com/vllm-project/vllm-omni/tree/main/README.md)
|
Please refer to [README.md](https://github.com/vllm-project/vllm-omni/tree/main/README.md)
|
||||||
|
|
||||||
## Run examples (Qwen2.5-Omni)
|
## Run examples (Qwen2.5-Omni)
|
||||||
|
|
||||||
### Multiple Prompts
|
### Multiple Prompts
|
||||||
Download dataset from [seed_tts](https://drive.google.com/file/d/1GlSjVfSHkW3-leKKBlfrjuuTGqQ_xaLP/edit). To get the prompt, you can:
|
Download dataset from [seed_tts](https://drive.google.com/file/d/1GlSjVfSHkW3-leKKBlfrjuuTGqQ_xaLP/edit). To get the prompt, you can:
|
||||||
```bash
|
```bash
|
||||||
@@ -26,6 +27,7 @@ Then run the command below.
|
|||||||
```bash
|
```bash
|
||||||
bash run_multiple_prompts.sh
|
bash run_multiple_prompts.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
### Single Prompt
|
### Single Prompt
|
||||||
Get into the example folder
|
Get into the example folder
|
||||||
```bash
|
```bash
|
||||||
@@ -36,6 +38,34 @@ Then run the command below.
|
|||||||
bash run_single_prompt.sh
|
bash run_single_prompt.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Using Local Media Files
|
||||||
|
The `end2end.py` script supports local media files (audio, video, image) via CLI arguments:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Use single local media files
|
||||||
|
python end2end.py --query-type use_image --image-path /path/to/image.jpg
|
||||||
|
python end2end.py --query-type use_video --video-path /path/to/video.mp4
|
||||||
|
python end2end.py --query-type use_audio --audio-path /path/to/audio.wav
|
||||||
|
|
||||||
|
# Combine multiple local media files
|
||||||
|
python end2end.py --query-type mixed_modalities \
|
||||||
|
--video-path /path/to/video.mp4 \
|
||||||
|
--image-path /path/to/image.jpg \
|
||||||
|
--audio-path /path/to/audio.wav
|
||||||
|
|
||||||
|
# Use audio from video file
|
||||||
|
python end2end.py --query-type use_audio_in_video --video-path /path/to/video.mp4
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
If media file paths are not provided, the script will use default assets. Supported query types:
|
||||||
|
- `use_image`: Image input only
|
||||||
|
- `use_video`: Video input only
|
||||||
|
- `use_audio`: Audio input only
|
||||||
|
- `mixed_modalities`: Audio + image + video
|
||||||
|
- `use_audio_in_video`: Extract audio from video
|
||||||
|
- `text`: Text-only query
|
||||||
|
|
||||||
### FAQ
|
### FAQ
|
||||||
|
|
||||||
If you encounter error about backend of librosa, try to install ffmpeg with command below.
|
If you encounter error about backend of librosa, try to install ffmpeg with command below.
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ Source <https://github.com/vllm-project/vllm-omni/tree/main/examples/offline_inf
|
|||||||
Please refer to [README.md](https://github.com/vllm-project/vllm-omni/tree/main/README.md)
|
Please refer to [README.md](https://github.com/vllm-project/vllm-omni/tree/main/README.md)
|
||||||
|
|
||||||
## Run examples (Qwen3-Omni)
|
## Run examples (Qwen3-Omni)
|
||||||
|
|
||||||
### Multiple Prompts
|
### Multiple Prompts
|
||||||
Download dataset from [seed_tts](https://drive.google.com/file/d/1GlSjVfSHkW3-leKKBlfrjuuTGqQ_xaLP/edit). For processing dataset please refer to [Qwen2.5-Omni README.md](https://github.com/vllm-project/vllm-omni/tree/main/examples/offline_inference/qwen2_5_omni/README.md)
|
Download dataset from [seed_tts](https://drive.google.com/file/d/1GlSjVfSHkW3-leKKBlfrjuuTGqQ_xaLP/edit). For processing dataset please refer to [Qwen2.5-Omni README.md](https://github.com/vllm-project/vllm-omni/tree/main/examples/offline_inference/qwen2_5_omni/README.md)
|
||||||
Get into the example folder
|
Get into the example folder
|
||||||
@@ -32,6 +33,26 @@ If you have not enough memory, you can set thinker with tensor parallel. Just ru
|
|||||||
bash run_single_prompt_tp.sh
|
bash run_single_prompt_tp.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Using Local Media Files
|
||||||
|
The `end2end.py` script supports local media files (audio, video, image) via command-line arguments:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Use local video file
|
||||||
|
python end2end.py --query-type use_video --video-path /path/to/video.mp4
|
||||||
|
|
||||||
|
# Use local image file
|
||||||
|
python end2end.py --query-type use_image --image-path /path/to/image.jpg
|
||||||
|
|
||||||
|
# Use local audio file
|
||||||
|
python end2end.py --query-type use_audio --audio-path /path/to/audio.wav
|
||||||
|
```
|
||||||
|
|
||||||
|
If media file paths are not provided, the script will use default assets. Supported query types:
|
||||||
|
- `use_video`: Video input
|
||||||
|
- `use_image`: Image input
|
||||||
|
- `use_audio`: Audio input
|
||||||
|
- `text`: Text-only query
|
||||||
|
|
||||||
### FAQ
|
### FAQ
|
||||||
|
|
||||||
If you encounter error about backend of librosa, try to install ffmpeg with command below.
|
If you encounter error about backend of librosa, try to install ffmpeg with command below.
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
|
|
||||||
from diffusers.pipelines.pipeline_utils import DiffusionPipeline
|
|
||||||
from vllm.logger import init_logger
|
from vllm.logger import init_logger
|
||||||
|
|
||||||
logger = init_logger(__name__)
|
logger = init_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def load_diffusers_config(model_name) -> dict:
|
def load_diffusers_config(model_name) -> dict:
|
||||||
|
from diffusers.pipelines.pipeline_utils import DiffusionPipeline
|
||||||
|
|
||||||
config = DiffusionPipeline.load_config(model_name)
|
config = DiffusionPipeline.load_config(model_name)
|
||||||
return config
|
return config
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user