想象你走进一座巨大的图书馆,想找一本真正讲“AI 如何提升客服效率”的书。图书管理员先用书名快速检索,抱来 20 本候选书——这是他凭书名和馆藏分类做的“海选”。可你翻开才发现,有几本只是书名沾边,内容其实在讲营销,甚至还有一本是小说。这时,如果请来五位资深研究员组成“金牌评委团”,每人翻开候选书,细读目录、摘要、关键章节,再合议给每本书打一个“真正相关度”分数,最后按分数重新排序——你就能精准拿到最值得读的那几本。 这个“评委团细读后重排”的过程,正是 Cohere Rerank 在做的事。在 RAG(检索增强生成)系统里,向量检索先快速抓回一批“可能相关”的文档(海选),Cohere Rerank 再用更精细的模型逐篇深读打分(细读),把最相关的文档排到最前面,让大模型基于高质量证据作答。本文会带你理解重排为什么必要、Cross-Encoder 如何工作、怎样与向量检索配合,以及如何通过 API 把它接入你的 RAG 流程。

岗位关联

掌握 Rerank 是 RAG 系统性能调优的利器,它能显著提升检索精度,让你开发的 AI 应用回答更准、更可信,在真实业务中带来可感知的质量提升。

目录
  1. 可视化演示
  2. 重排概念:为什么海选之后还要细读
  3. 工作原理:Cross-Encoder 的“对照细读”
  4. 两阶段检索:快筛与精挑的默契配合
  5. API 调用:一张入场券请来评委团
  6. 性能优势:精度、延迟与成本的三角平衡
  7. 应用实践:把“精排”装进 RAG 流水线
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

动态演示Cohere Rerank的核心机制,通过入门/进阶/实战/优化四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

Cohere Rerank:Cohe Cohere Rerank的服 Cohere Rerank A 核心机制可视化 Cohere Rerank整体架构与关键组件

重排概念:为什么海选之后还要细读

图书馆里,管理员凭书名抱来了 20 本书,其中有几本完全是“标题党”——书名漂亮,内容离题万里。如果你直接把 20 本都抱回家通读,既费时间又会被误导。聪明的办法是:请评委团把书翻开,逐本细读后再排序。这个直觉,正是 RAG 系统引入重排(Rerank)的原因。

在 RAG 系统中,第一棒“海选”由向量检索引擎完成。它把每篇文档压缩成一个高维向量,把用户问题也编码成向量,然后通过计算向量之间的距离来排序。它的优势是快——千万篇文档也能在毫秒级完成筛选;但缺陷也很明显:向量是文档整体语义的“压缩包”,就像只看书名和封底,容易错判内涵。

于是研究者设计了第二棒——Rerank。它不再对全库打分,而是聚焦第一棒召回的“候选名单”,逐篇深度比较:把用户问题与每一篇候选文档放在一起精细计算,输出一个相关性分数,再按分数降序重排。经过这一轮,真正相关的文档会被顶到最前面,不相关的沉到底部,最终送入大模型的就是一份高质量的“精选书单”。

final_rank(d)=sort_by_scored∈C  srerank(q,d)\text{final\_rank}(d) = \underset{d \in \mathcal{C}}{\text{sort\_by\_score}}\; s_{\text{rerank}}(q, d)

1. 查询语句 q:代表用户提出的问题,例如“AI 如何提升客服效率?”

q=用户查询文本q = \text{用户查询文本}

2. 候选文档 d:指第一棒召回集合中的任意一篇文档,是重排的对象。

d∈Cd \in \mathcal{C}

3. 召回集合 C:向量检索阶段返回的候选集,通常包含几十篇文档。

C={d1,d2,…,dM}\mathcal{C} = \{d_1, d_2, \dots, d_M\}

4. 重排分数 s_rerank:重排模型输出的相关度分数,分数越高代表与查询越相关。

srerank(q,d)∈[0,1]s_{\text{rerank}}(q, d) \in [0, 1]

5. sort_by_score 降序重排:将候选文档按照分数从高到低重新排列,得到最终排名。

final_rank=按分数降序排列后的文档序列\text{final\_rank} = \text{按分数降序排列后的文档序列}

