ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

在 Xinference 中部署与调用 Qwen3-VL-Reranker-2B 多模态重排序模型

在 Xinference 中部署与调用 Qwen3-VL-Reranker-2B 多模态重排序模型 在 Xinference 中部署与调用 Qwen3-VL-Reranker-2B 多模态重排序模型【免费下载链接】inferenceSwap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.项目地址: https://gitcode.com/GitHub_Trending/in/inference本篇指南围绕 Xinference 内置模型Qwen3-VL-Reranker-2B展开讲解该多模态重排序模型的内置元数据、两套推理引擎vLLM 与 sentence-transformers的底层实现差异、一条命令启动的完整流程以及如何通过客户端与 REST API 对纯文本、图片和视频文档执行重排序打分。读完你可以直接用 Xinference 拉起该模型并正确构造多模态 rerank 请求完成 RAG 精排。模型概述与内置规格Qwen3-VL-Reranker-2B 是 Xinference 官方内置builtin的重排序rerank模型面向中英文en、zh场景能力标记为rerank其内置规格定义在模型文档 qwen3-vl-reranker-2b.rst 中。文档给出的核心元数据如下Model NameQwen3-VL-Reranker-2BLanguagesen,zhAbilitiesrerankModel IDQwen/Qwen3-VL-Reranker-2B与纯文本的 Qwen3-Reranker 系列不同从模型的命名与内置能力标记可以看出它属于视觉-语言VL重排序模型。在 Xinference 的模型注册表 model_spec.json 中该模型的完整条目进一步揭示了这些细节字段值说明version2模型规格family spec版本typenormal普通重排序模型类型model_ability[vision, video]支持图像与视频多模态输入language[en, zh]中英文语言支持max_tokens8192单次输入的最大 token 上限model_formatpytorch仅提供 PyTorch 权重格式featuredtrue属于精选/推荐内置模型模型权重通过 Hugging Face 与 ModelScope 双源分发Hugging Face 端为Qwen/Qwen3-VL-Reranker-2B固定 revision76219daff7a696073e0ab28b74fa32aa81183052ModelScope 端为Qwen/Qwen3-VL-Reranker-2B量化方式均为none全精度 FP16/BF16 权重无量化选项。一条命令启动模型Xinference 为内置模型提供了最简化的启动方式无需手动下载权重或编写配置文件。直接在命令行执行文档中的启动命令xinference launch --model-name Qwen3-VL-Reranker-2B --model-type rerank启动成功后默认返回类似如下的 JSON其中model_uid是后续调用 API 时使用的唯一标识{ model_type: rerank, address: 127.0.0.1:9997, model_uid: qwen3-vl-reranker-2b, model_engine: vllm, model_name: Qwen3-VL-Reranker-2B, replicas: 1 }这条命令背后Xinference 会根据 model_spec.json 自动完成三件事引擎选择与校验默认优先选择 vLLM 引擎。由于该模型的 vLLM 规格声明了vllm0.14.0的依赖约束本地 vLLM 版本低于 0.14.0 时会触发版本检查详见下文引擎实现原理。权重下载与缓存通过RerankCacheManager见 cache_manager.py按 spec 中的model_revision从 Hugging Face 或 ModelScope 拉取权重并缓存到本地。虚拟环境管理spec 中virtualenv.packages声明了按引擎条件安装的依赖。测试 test_qwen3_vl_reranker_virtualenv.py 断言了虚拟环境模式下vLLM 依赖会被统一解析为唯一一条vllm0.14.0避免与全局 vLLM 0.11.x–0.13.x 版本冲突。如需指定引擎或设备可追加参数例如# 显式指定 vLLM 引擎 xinference launch --model-name Qwen3-VL-Reranker-2B --model-type rerank --model-engine vllm # 指定 GPU 设备 xinference launch --model-name Qwen3-VL-Reranker-2B --model-type rerank --model-engine vllm --n-gpu 1引擎实现原理vLLM 与 sentence-transformersQwen3-VL-Reranker-2B 在 Xinference 中可运行于两套引擎它们在 model_spec.json 的virtualenv.packages中分别声明了依赖vLLM 路径需要vllm0.14.0与系统 NumPysentence-transformers 路径需要#sentence_transformers_dependencies#、系统 Torch/Torchvision 等。vLLM 引擎默认在 vllm/core.py 中VLLMRerankModel.load()针对所有Qwen3-VL-Reranker前缀模型做了专门处理版本门槛低于vllm0.14.0会直接抛出ValueError原因是该版本起 vLLM 才支持 Qwen3-VL 序列分类架构的多模态打分。HF 覆盖配置通过hf_overrides强制指定architectures[Qwen3VLForSequenceClassification]、classifier_from_token[no, yes]、is_original_qwen3_rerankerTrue使 vLLM 按原始 Qwen3 重排序器的池化语义加载权重。runner 模式将runner设为pooling以池化任务形态运行打分。对话模板从同目录 qwen3_vl_reranker.jinja 读取专用 Chat Template要求模型对Query Document 是否满足要求输出yes/no判断。vLLM 路径对多模态输入有严格约束_to_score_multimodal_param与_rerank中的校验见 vllm/core.py输入必须是字符串或包含content的多模态字典query 与 document不能同时包含媒体图片/视频即只支持文本 query 媒体 document或媒体 query 文本 document的组合单个输入只能包含一个 content item类型仅限text、image_url、video_url三种。sentence-transformers 引擎在 sentence_transformers/core.py 中加载该模型时会直接执行模型仓库自带的远程代码scripts/qwen3_vl_reranker.py构造Qwen3VLReranker实例。这意味着模型目录中必须存在scripts/qwen3_vl_reranker.py否则抛出FileNotFoundError由于会执行模型仓内代码需显式设置环境变量XINFERENCE_TRUST_REMOTE_CODE1以放行依赖transformers4.57.0、qwen-vl-utils0.0.14、Pillow、scipy等见虚拟环境测试 test_qwen3_vl_reranker_virtualenv.py 中的安装列表。引擎能力矩阵可总结如下能力/约束vLLMsentence-transformers版本要求vllm0.14.0transformers4.57.0qwen-vl-utils0.0.14多模态图片/视频支持query/document 仅一方可含媒体支持模型远程代码实现是否需要信任远程代码否是XINFERENCE_TRUST_REMOTE_CODE1适用场景高吞吐生产服务灵活加载、研究调试从源码结构看当两种引擎都满足依赖条件时vLLM 因其高吞吐与批处理能力BatchMixin被设为默认首选测试 test_vllm.py 中的test_qwen3_vl_load_configures_vllm直接断言了runnerpooling、hf_overrides与模板加载的正确性。客户端调用文本、图片与视频重排序启动模型后可以通过 Xinference 的 Python 客户端调用。文本重排序的用法与普通 rerank 模型一致参考测试 test_vllm.py 中的test_modelfrom xinference.client import Client client Client(http://127.0.0.1:9997) model client.get_model(qwen3-vl-reranker-2b) query A man is eating pasta. corpus [ A man is eating food., A man is eating a piece of bread., The girl is carrying a baby., ] scores model.rerank(corpus, query, return_documentsTrue) for result in scores[results]: print(result[index], result[relevance_score], result[document][text])返回结果中results按relevance_score降序排列index指向文档在输入corpus中的原始下标。多模态重排序对图片与视频文档将文档项改为携带image/video或image_url/video_url字段的字典即可query 一个男人正在吃意大利面 documents [ {image: https://example.com/pasta.jpg}, # 图片文档 {video: https://example.com/cooking.mp4}, # 视频文档 {text: The girl is carrying a baby.}, # 纯文本文档 ] scores model.rerank(documents, query, top_n3)调用方需注意与 vLLM 引擎相同的约束由 vllm/core.py 与测试 test_vllm.py 中的test_qwen3_vl_rerank_rejects_unsupported_multimodal_pairs共同验证每个文档只能包含一种内容一个 content item不能同时携带text与imagequery 与文档不可同时为媒体输入媒体 URL 支持https://等公开地址vLLM 侧会将其转为image_url/video_url结构后逐对打分。REST API 调用不依赖 Python SDK 时可直接调用 Xinference 的 OpenAI 兼容 REST API/v1/rerank适用于任何语言的 HTTP 客户端curl -X POST http://127.0.0.1:9997/v1/rerank \ -H Content-Type: application/json \ -d { model: qwen3-vl-reranker-2b, query: A man is eating pasta., documents: [ A man is eating food., The girl is carrying a baby., {image: https://example.com/pasta.jpg} ], top_n: 2 }其中model字段填写启动时返回的model_uidtop_n控制返回的精排结果数量。在 RAG 流水线中的典型位置Qwen3-VL-Reranker-2B 的典型应用场景是多模态检索增强生成RAG的粗排后精排阶段向量检索如 bge 系列 embedding先从海量候选中召回 Top-K 文档可能包含图文、视频说明等多模态内容随后用本模型对query–候选对做交叉编码打分输出相关性分数并截取top_n。相比纯文本 reranker它能直接理解图片与视频内容弥补向量召回阶段对视觉语义的盲区。需要注意的是vLLM 引擎当前query/document 仅一方可含媒体的约束意味着要么让 query 保持纯文本、对媒体文档打分要么反过来。设计精排管线时应对 query 与文档的媒体分布做好归一化例如统一将 query 转为文本描述。小结启动xinference launch --model-name Qwen3-VL-Reranker-2B --model-type rerank模型元数据见 model_spec.json默认 vLLM 引擎要求vllm0.14.0底层以Qwen3VLForSequenceClassification pooling runner 实现打分多模态输入支持图片image与视频video但 query/document 不能同时为媒体sentence-transformers 引擎需要信任模型仓远程代码XINFERENCE_TRUST_REMOTE_CODE1通过 Python 客户端model.rerank(...)或 REST/v1/rerank即可获得按相关性降序的精排结果。相关实现与测试可继续阅读vllm/core.py、qwen3_vl_reranker.jinja、sentence_transformers/core.py、测试 test_vllm.py 与 test_qwen3_vl_reranker_virtualenv.py。【免费下载链接】inferenceSwap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.项目地址: https://gitcode.com/GitHub_Trending/in/inference创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表