检索系统优先保证速度,因此结果的精确度可能不够理想。重排序模型对检索到的文档重新打分,将最相关的结果排在前面,显著提升搜索精度。
重排序最能发挥价值的场景:当初始检索返回 20-100+ 个相关度参差不齐的候选结果时,重排序的精度提升最为显著。如果检索已返回高度相关的结果(如精确关键词匹配),则重排序的价值较小。典型的 RAG 流程:先通过 Embedding 检索 50-100 个候选结果,再通过重排序筛选 Top 5-10,最后传入大语言模型。
前提条件
请先获取API Key并配置API Key到环境变量。如需使用 SDK,请安装SDK。
重排序文档
将查询和候选文档列表传给 API,模型将按相关性对文档进行排序后返回。
文本重排序(qwen3-rerank)
OpenAI 兼容
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-api/v1",
)
results = client.post(
"/reranks",
body={
"model": "qwen3-rerank",
"query": "什么是重排序模型",
"documents": [
"重排序模型广泛应用于搜索引擎和推荐系统,按相关性对候选文本进行排序",
"量子计算是计算科学的前沿领域",
"预训练语言模型的发展为重排序模型带来了新的进展"
],
"top_n": 2
},
cast_to=object
)
print(results)
const OpenAI = require("openai");
const openai = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope.aliyuncs.com/compatible-api/v1",
});
async function rerank() {
const results = await openai.post("/reranks", {
body: {
model: "qwen3-rerank",
query: "什么是重排序模型",
documents: [
"重排序模型广泛应用于搜索引擎和推荐系统,按相关性对候选文本进行排序",
"量子计算是计算科学的前沿领域",
"预训练语言模型的发展为重排序模型带来了新的进展",
],
top_n: 2,
},
});
console.log(JSON.stringify(results, null, 2));
}
rerank();
curl --request POST \
--url https://dashscope.aliyuncs.com/compatible-api/v1/reranks \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen3-rerank",
"query": "什么是重排序模型",
"documents": [
"重排序模型广泛应用于搜索引擎和推荐系统,按相关性对候选文本进行排序",
"量子计算是计算科学的前沿领域",
"预训练语言模型的发展为重排序模型带来了新的进展"
],
"top_n": 2
}'
DashScope
import dashscope
from http import HTTPStatus
resp = dashscope.TextReRank.call(
model="qwen3-rerank",
query="什么是重排序模型",
documents=[
"重排序模型广泛应用于搜索引擎和推荐系统,按相关性对候选文本进行排序",
"量子计算是计算科学的前沿领域",
"预训练语言模型的发展为重排序模型带来了新的进展"
],
top_n=2,
return_documents=True
)
if resp.status_code == HTTPStatus.OK:
print(resp)
curl --request POST \
--url https://dashscope.aliyuncs.com/api/v1/services/rerank/text-rerank/text-rerank \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen3-rerank",
"query": "什么是重排序模型",
"documents": [
"重排序模型广泛应用于搜索引擎和推荐系统,按相关性对候选文本进行排序",
"量子计算是计算科学的前沿领域",
"预训练语言模型的发展为重排序模型带来了新的进展"
],
"top_n": 2
}'
多模态重排序(qwen3-vl-rerank)
qwen3-vl-rerank 支持文本、图片和视频的混合排序。查询可以是文本或图片,文档可以包含文本、图片和视频。
多模态重排序需要使用 DashScope SDK 或 API,不支持 OpenAI 兼容接口。
Python
import dashscope
from http import HTTPStatus
import json
resp = dashscope.TextReRank.call(
model="qwen3-vl-rerank",
query={"text": "什么是文本排序模型"},
documents=[
{"text": "文本排序模型广泛用于搜索引擎和推荐系统中"},
{"image": "https://img.alicdn.com/imgextra/i3/O1CN01rdstgY1uiZWt8gqSL_!!6000000006071-0-tps-1970-356.jpg"},
{"video": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"}
],
top_n=2,
return_documents=True
)
if resp.status_code == HTTPStatus.OK:
print(json.dumps(resp, default=str, ensure_ascii=False, indent=4))
curl
curl --request POST \
--url https://dashscope.aliyuncs.com/api/v1/services/rerank/text-rerank/text-rerank \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen3-vl-rerank",
"input": {
"query": {"text": "什么是文本排序模型"},
"documents": [
{"text": "文本排序模型广泛用于搜索引擎和推荐系统中"},
{"image": "https://img.alicdn.com/imgextra/i3/O1CN01rdstgY1uiZWt8gqSL_!!6000000006071-0-tps-1970-356.jpg"},
{"video": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250107/lbcemt/new+video.mp4"}
]
},
"parameters": {
"return_documents": true,
"top_n": 2,
"fps": 1.0
}
}'
核心功能
使用指令提升排序效果(instruct)
instruct 参数可以引导模型使用不同的排序策略。请使用英文编写指令。
-
问答检索(默认):
"Given a web search query, retrieve relevant passages that answer the query."侧重于寻找答案。对于查询"如何预防感冒?","勤洗手可预防感冒"的分数会高于"感冒是一种常见病"(主题相关但未回答问题)。
-
语义相似度:
"Retrieve semantically similar text."侧重于语义等价,不受措辞影响。例如:"如何修改密码?"可匹配"忘记密码怎么办?"(FAQ 场景)。
未设置时,模型默认使用问答检索策略。
OpenAI 兼容
curl --request POST \
--url https://dashscope.aliyuncs.com/compatible-api/v1/reranks \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen3-rerank",
"query": "如何修改密码?",
"documents": [
"点击设置 > 安全 > 修改密码即可更新凭据",
"忘记密码怎么办?",
"我们的平台支持双因素认证"
],
"instruct": "Retrieve semantically similar text."
}'
DashScope
import dashscope
from http import HTTPStatus
resp = dashscope.TextReRank.call(
model="qwen3-rerank",
query="如何修改密码?",
documents=[
"点击设置 > 安全 > 修改密码即可更新凭据",
"忘记密码怎么办?",
"我们的平台支持双因素认证"
],
instruct="Retrieve semantically similar text."
)
if resp.status_code == HTTPStatus.OK:
print(resp)
返回前 N 个结果(top_n)
使用 top_n 仅返回排名最高的文档。如未设置,则返回按相关性排序的所有文档。如果 top_n 超过文档总数,则返回所有文档。
模型概览
gte-rerank模型将于2026年05月30日下线,推荐使用qwen3-rerank模型替代。详情请参见官网公告。
|
模型 |
最大文档数 |
单条最大 Token 数 |
单次请求最大 Token 数 |
支持语言 |
适用场景 |
|
qwen3-vl-rerank |
文本:100 图片:40 视频:4 |
8,000 |
120,000 |
中文、英文、日语、韩语等 33 种语言 |
多模态搜索结果重排序(文本、图片、视频) |
|
qwen3-rerank |
500 |
4,000 |
120,000 |
100+ 语言:中文、英文、西班牙语、法语等 |
语义文本搜索、RAG 应用 |
|
gte-rerank-v2 |
500 |
4,000 |
30,000 |
50+ 语言:中文、英文、日语、韩语、泰语等 |
文本语义检索、RAG 应用 |
关键术语:
-
单条最大 Token 数:单条查询或文档的最大 Token 数。超出限制的内容将被截断,排序结果仅基于截断后的内容计算,可能影响排序精度。
-
单次请求最大文档数:单次请求允许的最大文档数量。对于 qwen3-vl-rerank 模型,该限制会根据文档类型(文本、图片、视频、混合模态)的不同而有所差异。
-
单次请求最大 Token 数:计算公式为
查询 Token 数 x 文档数量 + 所有文档 Token 总数,该值不能超过单次请求上限。
API 参考
参见排序模型(Rerank)。
错误码
如果调用失败,请参见错误码。
限流
请参见限流。