回到图书馆的场景,Rerank 让“海选”与“精读”各司其职:海选保证不遗漏好苗子,精读保证送到你手上的每一本都经得起推敲。这正是检索结果重排在 RAG 中的核心价值。

工作原理:Cross-Encoder 的“对照细读”

评委团是怎么细读的呢?他们不是各看各的笔记——而是把你的问题和书的内容摊在同一张桌上,视线在两者之间来回穿梭:“你问的是 AI 客服?这本书第三章节讲的是智能应答?正好对上了。”这种“对照着读”的方式,就是 Cross-Encoder(交叉编码器)的工作方式。

与之相对的,向量检索系统背后通常是 Bi-Encoder(双塔编码器):问题和文档分别被编码为两个独立的向量,再计算余弦相似度。因为两者“不见面”,它可以预先算好所有文档的向量存入索引,查询时只需算一次问题向量,就能快速比对——这是海选的基础。

Cross-Encoder 则把 query 和 document 拼接成一个长序列,一起送入 Transformer 模型。在模型的每一层注意力中,“问题中的词”和“文档中的词”可以两两交互打分。这种深度交互能捕捉同义改写、条件限定、否定措辞等微妙细节,因此精度远高于 Bi-Encoder。Cohere 的 Rerank 模型正是按这个思路训练的,输出一个可解释的相关度分数。

s(q,d)=σ ⁣(w⊤h[q;d]+b)s(q, d) = \sigma\!\left(\mathbf{w}^{\top} \mathbf{h}_{[q;d]} + b\right)

1. 拼接输入 [q;d]:将查询和文档按 token 拼接成一个序列,作为编码器的输入。

[q;d]=[q1,q2,…,qm,d1,d2,…,dn][q;d] = [q_1, q_2, \dots, q_m, d_1, d_2, \dots, d_n]

2. 融合表征 h:Transformer 编码器输出整个序列的汇总向量,包含了查询与文档的交互信息。

h[q;d]=Encoder([q;d])\mathbf{h}_{[q;d]} = \text{Encoder}([q;d])

3. 线性层参数 w, b:可学习的权重矩阵和偏置,把高维表征投影成一个标量。

w⊤h[q;d]+b\mathbf{w}^{\top}\mathbf{h}_{[q;d]} + b

4. Sigmoid 函数 σ:将原始分数压缩到 0 到 1 之间的概率值。

σ(x)=11+e−x\sigma(x) = \frac{1}{1 + e^{-x}}

打个比方:Bi-Encoder 是两位背对背的速记员,各自记录后拿笔记比对;Cross-Encoder 是面对面讨论的合议庭,每一处措辞的呼应都逃不过他们的眼睛。精度上的差距,就来自这种“深度交互”。

两阶段检索:快筛与精挑的默契配合

好的海选标准是“宁多勿漏”——宁可多抱 50 本书,也不能把唯一讲 AI 客服的那本漏在书架上;好的精排标准是“宁缺毋滥”——评委团反复比对后,只把最相关的 3 到 5 本呈到你面前。两阶段协同,正是 RAG 检索的标准范式。

具体流程是:第一阶段,向量检索引擎在百万级文档库中快速召回 Top M(常见 M=50 或 100)篇候选;第二阶段,Cohere Rerank 对候选逐一精细打分,从中取出 Top N(常见 N=3 到 5)篇,交给大模型。向量检索用速度换覆盖,Rerank 用精度换质量,各取所长。

这种组合还天然适配现代向量数据库:FAISS、Milvus、Qdrant 都能毫秒级返回 Top 50,再把 50 篇交给 Rerank 打分,计算量完全可以接受。如果只用向量检索,Top 5 里常会混入“高相似度但低相关”的文档;如果只用 Rerank,则要对全库逐篇深读,成本高得无法落地。两阶段恰好踩在“快”与“准”的平衡点上。

C=RecallM(q),R=TopN ⁣(srerank(q,d):d∈C)\mathcal{C} = \text{Recall}_M(q), \qquad \mathcal{R} = \text{Top}_N\!\left(s_{\text{rerank}}(q, d) : d \in \mathcal{C}\right)

1. 粗召回 Recall_M(q):向量检索按相似度从全库中召回前 M 篇文档。

C=TopM(sim(q,d))\mathcal{C} = \text{Top}_M(\text{sim}(q, d))

2. 候选池 C:这个集合是重排的输入,规模远小于全库。

∣C∣=M,M∼50∼100|\mathcal{C}| = M, \quad M \sim 50\sim 100

3. 逐篇打分 s_rerank:对候选池中每一篇计算精确的相关度分数。

{srerank(q,d1),…,srerank(q,dM)}\{s_{\text{rerank}}(q, d_1), \dots, s_{\text{rerank}}(q, d_M)\}

4. 精排 Top_N:按分数降序取前 N 篇,作为最终上下文。

R={d(1),d(2),…,d(N)}\mathcal{R} = \{d_{(1)}, d_{(2)}, \dots, d_{(N)}\}

图书馆的智慧在于:管理员海选控制“广度问题”——别漏书;评委团精排解决“深度问题”——别选错。这套配合,让 RAG 系统在千万文档中也能精准定位到最合适的证据。

API 调用:一张入场券请来评委团

要请动评委团,你不需要自己培养专家——Cohere 公司已经训练好了顶尖的 Rerank 模型,并把它封装成云端 API。你只需注册并领取 API Key(入场券),一行代码即可调用。更贴心的是,rerank-multilingual-v3.0 模型支持 100 多种语言,中文文档和中文问题都能直接处理,无需翻译。

调用时,核心参数有三个:query 是用户问题,documents 是向量检索召回的候选文档列表,top_n 是希望保留的最相关文档数量。Cohere 的返回值是一个包含文档原始索引与 relevance_score 分数的列表,你只需要按照返回顺序重新组织文档,就能得到精排后的结果。

那么 top_n 到底该设多少?这取决于你对精度的要求。假设你期望“前 k 篇里至少覆盖大部分相关文档”,设一个召回阈值 τ,那么最小满足条件的 k 就是最优的 top_n:

best_n=min⁡ ⁣{k:Recall@k≥τ}\text{best\_n} = \min\!\left\{ k : \text{Recall}@k \ge \tau \right\}

1. 相关度分数 relevance_score_i:API 返回的第 i 篇候选文档的相关度,取值在 0 到 1 之间。

relevance_scorei∈[0,1]\text{relevance\_score}_i \in [0, 1]

2. Recall@k:前 k 篇中真正相关文档占所有相关文档的比例。

Recall@k=前 k 篇中相关文档数相关文档总数\text{Recall}@k = \frac{\text{前 } k \text{ 篇中相关文档数}}{\text{相关文档总数}}

3. 阈值 τ:你期望达到的精度门槛,比如 0.8 表示希望覆盖 80% 的相关文档。

τ∈(0,1)\tau \in (0, 1)

4. 最小 k:在保证召回达标的前提下,取最小的 k,既省 token 又保质量。

best_n=min⁡{k1,k2,… }\text{best\_n} = \min\{k_1, k_2, \dots\}

入场券到手后,评委团随叫随到。Cohere 的托管服务省去了模型部署、GPU 运维的麻烦,让团队把精力集中在业务优化上。

性能优势:精度、延迟与成本的三角平衡

引入 Rerank 后最直观的变化是“答案变靠谱了”。在客服知识库问答中,直接向量检索 Top 5 的准确率可能只有 60%,加上 Rerank 后能提升到 85% 以上。评判指标常用 Recall@k:重排后前 k 篇里能覆盖多少相关文档。

R@k=∣Topk(q)∩Relevant(q)∣∣Relevant(q)∣R@k = \frac{\left| \text{Top}_k(q) \cap \text{Relevant}(q) \right|}{\left| \text{Relevant}(q) \right|}

1. Top_k(q):重排后得分最靠前的 k 篇文档集合。

Topk(q)={d(1),…,d(k)}\text{Top}_k(q) = \{d_{(1)}, \dots, d_{(k)}\}

2. Relevant(q):与查询真正相关的文档全集,由标注或人工判断得到。

Relevant(q)={d:d 与 q 相关}\text{Relevant}(q) = \{d : d \text{ 与 } q \text{ 相关}\}

