想象你是某家公司的招聘负责人,邮箱里每天涌入上千份简历。如果让总裁逐一面试,公司早就瘫痪;于是你先让系统按关键词筛出几百份“基本合格”的简历,再请一位金牌猎头把这几百位候选人放到真实岗位场景中仔细考察,逐一打出“匹配分”,按分数从高到低推荐给总裁。这位金牌猎头,就是 RAG 检索增强生成系统中的重排器(Reranker)。 RAG 系统从知识库中找答案时,第一步通常用向量检索或 BM25 从海量文档里粗召回一批候选——快但粗糙,只懂字面匹配。第二步,Cohere Rerank API 像金牌猎头一样,把用户问题(query)与每份候选文档放在一起“深度面试”,输出一个 0 到 1 的相关度分数,帮系统挑出真正能回答问题的 Top-K 文档,再交给大模型生成答案。这篇文章将带你认识 Cohere Rerank API 的调用方式、批量处理、多语言支持、延迟与成本优化,以及如何把它接入 RAG Pipeline。学完,你就能像指挥金牌猎头一样,让检索结果又快又准。
对 AI 应用开发者而言,重排是决定 RAG 检索质量天花板的关键一环。掌握 Cohere Rerank API 的集成与调优,能让你的搜索问答产品在精度、延迟与成本之间找到最佳平衡,也是检索团队招聘的高频考点。
可视化演示
展示两阶段检索Pipeline(Bi-Encoder粗筛→Cohere Rerank重排)、API与自建模型对比和延迟优化策略。切换模式探索RAG重排集成。
本节配有交互动效(进入视口后自动加载,约 3KB)。
两阶段检索Pipeline 第一阶段Bi-Encoder粗筛:从数万条文档快速缩小到100-500条候选集 第二阶段Cohere Rerank:Cross-Encoder精排候选集,语义相关性显著提升 query → Bi-Encoder(粗筛) → top_500 → Cohere Rerank(精排) → top_10 两阶段检索平衡速度与质量
重排原理简介
金牌猎头凭什么比简历关键词筛得更准?因为他不只看“关键词是否出现”,而是把候选人的经历、项目、性格放进具体的岗位场景里,判断“这个人来了能不能干成事”。RAG 里的重排器做的正是这件事。粗召回(向量检索或 BM25)好比 HR 用关键词从人才库捞出几百份简历,速度快但粗暴;重排器则把查询和文档放到一起“深度面试”,输出一个 0 到 1 的匹配分。
Cohere Rerank API 是一个托管的重排服务,底层是基于交叉编码器(Cross-Encoder)的深度模型。所谓交叉编码器,就是让查询的每个词与文档的每个词做交互式注意力计算,而不是像向量检索那样把两者分别编码成“简历标签”再做余弦相似度。这种交互让模型能捕捉“补贴”和“退改签”这类表面无关、语义相关的关系。
具体来说,模型把查询和文档拼接后送入 Transformer 编码,最后通过一个前馈网络输出相关度分数。由于每次打分都要真实地“读一遍”查询与文档,效果远好于独立编码的向量检索,但代价是计算更慢,所以它必须放在粗召回之后、生成之前,只对少量候选做精筛。
这就像猎头面试从来不是看一眼简历标题就下结论,而是逐条阅读候选人项目细节、并与岗位要求逐项对照,最后才打出一个“匹配分”。粗召回负责把人请进面试间,重排负责给出靠谱的面试结论——两者缺一不可。
- 两个编码向量查询 q 和文档 d 先各自通过编码器变成向量。
- 拼接操作分号 [;] 表示把两个向量前后拼接成一个更长的向量,长度翻倍。
- 前馈网络 FFN多个全连接层把拼接向量映射成一个标量分数,刻画两者匹配程度。
- Sigmoid 归一化Cohere 内部用 Sigmoid 把输出压缩到 0~1,这就是你在 API 响应里看到的 relevance_score。
API调用入门
想请猎头帮忙,你得知道猎头公司的电话、预约方式,还要把候选人和岗位需求整理好提交过去。Cohere Rerank API 的调用也是这个流程:端点就是猎头公司的地址,API Key 就是你的预约凭证,请求体就是材料清单。
调用 Rerank API 只需一个 HTTP POST 请求:端点是 https://api.cohere.ai/v1/rerank,请求头带上 Authorization: Bearer <你的API_KEY>,请求体里放四个关键参数——model(模型名,如 rerank-multilingual-v3.0)、query(用户问题)、documents(候选文档字符串列表)、top_n(返回前几个结果)。
API 返回一个 JSON 对象,核心是 results 数组。每个元素包含 index(对应候选文档的下标)和 relevance_score(0~1 相关度分数)。注意:返回顺序已经按分数从高到低排好,你只需用 index 找回原始文档,交给下游大模型即可。
在代码里,你不需要自己实现 argsort——Cohere 返回的 results 已经排好序。你只要像拆录取通知书一样,按 index 把原始文档取出来就行。猎头把“推荐名单”递给你,你要做的只是按名单打电话。
- 分数集合s_i 是第 i 个文档经 Rerank API 打出的相关度分数。
- argsort 排序返回按分数从大到小的原始下标序列,例如分数 [0.9, 0.3, 0.6] 得到 [0, 2, 1]。
- 前 K 截断取该序列的前 K 个下标,也就是只保留排名最靠前的 K 个文档。
批量处理优化
猎头面候选人时,如果只攒一个人就开一场面试,效率极低;一天安排 8 场、每场多组候选人才是常态。Rerank API 同样支持“批量面试”:单次请求可以一次性传入最多 1000 个候选文档,服务器会对整批文档与查询同时打分,大幅减少网络往返开销。
批量处理的第一个要点是“分批切割”:当候选文档超过 1000 个时,把候选列表切成多个批次,每批一个请求,最后把各批结果合并后统一排序。第二个要点是“并发控制”:虽然可以用多线程/异步并发发起多个批次请求,但要留意 API 的速率限制,避免触发 429 限流。第三个要点是“文档截断”:调用时用 truncate 参数控制每条文档的长度,例如只保留前 100 个 token,防止超长输入被模型静默截断、也避免浪费计算。
批量面试的本质是“摊薄沟通成本”:猎头一次面十个人,比面十次一个人省下的是九次寒暄时间。同样的,一次请求传 1000 个文档,比 1000 次请求省下的是 999 次网络握手。对高吞吐的 RAG 系统,这是性价比最高的优化手段。
- N 与 BN 是待重排文档总数,B 是单次请求允许的最大文档数(默认 1000)。
- 向上取整ceil 表示有小数也进一位,因为最后一批哪怕只有 1 个文档也算一次请求。
- 单批耗时L_batch 是服务器打分耗时,L_net 是网络往返耗时,两者相加就是一批的总耗时。
多语言支持
这家猎头公司服务跨国企业,猎头精通中英文,还能把法国候选人的经历准确翻译成英文岗位描述。Cohere Rerank 的多语言模型 rerank-multilingual-v3.0 就是这种“同声传译”能力——它覆盖 100 多种语言,把不同语言映射到同一个语义空间。
传统跨语言检索的做法是“先翻译再匹配”:把中文 query 翻译成英文,再检索英文文档。但翻译会引入额外延迟和语义损失,专有名词还可能译错。多语言 Rerank 一步到位:英文 query 直接匹配中文文档,法文问题可以命中日文手册,全程不需要翻译步骤。
从原理上讲,多语言模型在训练时用大量平行语料把“意思相同、语言不同”的句子拉近到同一语义区域。于是交叉编码器在计算查询与文档交互时,跨语言的语义对应关系已经内置在模型权重里,中英文混搭、甚至代码与自然语言混合的场景都能稳健处理。
对出海企业而言,多语言重排可以说是“猎头自带翻译团队”。以前你要先请翻译(机器翻译)再请猎头(检索匹配),链路长、误差叠加;现在猎头直接同声传译,一步到位。
- 跨语言输入q_en 表示英文查询,d_zh 表示中文文档,它们的语言不同但语义可比。
- 多语言编码器f_multi 是经过多语言语料训练的重排模型,内部共享一个语义空间。
- Sigmoid 映射σ 把模型输出的原始分数压到 0~1,方便排序比较。
延迟优化策略
猎头再牛,如果一周后才给反馈,候选人早被别人签走了。RAG 的在线问答同样对延迟极其敏感——用户敲完字的下一秒,答案就该出现。重排是链路里多出来的半步,必然带来额外耗时,控制延迟是上线前必须做的功课。
第一个手段是“模型选型”:Cohere 提供多个型号,速度和精度各有取舍。对速度敏感的场景,选择响应更快的型号;对精度要求极高的离线分析,再上更重的模型。第二个手段是“文档剪枝”:不要让重排处理全部几千个候选,而是让第一阶段的粗召回先筛出 100~200 个,再送进 Rerank。猎头永远只面 HR 初筛后的人,不会去人才市场摆摊。
第三是“缓存机制”:对高频相同的查询(例如“怎么退款”)把重排结果缓存 5~10 分钟,命中缓存直接返回,完全跳过重排计算。第四是“异步调用”:把重排请求与上游检索、下游生成解耦,用异步任务并行推进,而不是同步阻塞等待响应。
延迟优化的本质是“让猎头在正确的时间面正确的人”:剪枝是别让猎头看无关简历,缓存是面过一次的人不用再面,异步是让猎头手里同时多几个候选。三重手段叠加,p95 延迟往往能压下一半以上。
- 网络耗时L_net 是你服务器到 Cohere 边缘节点的往返时间,跨地域调用会明显变大。
- 推理耗时L_infer 是模型对整批文档打分的时间,与文档数量和长度正相关。
- 排队耗时L_queue 是请求在服务端等待的时间,并发过高时会急剧上升。
成本控制之道
金牌猎头佣金不菲,按推荐成功率收费;Cohere Rerank 也是按调用量计费,大约每 1000 个“文档-查询”打分单位计一次费。账单随着候选文档数量线性上涨,控制不好,月底一看全是眼泪。
成本公式的启示很直白:文档数量越少,费用越低。所以成本控制的第一原则是“少重排”——通过粗召回把候选压缩到 top 100 再精排,而不是把整个知识库交给重排器。那些永远排不进前十的文档,根本不需要面试。第二是“复用结果”:对高频查询加时间窗口缓存,同一个问题一周内不重复计费。第三是“预算管理”:设置每日调用上限与告警,账单异常时第一时间发现。最后是“模型水位”:简单场景用基础型号,复杂跨语言查询才用重型多语言模型,别大炮打蚊子。
猎头费花得值不值,关键看你约了多少候选人约谈。聪明的招聘官永远先看简历再安排面试——对应到 RAG 就是“先粗召回收紧,再重排精筛”。把有限的预算花在最可能入选的那批文档上,既是成本策略,也是效果策略。
- 重排文档数N_docs 是所有请求中参与打分的文档总数,注意是文档数不是请求数。
- 计费单位换算Cohere 按每千文档计费,1000 是公式里的换算系数。
- 单价相乘P_unit 是每个计费单位的价格,不同模型型号价格不同。
自建模型对比
如果说 Cohere Rerank 是外聘金牌猎头,那自建模型就是公司自己培养一支面试官团队。前者按次收费、随叫随到;后者前期要盖面试间(买 GPU)、养团队(招算法工程师)、年年搞培训(重新训练模型)。二者孰优孰劣,取决于你的使用频率与团队规模。
自建重排模型(例如用开源的 bge-reranker 微调)的优势是数据不出域、可以针对垂直领域定制、没有单次调用费。但“没有调用费”不等于“免费”:总拥有成本(TCO)要算三笔账——硬件采购(GPU 服务器与网络设备)、月度运维(监控、扩缩容、调优人力)、模型迭代(数据标注、重新训练)。
相比之下,Cohere Rerank API 零部署、全球边缘节点低延迟、模型由官方持续训练更新。对大多数百万级文档以下的中小 RAG 系统,API 的综合成本与精度都明显占优;只有当每天重排调用量达到千万级、且团队有成熟的算法与运维能力时,自建才有规模效应。用自己的双手养一支猎头团队,不是不行,但要先算清楚这笔账。
一个刚起步的团队,与其花三个月自建面试官团队,不如先雇金牌猎头把业务跑起来。等订单量大到猎头费超过养团队的成本时,再考虑自建——这个“分水岭”在 RAG 场景里通常出现在每天千万级调用之后。
- 初始成本C_init 是购买 GPU 服务器、搭建集群的一次性投入。
- 运营成本C_ops 是每月的机房电费、带宽、监控与工程师维护成本,T 是运行月数。
- 更新成本C_update 是每次模型重新训练与上线的成本,包括数据标注和算力消耗。
RAG集成实战
完整招聘流程是:人才系统粗筛海选(召回)→ 猎头精面打分(重排)→ 总裁拍板录用(生成)。RAG 的重排集成正是这个“三步流水线”的中间环节,位置错了、顺序反了,效果都大打折扣。
一个典型的 RAG Pipeline 长这样:用户问题 query 先进向量检索或 BM25,召回 100~200 个候选文档;随后调用 Cohere Rerank 对这 100~200 个候选打分排序,取 top_k(通常 3~5 个)送入大模型生成答案。如果你的系统有多路检索(向量 + 关键词 + 图检索),重排之前还需要做融合——比较轻量的方法是倒数排名融合 RRF:各路检索器各自给出排名,融合时只看名次不看分数。
集成时注意三点:第一,重排只针对候选文档,不是整个知识库,候选集会随检索质量波动,要给粗召回留出足够召回率;第二,在检索与生成之间加一个缓冲层,对重排结果去重、丢弃与 query 无关的噪声;第三,上线后用量化指标评估,例如 Hit Rate、MRR、NDCG@K,对比接入 Rerank 前后的检索质量提升幅度,用数据说话。
等猎头把精面名单交到总裁手里,总裁只需要从三五位候选人中直接拍板——这正是 RAG 的最后一跳:大模型只需要读重排后的 Top-K 文档,就能给出高质量回答,不被噪声文档带偏。重排不是可选项,而是检索质量的“守门员”。
- 多路检索M 是检索路数,例如一路向量检索、一路 BM25 关键词检索,共 M=2。
- 排名倒数rank_i(d) 是文档 d 在第 i 路结果中的名次,名次越小,倒数越大,贡献越高。
- 累加求和把各路的贡献相加,得到融合后的总分,最后按总分排序输出给 Rerank。
AI 应用场景
智能客服 FAQ 精排
阶段:检索增强生成(RAG)中的检索精排阶段
解决的问题:传统向量检索对同义改写不敏感,“信用卡怎么还款”和“如何还卡债”在字面上差异大,召回结果经常跑偏。Cohere Rerank 用语义交互精排后,能准确把真正相关的 FAQ 顶到前面。
具体案例:某银行手机 App 客服中,用户问“信用卡怎么还款”,向量检索召回 80 条 FAQ,Cohere Rerank 将“信用卡还款操作指南”排到第 1 位,同时把“信用卡申请流程”“积分兑换”等无关结果压制到末尾,人工评测的答案命中率从 71% 提升到 93%。
跨国企业多语言知识库检索
阶段:跨语言检索重排阶段
解决的问题:中文用户查英文文档、日语用户查中文手册等跨语言场景,传统“先翻译再检索”的方案延迟高且专有名词翻译容易出错。多语言重排直接在同一语义空间中打分,省掉翻译环节。
具体案例:一家出海电商团队的内部技术知识库同时有中英日三种语言。接入 rerank-multilingual-v3.0 后,中文提问“订单支付失败怎么办”能直接命中英文排障手册,测试集上的 Recall@5 从 58% 提升到 84%,端到端延迟没有增加。
高并发问答的延迟与成本双优化
阶段:在线问答服务优化阶段
解决的问题:重排 API 加入链路后,如果直接用全量候选,p95 延迟和账单都会飙升。需要通过候选剪枝、结果缓存、模型选型的组合拳控住成本。
具体案例:某知识问答产品每日 200 万次查询,接入 Cohere Rerank 后先用本地 BM25 召回 Top 200,再重排取 Top 5,配合 10 分钟查询缓存,p95 延迟从 900ms 降至 320ms,月度重排账单下降约 60%,回答质量评分不变。
Python 演示
"""Cohere Rerank API integrated into a minimal RAG rerank pipeline."""import osimport requests API_KEY = os.getenv("COHERE_API_KEY", "YOUR_API_KEY")RERANK_URL = "https://api.cohere.ai/v1/rerank"MODEL = "rerank-multilingual-v3.0" def coarse_recall(query, docs, k=20): """First-stage recall. In real apps this is vector search or BM25.""" return list(enumerate(docs))[:k] def rerank(query, candidates, top_n=3): """Call Cohere Rerank API and return (idx, doc, score) sorted by score.""" headers = { "Authorization": "Bearer " + API_KEY, "Content-Type": "application/json", } payload = { "model": MODEL, "query": query, "documents": [doc for _, doc in candidates], "top_n": top_n, } resp = requests.post(RERANK_URL, headers=headers, json=payload, timeout=10) resp.raise_for_status() ranked = [] for item in resp.json()["results"]: idx, doc = candidates[item["index"]] ranked.append((item["index"], doc, item["relevance_score"])) return ranked if __name__ == "__main__": docs = [ "Refund policy: free cancellation within 24 hours before departure.", "Refund time: the refund usually arrives within 3 to 5 working days.", "How to apply: open App order center and click Apply Refund button.", "Announcement: customer service hotline opens 9am to 6pm on holidays.", "Member benefits: gold members enjoy free upgrade and priority line.", "Points rule: earn 1 point per dollar, redeem for miles or coupons.", ] query = "How to apply for a flight ticket refund" candidates = coarse_recall(query, docs, k=6) print("recall candidates:", len(candidates)) for idx, doc, score in rerank(query, candidates, top_n=3): print(f"idx={idx} score={score:.4f} doc={doc[:24]}")
coarse_recall 模拟第一阶段的粗召回,再调用 Cohere Rerank API 对候选文档批量精排,最后打印 Top-3 结果与相关度分数。API_KEY = os.getenv("COHERE_API_KEY", "YOUR_API_KEY")从环境变量读取密钥,避免把密钥硬编码进代码仓库。payload` 中的 `"documents": [doc for _, doc in candidates]把粗召回得到的「下标+文档」对拍平成纯文档字符串数组,一次请求批量传给 API 打分。resp.raise_for_status()当 API 返回 4xx/5xx 时直接抛异常,防止静默拿错误数据继续跑流程。candidates[item["index"]]用 API 返回的下标找回原始文档,因为 API 返回的顺序不一定与输入顺序一致。ranked.append((item["index"], doc, item["relevance_score"]))把下标、原文与分数打包保存,供下游大模型按分数取 Top-K 使用。
常见误区
误区Rerank 返回的 score 是 0~1,我直接拿它做全局过滤,比如只保留 0.5 分以上的文档,低于 0.5 的一律不要。
正解Rerank 分数是用来在「当前候选集内」排序的相对分数,不是统计学上的概率。同一个 0.4,在一个难查询下可能是最高分,在简单查询下却垫底。做跨查询比较或过滤时,应使用排名百分位或归一化分数,而不是原始分值。猎头给 10 个候选人打分,0.4 分可能是这一组里最匹配的,换一批候选人同样的 0.4 可能排倒数。
为何常见:分数恰好落在 0~1 区间,长得像概率,很容易让开发者误以为它有绝对意义。
误区重排既然能提升精度,那把 top_n 设为 100,把所有候选都精排出来,生成时全塞进上下文,信息不是越多越好吗?
正解top_n 越大,延迟与费用几乎线性上升;而大模型上下文窗口有限,塞入过多文档反而稀释注意力,可能让答案更差。经验上取 3~5 个就足够——就像总裁面试候选人不该一次见 100 个人,面太多反而记不住谁是谁。
为何常见:直观上「更多信息 = 更好结果」,忽略了延迟、成本与注意力稀释三个代价。
误区Rerank 模型名字都是英文的,代码能跑就行,中文效果应该也差不多,没必要细看型号。
正解普通 rerank-v3.0 以英文语料为主,中文语义理解明显弱于专门的多语言模型。中文查询配中文文档时,应选 rerank-multilingual-v3.0 或在中文语料上微调过的专用模型,匹配质量可能相差十个点以上。就像请一位只懂英文的猎头来面中文岗位候选人,业务理解必然打折扣。
为何常见:很多人把「模型支持某种语言」误解为「所有语言都精通」,忽略了训练语料的分布差异。
误区API 每次调用都花钱,自建模型部署一次就不用再付费,次数多了肯定更划算。
正解自建的 TCO 要算 GPU 硬件、机房、运维人力、监控告警、模型迭代与标注成本。多数中小团队调用量不足以摊薄固定成本,自建反而更贵,且自建模型的精度通常落后于 Cohere 持续训练的大模型。猎头按次收费看着贵,但自己养一个面试团队的成本高得多——除非你天天都在大规模招聘。
为何常见:只看到单次调用费的「变量成本」,忽略了硬件与人力这些「固定成本」。
误区用多语言 API 之前,我把中文 query 翻译成英文再查英文文档,效果应该差不多,何必依赖多语言模型。
正解翻译会引入额外延迟和语义损失,专有名词、新兴词汇常常译错;多语言 Rerank 直接在统一语义空间中打分,省去翻译环节,对语码混合(如中英夹杂)也更鲁棒。翻译相当于让猎头先听一轮口译再面试,多了一层损耗,不如猎头直接用多语言能力面。
为何常见:「先翻译再匹配」符合日常经验直觉,但实际链路更长、误差叠加更多。
面试题
Q1. 在 RAG Pipeline 中,Cohere Rerank 应该放在哪个环节?
- A.文档预处理入库阶段
- B.粗召回之后生成之前← 正确答案
- C.大模型生成答案完成时
- D.与用户输入查询同时执行
答案:B。重排是对粗召回候选的精筛,必须在检索之后、把上下文交给大模型之前。文档入库阶段没有 query 无法打分;生成完成后再重排已经无法影响答案;与查询同时执行时候选文档还没产生。就像猎头必须等 HR 初筛完简历才能开始面试。
Q2. Rerank API 返回结果中,用来决定文档顺序的核心字段是?
- A.生成的答案内容
- B.文档的相关度分数← 正确答案
- C.文档的原始内容
- D.消耗的令牌数量
答案:B。Cohere Rerank 返回的 results 数组每项包含 index 和 relevance_score,排序依据就是 relevance_score 从高到低。答案文本、原文、token 消耗都不是排序依据。
Q3. 相比向量粗检索,交叉编码器重排的优势有哪些?
- A.核对查询与文档语义深交互← 正确答案
- B.单次推理计算量更少更快
- C.对同义改写与长尾词更敏感← 正确答案
- D.可处理比粗检索更多的文档量
答案:AC。A 是交叉编码器的核心优势,查询与文档逐词交互;C 也正确,语义匹配对同义改写更鲁棒。B 反了,重排因为深度交互反而更慢;D 也错,重排受限于计算量,处理文档量远少于粗检索。
Q4. 批量重排时,单次请求最多支持传入多少候选文档?
- A.100 篇选项
- B.1000 篇选项← 正确答案
- C.5000 篇选项
- D.10000 篇选项
答案:B。Cohere Rerank 单次请求最多支持 1000 个文档,超过时需分批调用再合并排序。这是批量处理章节的核心容量约束,也是计算总耗时公式中 B=1000 的原因。
Q5. 以下哪种方式能最直接地降低单次 Rerank 的响应延迟?
- A.一次传入更多候选文档
- B.调低返回的 top_n 数值← 正确答案
- C.大幅延长查询的文本长度
- D.使用阻塞式同步调用
答案:B。top_n 控制精排数量和返回规模,调小它最直接减少计算量与传输量。更多文档、更长 query 都会增加耗时;同步调用会让调用线程一直等待,反而拉高感知延迟,应该用异步。
Q6. 针对 Cohere Rerank 的成本优化,下列哪些做法是合理的?
- A.先粗召回再精排压缩候选数← 正确答案
- B.对高频重复查询启用缓存← 正确答案
- C.把全部文档放入单次请求
- D.无限提高每秒请求并发数
答案:AB。A 和 B 能显著降低参与打分的文档总量,直接减少账单。C 虽然不增加请求次数,但文档总量没变,费用照付且可能超 1000 上限;D 会触发限流或提高并发费用,不属于成本优化。
Q7. 中英文混合场景下,应选择哪个 Cohere 模型参数?
- A.rerank-v3.0 基础模型
- B.rerank-multilingual-v3.0← 正确答案
- C.embed-english-v3.0 嵌入模型
- D.command-r-plus 生成模型
答案:B。多语言场景必须用 rerank-multilingual-v3.0,它在 100+ 语言上训练,支持跨语检索。基础模型英文优先;embed 是向量嵌入模型不负责重排;command 系列是生成模型,不走重排流程。
Q8. 自建重排模型与调用 Cohere Rerank API 相比,最大的劣势是什么?
- A.私域数据更容易保护
- B.推理速度显著更快
- C.基础运维成本高昂← 正确答案
- D.模型精度天然更高
答案:C。自建要自行承担 GPU 采购、部署、监控、迭代等固定成本,这正是 API 模式的最大优势。A 反而是自建的优点;B 通常不成立,托管 API 有边缘节点优化;D 中小团队自建精度往往低于大厂持续训练的产品级模型。
Q9. 下列哪些手段能有效降低重排链路的端到端延迟?
- A.对长文档先截断再送重排← 正确答案
- B.给相同查询加时间窗口缓存← 正确答案
- C.粗召回先剪枝到前两百篇← 正确答案
- D.增加每次请求的文档批量数
答案:ABC。A 截断减少模型输入长度,直接降低推理耗时;B 缓存命中可完全跳过重排;C 剪枝缩小待排候选集。D 放大会增大单次请求处理时间,反而提高单批延迟,它优化的是吞吐而不是延迟。
Q10. RRF 融合公式中的常数 k(通常取 60)的主要作用是什么?
- A.调整底层检索的总权重
- B.平滑分母防止除零← 正确答案
- C.设定重排的分数阈值
- D.控制批量划分大小
答案:B。RRF 分母为 k + rank,若 k=0,排名第 1 的文档会得到 1/1 的极端高分,且从 0 计数时排名 0 会除零。k 作为平滑常数,既防止除零,又削弱头部名次差异的过度影响。