Qwen3-Reranker是阿里最新开源的专用于文本相关性重排序(Re-ranking)任务的深度语义模型,属于 Qwen 大模型系列中的垂直应用模型之一。它基于 Qwen3 强大的语言理解能力,针对信息检索(IR)、问答系统、知识库检索等场景中的精排序(reranking)环节进行了专门优化,旨在提升搜索结果的相关性和排序准确性。
Tei (Text Embedding Inference)是由Huggingface发布,用于部署开源文本Embedding和序列分类模型,支持BERT、RoBERTa等模型的高效推理。提供Docker部署方案,需将模型转换为ONNX格式后使用。支持CPU/GPU硬件加速,优化了推理速度并便于模型服务化部署。而昇腾MIS-TEI框架是华为推出的基于昇腾AI处理器的tei推理解决方案,主要用于提升文本处理模型的推理效率,支持大规模语义计算场景。
硬件设备信息
| 设备型号 | NPU配置 |
|---|---|
| Atlas 800I A2 910B | 1卡 |
一、获取mis-tei镜像
进入mis-tei官网后,基于当前自己的软硬件环境,选择对应的镜像版本进行下载。客户环境使用arm64架构的910B服务器,所以选择7.1.RC1-800I-A2-aarch64镜像版本进行下载。

二、加载mis-tei镜像
下载镜像的方式基于客户服务器能否访问互联网有两种不同的方式:
| docker pull –output “/xxx/xxx” swr.cn-south-1.myhuaweicloud.com/ascendhub/mis-tei:7.1.RC1-800I-A2-aarch64 |
|---|
| docker load -i mis-tei:7.1.RC1-800I-A2-aarch64_image.tar |
|---|
三、下载Qwen3-Reranker-4B模型 Qwen3-Reranker模型有三个版本:通义千问3-Reranker-8B · 模型库,通义千问3-Reranker-4B · 模型库,通义千问3-Reranker-0.6B · 模型库。大家可以依据自己的实际情况选择对应的模型版本。我们以通义千问3-Reranker-4B · 模型库作为对应的精排模型进行举例,按照官网的指南下载Qwen3-Reranker-4B模型到客户服务器上。
点击下载模型按钮:
执行模型下载命令:

四、创建容器并启动推理镜像
完成mis-tei镜像和Qwen3-Reranker-4B模型的下载后,需要注意校验镜像和模型MD5,确保镜像模型传输过程中无损坏。待确认镜像和模型完整无损后,上传至客户服务器对应的路径下,然后创建容器并启动推理镜像。执行如下命令:
| docker run -it -d --shm-size=20g \ --privileged \ --name qwen3-4B-reranker \ --net=host \ -u root \ -e ASCEND_RT_VISIBLE_DEVICES=6 \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \ -v /usr/local/sbin:/usr/local/sbin:ro \ -v /data/qwen_rerank/Qwen:/home/HwHiAiUser/mode \ -p 8201:8100 \ -e MAX_CLIENT_BATCH_SIZE=100 \ -e IS_RERANK=1 \ -e DEFAULT_PROMPT=": \n: " \ swr.cn-south-1.myhuaweicloud.com/ascendhub/mis-tei:7.1.RC1-800I-A2-aarch64 Qwen3-Reranker-4B 0.0.0.0 8100 |
|---|
上述启动命令中,需要注意几个参数:
| -e ASCEND_RT_VISIBLE_DEVICES=6,指定模型部署的 NPU 卡 id。 -v /data/qwen_rerank/Qwen:/home/HwHiAiUser/mode,引号:前面为qwen-rerank-4B模型所在客户服务器上的路径,引号后面的路径不要修改。 -e MAX_CLIENT_BATCH_SIZE=100,控制Qwen3-Reranker-4B客户端在单个请求中可以发送的最大输入数量,默认值是32,SJS客户环境我们改成100。 -p 8201:8100,8201是模型对应提供服务的端口号,8100是模型在容器内部的服务端口口。连接时可以两个端口都试一下,看哪个端口能连通。 |
|---|
五、Qwen3-Reranker模型调用测试
| curl localhost:8100/v1/rerank \ -X POST \ -d '{"query":"What is the capital of France?", "documents": [ "The capital of Brazil is Brasilia.","The capital of France is Paris.","Horses and cows are both animals"]}' \ |
|---|
curl命令返回的结果信息:

| import requests import json def main(): url = "http:// localhost:8100/v1/rerank" headers = { # "Content-Type": "application/json" "Accept":"application/json","Content-type": "application/json" } payload = { "model": "qwen3", "query": "What is the capital of France?", "documents": [ "The capital of Brazil is Brasilia.", "The capital of France is Paris.", "Horses and cows are both animals" ] } response = requests.post(url, headers=headers, data=json.dumps(payload)) response.raise_for_status() # 如果请求失败,会抛出异常 result = response.json() print(json.dumps(result, ensure_ascii=False, indent=2)) |
|---|