3. 交集数量:前 k 篇里真正相关的文档数。

∣Topk(q)∩Relevant(q)∣\left| \text{Top}_k(q) \cap \text{Relevant}(q) \right|

4. 比值:覆盖率越高,说明精排把“金子”都筛到了前面。

R@k∈[0,1]R@k \in [0, 1]

延迟方面,Rerank 只处理第一棒筛出的几十篇候选,而不是全库,因此额外耗时通常只有几十到几百毫秒,对用户可感知的响应时间影响很小。成本方面,重排后只把 Top 5 的精简上下文送入大模型,相比原先 50 篇全塞进去,token 消耗大幅下降——既省钱,又减少了上下文干扰,模型更容易聚焦关键证据。

图书馆的采购主任看得很清楚:请评委团花一点评审费,却能避免买回一屋子无用书;RAG 系统引入 Rerank,用可控的延迟和成本换来了检索精度和回答质量的显著提升。

应用实践:把“精排”装进 RAG 流水线

现在把整套流水线串起来:当用户提出问题时,系统先完成向量召回(海选),再用 Cohere Rerank 对候选精排(细读),最后把 Top N 文档拼进 Prompt 交给大模型生成答案(呈报阅读)。这个 Retrieve → Rerank → Generate 的流程,已经是工业级 RAG 系统的标准配置。

为什么重排能直接提升回答质量?因为大模型生成答案时,最依赖的是上下文中最相关的那篇文档。如果最相关的文档排在最后甚至被截断丢掉,模型就只能“凭记忆答题”,容易产生幻觉。Rerank 保证最优文档 d* 一定在上下文的前列:

P(y∣q)≈Pθ ⁣(y∣q,  d∗),d∗=arg⁡max⁡d∈Rsrerank(q,d)P(y \mid q) \approx P_{\theta}\!\left(y \mid q,\; d^{*}\right), \quad d^{*} = \arg\max_{d \in \mathcal{R}} s_{\text{rerank}}(q, d)

1. 精排集合 R:重排后保留的文档集合,规模很小(通常 3 到 5 篇)。

R={d(1),…,d(N)}\mathcal{R} = \{d_{(1)}, \dots, d_{(N)}\}

2. 最优文档 d\*:集合中相关度分数最高的文档,是答案的最强依据。

d∗=arg⁡max⁡d∈Rsrerank(q,d)d^{*} = \arg\max_{d \in \mathcal{R}} s_{\text{rerank}}(q, d)

3. 生成概率 P_θ:大语言模型在给定问题和证据文档时生成答案的概率。

Pθ(y∣q,d∗)P_{\theta}(y \mid q, d^{*})

4. 近似关系:模型输出质量主要受 d* 影响,重排越准,回答越可信。

P(y∣q)≈Pθ(y∣q,d∗)P(y \mid q) \approx P_{\theta}(y \mid q, d^{*})

在落地时,top_n 的常见经验值是 3 到 5,具体可按 LLM 的上下文窗口和预算调整;查询语句也值得打磨——把口语问题改写成清晰的检索式语句,往往能让 Rerank 打分更准确。从企业知识库到电商客服,从法律条文检索到代码搜索,这套“海选 + 评委团细读”的模式正在各行各业落地生根。

AI 应用场景

企业知识库智能问答

阶段:检索增强生成(RAG)中的重排环节

解决的问题:传统向量检索直接返回 Top 5 文档送入大模型,经常混入“高相似度但答非所问”的文档,导致回答出现事实错误或幻觉。引入 Rerank 后,先向量召回 50 篇候选,再由 Cross-Encoder 精排取前 5,确保送入 LLM 的每一篇都高度相关,回答准确率显著提升。

具体案例:某保险公司搭建客服知识库问答系统,覆盖数千篇产品条款文档。用户问“重疾险理赔需要哪些材料”,向量检索召回的文档里既有精准的理赔指南,也有泛泛的产品介绍。加入 Cohere Rerank 后,官方理赔指南稳定排进前 3,机器人回答的准确率从 68% 提升到 91%,转人工率下降了 40%。

跨语言多语检索

阶段:多语言检索重排

