Commit 5c8c2c12 authored by chenych's avatar chenych
Browse files

Update vllm to 0,11

parent 1802b9a6
# Contributors
None
\ No newline at end of file
...@@ -2,112 +2,107 @@ ...@@ -2,112 +2,107 @@
## 论文 ## 论文
[Qwen3 Embedding: Advancing Text Embedding and Reranking Through Foundation Models](https://arxiv.org/abs/2506.05176) [Qwen3 Embedding: Advancing Text Embedding and Reranking Through Foundation Models](https://arxiv.org/abs/2506.05176)
## 模型结构 ## 模型简介
采用双编码器和交叉编码器架构。 Qwen3嵌入模型系列是Qwen3家族最新的专有模型,专门为文本嵌入和排序任务而设计此系列。继承了其基础模型出色的多语言能力、长文本理解和推理技能。Qwen3 嵌入系列在文本检索、代码检索、文本分类、文本聚类和双语文本挖掘等多种文本嵌入和排序任务中取得了显著进展。
<div align=center>
<img src="./doc/model.png"/>
</div>
## 算法原理
Qwen3嵌入模型系列是Qwen3家族最新的专有模型,专门为文本嵌入和排序任务而设计。此系列继承了其基础模型出色的多语言能力、长文本理解和推理技能。Qwen3 嵌入系列在文本检索、代码检索、文本分类、文本聚类和双语文本挖掘等多种文本嵌入和排序任务中取得了显著进展。
<div align=center> <div align=center>
<img src="./doc/methods.png"/> <img src="./doc/methods.png"/>
</div> </div>
## 环境配置 ## 环境依赖
`-v 路径``docker_name``imageID`根据实际情况修改 | 软件 | 版本 |
| :------: | :------: |
### Docker(方法一) | DTK | 26.04 |
```bash | Python | 3.10.12 |
docker pull image.sourcefind.cn:5000/dcu/admin/base/vllm:0.9.2-ubuntu22.04-dtk25.04.1-rc5-rocblas101839-0811-das1.6-py3.10-20250812-beta | Transformers | 4.57.6 |
docker run -it --shm-size 200g --network=host --name {docker_name} --privileged --device=/dev/kfd --device=/dev/dri --device=/dev/mkfd --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -u root -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro {imageID} bash | Torch | 2.5.1+das.opt1.dtk2604.20260206.ga29664ea |
| vLLM | 0.11.0+das.opt1.rc4.dtk2604.20260305.g49a30c70 |
cd /your_code_path/qwen3-reranker_pytorch 推荐使用镜像:harbor.sourcefind.cn:5443/dcu/admin/base/vllm:0.11.0-ubuntu22.04-dtk26.04-py3.10
```
### Dockerfile(方法二)
```bash ```bash
cd docker docker run -it \
docker build --no-cache -t qwen3-reranker:latest . --shm-size 256g \
docker run -it --shm-size 200g --network=host --name {docker_name} --privileged --device=/dev/kfd --device=/dev/dri --device=/dev/mkfd --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -u root -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro {imageID} bash --network=host \
--name qwen3-reranker \
cd /your_code_path/qwen3-reranker_pytorch --privileged \
--device=/dev/kfd \
--device=/dev/dri \
--device=/dev/mkfd \
--group-add video \
--cap-add=SYS_PTRACE \
--security-opt seccomp=unconfined \
-u root \
-v /opt/hyhal/:/opt/hyhal/:ro \
-v /path/your_code_data/:/path/your_code_data/ \
harbor.sourcefind.cn:5443/dcu/admin/base/vllm:0.11.0-ubuntu22.04-dtk26.04-py3.10 bash
``` ```
### Anaconda(方法三) ## 预训练权重
关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://developer.sourcefind.cn/tool/)开发者社区下载安装。 **请根据`支持的DCU型号`选择对应模型下载,FP8模型仅在BW1100/BW1101上支持,其他型号请勿使用!**
```bash
DTK: 25.04.1
python: 3.10
vllm: 0.9.2+das.opt1.beta.dtk25041
torch: 2.5.1+das.opt1.dtk25041
deepspeed: 0.14.2+das.opt1.dtk25041
```
`Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应`
其它非深度学习库安装方式如下: | 模型名称 | 权重大小 | 数据类型 | 支持的DCU型号 | 最低卡数需求 |下载地址|
```bash |:-----:|:----------:|:----------:|:----------:|:---------------------:|:----------:|
pip install transformers>=4.51.0 | Qwen3-Reranker-0.6B | 0.6B | BF16 | K100AI | 1 | [HuggingFace](https://huggingface.co/Qwen/Qwen3-Reranker-0.6B) |
``` | Qwen3-Reranker-4B | 4B | BF16 | K100AI | 1 | [HuggingFace](https://huggingface.co/Qwen/Qwen3-Reranker-4B) |
| Qwen3-Reranker-8B | 8B | BF16 | K100AI | 1 | [HuggingFace](https://huggingface.co/Qwen/Qwen3-Reranker-8B) |
## 数据集 ## 数据集
`暂无`
## 训练 ## 训练
暂无 `暂无`
## 推理 ## 推理
### vllm推理方法 ### vLLM
#### offline #### 单机推理
##### offline
```bash ```bash
## 必须添加HF_ENDPOINT环境变量
export HF_ENDPOINT=https://hf-mirror.com
export VLLM_USE_NN=0 export VLLM_USE_NN=0
export ALLREDUCE_STREAM_WITH_COMPUTE=1 export ALLREDUCE_STREAM_WITH_COMPUTE=1
## model_name_or_path 模型地址参数 ## model_name_or_path 模型地址参数
python infer_vllm.py --model_name_or_path /path/your_model_path/ python infer_vllm.py --model_name_or_path /path/your_model_path/
``` ```
#### serve ##### serve
1. 启动服务
```bash ```bash
export HF_ENDPOINT=https://hf-mirror.com
export VLLM_USE_NN=0 export VLLM_USE_NN=0
export ALLREDUCE_STREAM_WITH_COMPUTE=1 export ALLREDUCE_STREAM_WITH_COMPUTE=1
vllm serve Qwen/Qwen3-Reranker-0.6B --max-model-len 4096 --trust-remote-code --enforce-eager --enable-prefix-caching --served-model-name Qwen3-reranker --task score --disable-log-requests --hf_overrides '{"architectures":["Qwen3ForSequenceClassification"],"classifier_from_token": ["no", "yes"],"is_original_qwen3_reranker": true}' vllm serve Qwen/Qwen3-Reranker-0.6B \
--max-model-len 4096 \
--block-size 16 \
--trust-remote-code \
--enforce-eager \
--enable-prefix-caching \
--served-model-name Qwen3-reranker \
--task score \
--disable-log-requests \
--hf_overrides '{"architectures":["Qwen3ForSequenceClassification"],"classifier_from_token": ["no", "yes"],"is_original_qwen3_reranker": true}'
``` ```
测试命令: 2. 测试命令:
```bash ```bash
curl http://127.0.0.1:8000/score -H 'accept: application/json' -H 'Content-Type: application/json' -d '{ curl http://127.0.0.1:8000/score \
"text_1": "ping", -H 'accept: application/json' \
"text_2": "pong", -H 'Content-Type: application/json' \
"model": "Qwen3-reranker" -d '{
}' "text_1": "ping",
"text_2": "pong",
"model": "Qwen3-reranker"
}'
``` ```
## result ## 效果展示
<div align=center> <div align=center>
<img src="./doc/results-dcu.png"/> <img src="./doc/results-dcu.png"/>
</div> </div>
### 精度 ### 精度
DCU与GPU精度一致,推理框架:vllm。 `DCU与GPU精度一致,推理框架:vllm。`
## 应用场景
### 算法类别
文本理解
### 热点应用行业
制造,广媒,家居,教育
## 预训练权重
- [Qwen3-Reranker-0.6B](https://huggingface.co/Qwen/Qwen3-Reranker-0.6B)
- [Qwen3-Reranker-4B](https://huggingface.co/Qwen/Qwen3-Reranker-4B)
- [Qwen3-Reranker-8B](https://huggingface.co/Qwen/Qwen3-Reranker-8B)
## 源码仓库及问题反馈 ## 源码仓库及问题反馈
- https://developer.sourcefind.cn/codes/modelzoo/qwen3-reranker_pytorch - https://developer.sourcefind.cn/codes/modelzoo/qwen3-reranker
## 参考资料 ## 参考资料
- https://github.com/QwenLM/qwen3-reranker - http://github.com/QwenLM/Qwen3-Embedding
doc/results-dcu.png

89.8 KB | W: | H:

doc/results-dcu.png

28.5 KB | W: | H:

doc/results-dcu.png
doc/results-dcu.png
doc/results-dcu.png
doc/results-dcu.png
  • 2-up
  • Swipe
  • Onion skin
# Requires vllm>=0.8.5
import logging
import argparse import argparse
from typing import Dict, Optional, List
import json import json
import logging import logging
import torch
import gc
import math
from transformers import AutoTokenizer from transformers import AutoTokenizer
from vllm import LLM, SamplingParams from vllm import LLM, SamplingParams
from vllm.distributed.parallel_state import destroy_model_parallel from vllm.distributed.parallel_state import destroy_model_parallel
import gc
import math
from vllm.inputs.data import TokensPrompt from vllm.inputs.data import TokensPrompt
# Arguments # Arguments
parse = argparse.ArgumentParser() parse = argparse.ArgumentParser()
parse.add_argument("--model_name_or_path", type=str, default='Qwen/Qwen3-Reranker-0.6B') parse.add_argument("--model_name_or_path", type=str, default='Qwen/Qwen3-Reranker-0.6B')
parse.add_argument("--number_of_gpu", type=int, default=4) parse.add_argument("--number_of_gpu", type=int, default=1)
args = parse.parse_args() args = parse.parse_args()
def format_instruction(instruction, query, doc): def format_instruction(instruction, query, doc):
......
# 模型唯一标识 # 模型唯一标识
modelCode=1590 modelCode=1590
# 模型名称 # 模型名称
modelName=qwen3-reranker_pytorch modelName=Qwen3-Reranker
# 模型描述 # 模型描述
modelDescription=Qwen3嵌入模型系列是Qwen3家族最新的专有模型,专门为文本嵌入和排序任务而设计。 modelDescription=Qwen3嵌入模型系列是Qwen3家族最新的专有模型,专门为文本嵌入和排序任务而设计。
# 应用场景 # 运行过程
appScenario=推理,文本理解,制造,广媒,家居,教育 processType=推理
# 算法类别
appCategory=文本理解
# 框架类型 # 框架类型
frameType=pytorch frameType=vllm
# 加速卡类型
accelerateType=K100AI
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment