Skip to content

Qwen3 VL Embedding 2B on Thor

使用官方 vllm 镜像在 thor 机器上测试 Qwen/Qwen3-VL-Embedding-2B,结论是当前镜像组合无法跑通。

测试配置

  • 机器:thor
  • 镜像:nvcr.io/nvidia/vllm:26.01-py3
  • 容器内 vllm 版本:0.13.0+faa43dbf.nv26.01
  • 模型:Qwen/Qwen3-VL-Embedding-2B
  • 尝试路径:
    • 离线 LLM(..., runner="pooling")
    • HTTP vllm serve --runner pooling
  • 尝试参数:
    • --gpu-memory-utilization 0.65 --max-model-len 8192 --enforce-eager
    • --gpu-memory-utilization 0.5 --max-model-len 8192 --enforce-eager
    • dtype=float16 也做了额外验证
  • 数据集:datasets/qwen3_vl_embedding.jsonl
  • 合成资源:scripts/prepare_qwen3_vl_assets.py

结论

  • 官方镜像可以识别模型,并进入 runner=pooling 的初始化流程。
  • gpu-memory-utilization=0.65 时,启动前即因空闲显存不足失败。
  • 将显存占用降低到 0.5 后,初始化继续推进到视觉编码 profile 阶段,但仍失败。
  • 失败根因不在脚本参数,而在当前官方镜像的 vllm + torch 组合上:Qwen3-VL-Embedding-2B 的视觉路径在 torch.nn.functional.conv3d 上触发 RuntimeError: GET was unable to find an engine to execute this computation
  • float16 额外验证后结果相同,因此不是 bfloat16 单一路径问题。

失败摘要

  • 0.65 配置报错:
    • Free memory on device (32.52/59.9 GiB) on startup is less than desired GPU memory utilization (0.65, 38.94 GiB).
  • 0.5float16 配置报错:
    • RuntimeError: GET was unable to find an engine to execute this computation
    • 触发位置在 qwen3_vl.py 视觉编码路径的 F.conv3d(...)

Telemetry

  • 样本数:22
  • 最高温度:32.593 C
  • 最高功耗:6887 mW
  • 最高风扇 PWM:null
  • 最高 GPU 利用率:null

产物

远端结果目录:

bash
/home/nvidia/bench-results/qwen3-vl-embedding-vllm

当前仅生成了遥测文件,离线结果与 HTTP probe 未生成:

bash
/home/nvidia/bench-results/qwen3-vl-embedding-vllm/telemetry.jsonl
/home/nvidia/bench-results/qwen3-vl-embedding-vllm/telemetry.summary.json