解决的问题:跨国公司的知识库包含中、英、日等多语言文档,传统向量模型对跨语言语义匹配较弱。Cohere 的 rerank-multilingual-v3.0 支持 100+ 语言,中文问题也能精准匹配英文文档。Rerank 让跨语言检索的精度提升一个台阶,无需为每种语言单独建索引。

具体案例:一家出海电商的客服系统,用户用中文提问,知识库中的英文售后政策文档能通过 Rerank 被精准重排到前方,AI 客服用中文输出解答,满意率提升 25%。

专业领域文档检索

阶段:垂直领域检索重排

解决的问题:法律、医疗、学术等专业领域文档措辞严谨,向量检索容易受同义词和句式干扰。Rerank 的深度交互能抓住“管辖法院”与“争议标的”等专业概念间的精确关联,把真正具有法律效力的条款排到最前。

具体案例:某法律科技公司开发合同审查工具,用 Rerank 从 500 份历史判例中为当前合同纠纷找出最相关的 3 份判例,律师检索时间从 40 分钟缩短到 3 分钟。

Python 演示

python65 行
"""Cohere Rerank 流程演示(模拟版)运行: python cohere_rerank_demo.py"""import math  class FakeCohereRerank:    """模拟 Cohere Rerank API 的客户端"""     def __init__(self, docs):        self.docs = docs     def rerank(self, query, documents, top_n=3):        """模拟 Cross-Encoder 给文档打分并重排"""        query_terms = set(query.lower().split())        scored = []        for idx, doc in enumerate(documents):            doc_terms = set(doc.lower().split())            overlap = len(query_terms & doc_terms)            bonus = 0.85 / (idx + 1)  # 模拟深入理解的排序奖励            score = overlap / max(len(query_terms), 1) + bonus            scored.append((score, idx, doc))        scored.sort(key=lambda x: x[0], reverse=True)        return [{'index': i, 'score': round(s, 3), 'document': d}                for s, i, d in scored[:top_n]]  def vector_recall(query, corpus, top_k=5):    """模拟向量检索: 字符重合度当作相似度(仅供演示)"""    scored = []    for idx, doc in enumerate(corpus):        overlap = len(set(query.lower()) & set(doc.lower()))        scored.append((overlap, idx, doc))    scored.sort(key=lambda x: x[0], reverse=True)    return [corpus[i] for _, i, _ in scored[:top_k]]  def main():    corpus = [        "公司年度报告显示营收增长20%",        "新推出的AI助手提升了客服效率",        "员工福利政策更新通知发布",        "研发部门申请了三项新专利",        "云端数据库迁移实施完成",        "市场部策划了秋季促销活动",        "客户满意度调查结果达到新高",        "开源项目贡献者数量翻倍",    ]    query = "AI客服效率提升"    print("用户查询:", query, "\n")     candidates = vector_recall(query, corpus, top_k=5)    print("向量召回 Top5:")    for i, doc in enumerate(candidates):        print(" ", i + 1, doc)     rerank = FakeCohereRerank(corpus)    results = rerank.rerank(query, candidates, top_n=3)    print("\nRerank 重排结果:")    for r in results:        print(f"  第{r['index'] + 1} 篇 分数={r['score']} -> {r['document']}")  if __name__ == "__main__":    main()
目的:演示 RAG 两阶段检索的完整流程——先用“向量召回”选出候选,再用 FakeCohereRerank 模拟 Cross-Encoder 细读打分,最终按相关度分数重排输出 Top 3。
  1. query_terms = set(query.lower().split())把查询拆成词集合,模拟 Cross-Encoder 需要理解的语义单元。
  2. bonus = 0.85 / (idx + 1)给排位靠前的文档一点奖励分,模拟模型对越靠前内容关注越多的直觉。
  3. scored.sort(key=lambda x: x[0], reverse=True)按分数降序排序,这就是“重排”这一动作的核心。
  4. rerank.rerank(query, candidates, top_n=3)模仿真实 API 的调用形式,仅处理候选集而非全库。
  5. if __name__ == "__main__"可执行入口,保证脚本能被直接运行。

常见误区

误区向量检索返回的结果本来就是按相似度从高到低排好的,直接取前几名就行,再加一个重排环节纯属浪费时间和钱。

