patcher
公共前置条件
使用以下任一 patcher 前,请完成以下准备工作:
- 目前仅支持从 vllm-ascend 社区获取 0.8.5.rc1 镜像版。
- 镜像安装方式请参见 vllm-ascend,安装时请选择 Using docker(从容器中安装)。
- 在镜像中使用 Multimodal SDK 能力时,请首先执行以下命令:
export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:$LD_LIBRARY_PATH
注意
使用 qwen2_vl_image_processor_patcher 或 internvl2_image_processor_patcher 时,还需保证 transformers 版本为 4.51.3。
本文档仅提供通过社区获取镜像的使用方式。对于其他使用方式,您需要自行找到以下所提到的文件并执行操作。
video_patcher
该补丁为 vllm 视频解码提供加速能力,可以大幅度提升视频文件的读取、解码效率。
前置条件请参见 公共前置条件。
使用方式
您需要在 vllm 包的 utils.py 文件中添加如下内容,该文件路径在镜像中的位置为 /vllm-workspace/vllm/vllm/multimodal/utils.py:
import mm.patcher.vllm.video_patcher
共计需要添加一个位置,在文件头添加以上内容即可,如下图所示。

添加成功后,当使用 vllm 服务并传入视频文件数据时,若可以看到如下提示信息,则表示使用成功。
load_file: Multimodal SDK Video Patcher Enabled!
注意
当前加速能力仅针对视频文件,且格式应为 mp4,文件权限不应高于 640。
示例请求
以下 curl 命令向 vllm 服务化的 OpenAI 兼容接口 /v1/chat/completions 发送视频推理请求。请将 <host>、<port>、模型路径及视频文件路径替换为实际值后再执行。其他 vllm 参数请参见 vllm 官方文档。
curl -X POST "http://<host>:<port>/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{
"model": "/home/Qwen2-VL-7B-Instruct",
"messages": [
{
"role": "user",
"content": [
{
"type": "video_url",
"video_url": {
"url": "file:/home/234_chunk_0001.mp4"
}
},
{
"type": "text",
"text": "describe the video"
}
]
}
],
"max_tokens": 100,
"temperature": 0,
"top_p": 0.1,
"stream": false
}'
关键参数说明
| 参数 | 说明 |
|---|---|
model |
vllm 服务启动时加载的模型路径,需与启动参数 --model 一致。 |
messages |
对话消息列表;role 通常为 user,content 为文本与多模态内容的数组。 |
content[].type |
多模态内容类型。视频请求使用 video_url,文本提示使用 text。 |
content[].video_url.url |
本地视频路径,使用 file: 协议前缀;须为 mp4 格式,文件权限不应高于 640(参见上文注意事项)。 |
content[].text |
针对视频的文本提示词。 |
max_tokens |
生成回复的最大 token 数。 |
temperature / top_p |
采样参数,控制输出随机性;设为 0 与较小 top_p 时输出更稳定。 |
stream |
是否以流式方式返回结果;false 表示等待完整响应后一次性返回。 |
qwen2_vl_image_processor_patcher
该补丁为 vllm 在使用 Qwen2VL 模型时的图像/视频预处理提供加速能力,对比 transformers 的预处理时延可大幅度缩短。
前置条件请参见 公共前置条件(含 transformers 4.51.3 要求)。
使用方式
您需要在 vllm 包的 processor.py 文件中添加如下内容,该文件路径在镜像中的位置为 /vllm-workspace/vllm/vllm/transformers_utils/processor.py:
import mm.patcher.vllm.qwen2_vl_image_processor_patcher
共计需要添加以下两个位置:
-
在函数
get_processor中的from transformers import AutoProcessor的前一行添加,若使用容器,则为 62-63 行,如下图所示。
-
在函数
get_image_processor中的from transformers import AutoImageProcessor的前一行添加,若使用容器,则为 174-175 行,如下图所示。
添加成功后,当正常运行 vllm 服务时,在正常对话后若可以看到如下提示信息,则表示使用了多模态 Qwen2VL 图像/视频预处理加速功能。
get_image_processor_class_from_name: Multimodal SDK Qwen2 VL Image Patcher Enabled!
示例请求
以下 curl 命令向 vllm 服务化的 OpenAI 兼容接口 /v1/chat/completions 发送推理请求。请将 <host>、<port>、模型路径及媒体文件路径替换为实际值后再执行。其他 vllm 参数请参见 vllm 官方文档。
视频示例
curl -X POST "http://<host>:<port>/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{
"model": "/home/Qwen2-VL-7B-Instruct",
"messages": [
{
"role": "user",
"content": [
{
"type": "video_url",
"video_url": {
"url": "file:/home/234_chunk_0001.mp4"
}
},
{
"type": "text",
"text": "describe the video"
}
]
}
],
"max_tokens": 100,
"temperature": 0,
"top_p": 0.1,
"stream": false
}'
图像示例
curl -X POST "http://<host>:<port>/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{
"model": "/home/Qwen2-VL-7B-Instruct",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "file:/home/test.jpg"
}
},
{
"type": "text",
"text": "describe the image"
}
]
}
],
"max_tokens": 100,
"temperature": 0,
"top_p": 0.1,
"stream": false
}'
关键参数说明
| 参数 | 说明 |
|---|---|
model |
vllm 服务启动时加载的模型路径,需与启动参数 --model 一致。 |
messages |
对话消息列表;role 通常为 user,content 为文本与多模态内容的数组。 |
content[].type |
多模态内容类型。视频请求使用 video_url,图像请求使用 image_url,文本提示使用 text。 |
content[].video_url.url |
本地视频路径,使用 file: 协议前缀。 |
content[].image_url.url |
本地图像路径,使用 file: 协议前缀。 |
content[].text |
针对视频或图像的文本提示词。 |
max_tokens |
生成回复的最大 token 数。 |
temperature / top_p |
采样参数,控制输出随机性;设为 0 与较小 top_p 时输出更稳定。 |
stream |
是否以流式方式返回结果;false 表示等待完整响应后一次性返回。 |
image_patcher
该补丁为 vllm 图片解码提供加速能力,可以大幅度提升图片文件的读取、解码效率。
前置条件请参见 公共前置条件。
使用方式
您需要在 vllm 包的 utils.py 文件中添加如下内容,该文件路径在镜像中的位置为 /vllm-workspace/vllm/vllm/multimodal/utils.py:
import mm.patcher.vllm.image_patcher
在文件头位置添加以上内容即可,如下图所示。