正解向量检索的排序依据是“嵌入向量距离”,它衡量的是整体语义相似,不是精确相关性。比如“AI 客服效率”和一篇高相似度但讲“AI 营销效率”的文章,向量距离很近,但实际并不相关。Rerank 用 Cross-Encoder 逐篇深读,纠正这种“高相似、低相关”的错判。真实场景中,Rerank 后 Top 5 的准确率通常能提升 15 到 30 个百分点。

为何常见:很多人把“语义相似”等同于“相关”,忽视了向量压缩丢失细节的事实,自然觉得精排是冗余的。

误区Rerank 模型比向量检索复杂得多,如果要对全库每篇文档都跑一遍,延迟会高到无法接受。

正解Rerank 的输入不是全库,而是向量检索召回的候选子集(通常 50 到 100 篇)。复杂模型只需要在这个小集合上打分,总耗时一般在几十到几百毫秒。这就好比评委团只评审管理员抱来的 20 本书,而不是把整个图书馆的书都翻一遍。

为何常见:把“重排”误解为“重新检索全库”,没有理解两阶段设计中粗召回已经把搜索空间大幅缩小了。

误区Cohere Rerank 返回 0.9 分,就代表这篇文档有 90% 的概率是正确的、可以直接信任。

正解relevance_score 是模型对相关性的相对打分,数值经过归一化,但并不等于真实概率。0.9 和 0.7 之间的差值不一定有实际含义,它主要用于排序而非绝对判断。实际应用中,应该关注“相对排序”而非“分数绝对值”,阈值要根据业务数据调优。

为何常见:分数区间恰好是 0 到 1,很容易让人联想到概率,模型内部的 Sigmoid 输出更是加深了这个误解。

误区既然 Cross-Encoder 更准,那一不做二不休,直接用 Rerank 模型扫描所有文档,不就不需要向量检索了吗?

正解Cross-Encoder 每判断一篇文档都要把查询和文档拼接后跑一次完整模型,计算量是 Bi-Encoder 的几十倍。对百万级文档库全量扫描,延迟会从毫秒级变成分钟级,成本完全不可控。正确做法是两层配合:向量检索做快速海选,Rerank 在候选集上精排。

为何常见:看到 Rerank 精度更高,容易忽略它对每篇文档都要重新计算的事实,把“更准”误当成“更快更省”。

误区重排后保留的文档越多,大模型可参考的证据就越充分,回答应该越全面,所以 top_n 设 10 甚至 20 更好。

正解大模型处理长上下文时,注意力会被稀释,无关文档反而会干扰判断(业界称为“中间迷失”现象)。Rerank 的价值恰恰是“少而精”:通常 top_n 设 3 到 5 即可,既保证证据充分,又避免噪音。多余的文档还会增加 token 成本,拖慢响应速度。

为何常见:直觉上“信息越多越好”,但忽略了 LLM 在超长上下文中注意力衰减的特性,以及 token 成本随长度快速增长的事实。

面试题

Q1. Cohere Rerank 的核心作用是什么?

单选题 · easy

  • A.把检索文档翻译成多种语言
  • B.对召回候选重新打分排序← 正确答案
  • C.将用户问题扩展成多个变体
  • D.为每篇文档生成摘要文本

答案:B。Cohere Rerank 的核心是对向量检索召回的候选集重新打分并排序,让最相关的文档排到最前。A 是翻译任务,C 是查询改写,D 是文本摘要,都与重排无关。

Q2. 在 RAG 两阶段检索中,第一阶段通常叫什么?

单选题 · easy

  • A.精重排阶段
  • B.粗召回阶段← 正确答案
  • C.扩散生成阶段
  • D.文本分类阶段

答案:B。两阶段检索的第一阶段是“粗召回”,用向量检索快速从全库捞回候选集;第二阶段才是“精重排”。选 B,其他选项都是不同任务的名词。

Q3. Bi-Encoder(双塔编码器)相比 Cross-Encoder 的主要优势是?

单选题 · mid

  • A.精度一定高一个量级
  • B.文档向量可预计算,速度快← 正确答案
  • C.必须在线拼接查询与文档
  • D.只支持英文语种的使用

答案:B。Bi-Encoder 将文档独立编码成向量,可以离线预处理并建立索引,查询时只需编码问题一次,因此海选速度快。Cross-Encoder 精度更高但每篇都要在线计算。B 正确,A、C、D 说法均不符合事实。

Q4. 使用 Cohere 官方客户端调用重排功能的方法名是?

单选题 · easy

  • A.co.embed() 嵌入接口
  • B.co.chat() 对话接口
  • C.co.rerank() 重排接口← 正确答案
  • D.co.tokenize() 分词接口

答案:C。Cohere 客户端提供 co.rerank() 方法专门执行重排,参数包括 query、documents、top_n 等。embed 用于生成向量,chat 用于对话生成,tokenize 用于文本切分。

Q5. 关于 Cohere Rerank 的 top_n 参数,下列说法正确的是?

多选题 · mid

  • A.表示保留前 n 篇最相关文档← 正确答案
  • B.设置得越大精度一定越高
  • C.需要结合上下文预算来设置← 正确答案
  • D.数值含义是向量空间维度

答案:AC。top_n 决定重排后保留的文档数量,A 描述正确。它不能无限增大——文档越多 LLM 上下文越易受干扰、成本越高,因此要结合预算设置,C 也正确。B 过于绝对,D 完全错误。

Q6. Cross-Encoder 为什么比 Bi-Encoder 在重排任务上更精确?

单选题 · mid

  • A.因为模型参数量级更庞大
  • B.拼接后做深度交互注意力← 正确答案
  • C.因为使用了 TF-IDF 特征
  • D.输出向量的维度更高更细

答案:B。Cross-Encoder 将查询与文档拼接为同一序列输入,每一层注意力都能让两者的 token 互相交互,捕捉“问题与文本之间”的微妙对应。B 是本质原因。参数量大不一定更准,TF-IDF 和输出维度与此无关。

Q7. 以下哪些做法能有效提升 RAG 系统的回答质量?

多选题 · hard

  • A.召回扩到 50 篇再重排取 5 篇← 正确答案
  • B.直接让 Rerank 扫描全库千万篇
  • C.用多语言模型处理中文查询语料← 正确答案
  • D.彻底去掉向量召回阶段的环节

答案:AC。A 是标准两阶段法:扩大召回保证覆盖,重排精确筛选,能提升质量。C 使用多语言模型可避免中文被翻译导致的语义损失,也正确。B 会带来无法接受的延迟和成本,D 去掉召回会让 Rerank 处理全库,同样不可行。

Q8. Cohere Rerank 返回的 relevance_score 应该怎么理解?

单选题 · mid

  • A.文档被用户下载次数统计
  • B.文档与查询相关性的相对分← 正确答案
  • C.文档字符长度的倒数换算
  • D.文档内关键词出现的频率

答案:B。relevance_score 是模型对“文档与查询相关程度”的相对打分,用途是排序而非绝对度量。它不是下载量、长度或词频,B 正确。不要把它当作严格的概率值,应关注相对顺序。

Q9. 在接入 Cohere Rerank 时,关于查询语句构造的最佳实践是?

单选题 · extreme

  • A.直接传空字符串作为查询
  • B.改写为清晰的检索式语句← 正确答案
  • C.必须翻译成英文才能调用
  • D.重复关键词十次增强匹配度

答案:B。查询质量直接影响重排效果。把口语化问题改写成清晰、聚焦的检索式语句(如“AI 如何提升客服效率”),能让 Rerank 更准确地判断相关性。空串无效,多语言模型无需翻译,重复关键词只会引入噪音。

Q10. 引入 Rerank 后,为什么大模型的推理成本会下降?

多选题 · hard

  • A.送入大模型的文档数量减少← 正确答案
  • B.上下文精简降低输入令牌数← 正确答案
  • C.重排服务本身完全零成本
  • D.后续不再需要调用大模型了

答案:AB。Rerank 把送入 LLM 的文档从几十篇压缩到 3 到 5 篇,文档数量和令牌数都下降,成本和延迟随之降低,A、B 正确。Rerank 服务本身按量计费并非零成本,且 LLM 生成环节仍然必要,C、D 错误。