添加成功后,当使用 vllm 服务并传入图像文件数据时,若可以看到如下提示信息,表示使用成功。
load_file: Multimodal SDK Image Patcher Enabled!
注意
当前加速能力仅针对 jpeg 图像,且文件后缀应为 jpg 或 jpeg,文件权限不应高于 640。
示例请求
以下 curl 命令向 vllm 服务化的 OpenAI 兼容接口 /v1/chat/completions 发送图像推理请求。请将 <host>、<port>、模型路径及图像文件路径替换为实际值后再执行。其他 vllm 参数请参见 vllm 官方文档。
curl -X POST "http://<host>:<port>/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{
"model": "/home/models/internVL2",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "file:/home/test.jpg"
}
},
{
"type": "text",
"text": "describe the image"
}
]
}
],
"max_tokens": 100,
"temperature": 0.1,
"top_p": 0.1,
"stream": false
}'
关键参数说明
| 参数 | 说明 |
|---|---|
model |
vllm 服务启动时加载的模型路径,需与启动参数 --model 一致。 |
messages |
对话消息列表;role 通常为 user,content 为文本与多模态内容的数组。 |
content[].type |
多模态内容类型。图像请求使用 image_url,文本提示使用 text。 |
content[].image_url.url |
本地图像路径,使用 file: 协议前缀;须为 jpeg 格式,文件后缀为 jpg 或 jpeg,文件权限不应高于 640(参见上文注意事项)。 |
content[].text |
针对图像的文本提示词。 |
max_tokens |
生成回复的最大 token 数。 |
temperature / top_p |
采样参数,控制输出随机性。 |
stream |
是否以流式方式返回结果;false 表示等待完整响应后一次性返回。 |
internvl2_image_processor_patcher
该补丁为 vllm 在使用 InternVL2 模型时的图像处理提供加速能力。
前置条件请参见 公共前置条件(含 transformers 4.51.3 要求)。
使用方式
您需要在 vllm-ascend 包的文件中添加如下内容,该文件路径在镜像中的位置为 /vllm-workspace/vllm-ascend/vllm_ascend/patch/worker/patch_common/__init__.py:
import mm.patcher.vllm.internvl2_image_processor_patcher
添加位置如下图所示:

添加成功后,当正常运行 vllm 服务时,在正常对话后若可以看到如下提示信息,表示使用了多模态 InternVL2 图像预处理加速功能。
_images_to_pixel_values_lst: Multimodal SDK InternVL2 Image Patcher Enabled!
示例请求
以下 curl 命令向 vllm 服务化的 OpenAI 兼容接口 /v1/chat/completions 发送图像推理请求。请将 <host>、<port>、模型路径及图像文件路径替换为实际值后再执行。其他 vllm 参数请参见 vllm 官方文档。
curl -X POST "http://<host>:<port>/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{
"model": "/home/models/internVL2",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "file:/home/test.jpg"
}
},
{
"type": "text",
"text": "describe the image"
}
]
}
],
"max_tokens": 100,
"temperature": 0.1,
"top_p": 0.1,
"stream": false
}'
关键参数说明
| 参数 | 说明 |
|---|---|
model |
vllm 服务启动时加载的模型路径,需与启动参数 --model 一致。 |
messages |
对话消息列表;role 通常为 user,content 为文本与多模态内容的数组。 |
content[].type |
多模态内容类型。图像请求使用 image_url,文本提示使用 text。 |
content[].image_url.url |
本地图像路径,使用 file: 协议前缀。 |
content[].text |
针对图像的文本提示词。 |
max_tokens |
生成回复的最大 token 数。 |
temperature / top_p |
采样参数,控制输出随机性。 |
stream |
是否以流式方式返回结果;false 表示等待完整响应后一次性返回。 |