成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

RAG 結(jié)果太水?用 RRF + Reranker 重排,效果翻倍提升!

開(kāi)發(fā) 前端
雖然 RRF 很好,但我們終究活在“大模型時(shí)代”,還是想讓模型多干點(diǎn)活。于是我又開(kāi)始摸索 LangChain4j 提供的?Reranker?能力。說(shuō)白了,它就是讓大模型參與到文檔排序中,甚至能做到“語(yǔ)義上最匹配”而不是“向量最接近”。

一、引言

大家好呀~我是小米,一個(gè)在知識(shí)工程和大模型圈里“打怪升級(jí)”的技術(shù)搬磚人。

最近在做 LangChain4j 項(xiàng)目時(shí),碰到了一個(gè)經(jīng)典又棘手的問(wèn)題:RAG 召回結(jié)果的質(zhì)量太不穩(wěn)定了!

你是不是也遇到過(guò)這些坑?

  • 相似度Top5的文檔里,真正相關(guān)的就一兩個(gè);
  • 大模型明明可以回答問(wèn)題,但一旦RAG召回錯(cuò)了方向,結(jié)果就是答非所問(wèn);
  • 想用 rerank 但又不知道從哪下手,或者性能堪憂?

于是,我開(kāi)始研究 LangChain4j 的 結(jié)果重排機(jī)制,終于搞懂了兩個(gè)超核心的武器:RRF(Reciprocal Rank Fusion)和 Reranker(重排序器)。

今天,就讓我用講故事的方式帶大家一起搞懂:RAG結(jié)果重排的正確姿勢(shì)!

二、RRF:復(fù)古又強(qiáng)大的重排算法

故事要從一次開(kāi)會(huì)說(shuō)起。

那天我們組在review項(xiàng)目搜索效果的時(shí)候,老板語(yǔ)重心長(zhǎng)地說(shuō):

“召回你調(diào)得再好,排序沒(méi)調(diào)好一切白搭。你看看人家用RRF,多個(gè)召回融合一下,效果甩你幾條街?!?/p>

我當(dāng)場(chǎng)尷尬地笑了笑,暗地里狂查資料。于是,我遇見(jiàn)了 RRF ——一個(gè)“古早”但非常有用的重排方法。

1. RRF的基本概念

RRF,全稱是 Reciprocal Rank Fusion,翻譯過(guò)來(lái)就是“倒數(shù)排名融合”。

它最早是用在信息檢索(IR)領(lǐng)域的,比如TREC競(jìng)賽中用來(lái)融合多個(gè)搜索系統(tǒng)的結(jié)果。

那它為啥對(duì)RAG也管用?

因?yàn)樵赗AG中,我們也常常需要從多個(gè)維度去檢索文檔,比如:

  • 向量相似度排序;
  • BM25 關(guān)鍵詞召回;
  • 混合召回后的初始排序結(jié)果。

這些排序可能各有優(yōu)劣,有的文檔在向量里排第一,但在關(guān)鍵詞里排第十,咋辦?

RRF就來(lái)幫你綜合考慮這些排序的“相對(duì)位置”,不靠絕對(duì)分?jǐn)?shù),而是用位置的倒數(shù)來(lái)融合。

2. RRF的計(jì)算過(guò)程

來(lái)看一個(gè)例子!

假設(shè)你有兩個(gè)候選列表:

  • List A(向量召回): doc1, doc2, doc3
  • List B(關(guān)鍵詞召回): doc3, doc2, doc4

RRF 計(jì)算是這樣的,每個(gè)文檔在每個(gè)列表中根據(jù)排名位置算一個(gè)分?jǐn)?shù):

公式如下:

圖片圖片

其中 k 是一個(gè)調(diào)節(jié)參數(shù)(通常為 60),避免排名靠后的影響太小。

我們計(jì)算一下 doc2 的得分:

  • 在A中排名2 → 1 / (60 + 2) = 1 / 62 ≈ 0.0161
  • 在B中排名2 → 1 / 62 ≈ 0.0161
  • 總分 ≈ 0.0322

最后,對(duì)所有文檔按得分排序,就是融合后的新順序。

好處:

  • 不依賴具體分?jǐn)?shù)(比如embedding相似度可能不好比);
  • 鮮明地獎(jiǎng)勵(lì)那些多個(gè)列表都出現(xiàn)的文檔;
  • 不需要訓(xùn)練,計(jì)算簡(jiǎn)單,適合輕量級(jí)場(chǎng)景。

三、Reranker:大模型時(shí)代的重排利器

雖然 RRF 很好,但我們終究活在“大模型時(shí)代”,還是想讓模型多干點(diǎn)活。

于是我又開(kāi)始摸索 LangChain4j 提供的 Reranker 能力。

說(shuō)白了,它就是讓大模型參與到文檔排序中,甚至能做到“語(yǔ)義上最匹配”而不是“向量最接近”。

那它怎么用?我們繼續(xù)看。

1. 基本用法:幾行代碼就能跑起來(lái)

假設(shè)你已經(jīng)用了 LangChain4j 的 RAG 模板:

圖片圖片

就這么簡(jiǎn)單!你只需要包裹原始 Retriever,讓它用 Reranker 再排一次。

從現(xiàn)在開(kāi)始,返回的 top-5 不再僅僅是向量相似度,而是“結(jié)合語(yǔ)義和上下文”的“模型判定最相關(guān)”的文檔。

是不是很酷!

2. 關(guān)鍵組件說(shuō)明

要搞懂這個(gè) reranker,是啥在“做決定”呢?關(guān)鍵在這幾個(gè)類:

  • Reranker: 接口,代表“重排序器”的統(tǒng)一標(biāo)準(zhǔn);
  • OpenAiReranker: 用 OpenAI 實(shí)現(xiàn)的一個(gè)具體版本;
  • RerankingRetriever: 將任意 Retriever 包裹成帶重排能力的新 Retriever。

你也可以實(shí)現(xiàn)你自己的 Reranker,比如用 HuggingFace 上的 bge-reranker 模型。

LangChain4j 的好處就是高度模塊化,你可以自定義任何一個(gè)部分。

3. 使用注意事項(xiàng)

說(shuō)到這里,我也要潑點(diǎn)冷水:

  • 性能問(wèn)題:每一次重排都要發(fā)起多次 API 請(qǐng)求或模型推理,尤其是調(diào)用大模型的時(shí)候,開(kāi)銷(xiāo)不??;
  • token 限制:有些 reranker 模型是基于 cross-encoder,需要一次性編碼 query 和文檔對(duì);
  • 延遲較高:如果你對(duì)響應(yīng)時(shí)間很敏感,可能就不適合實(shí)時(shí)使用;
  • 調(diào)參很重要:你要調(diào) topK(重排數(shù)目),以及原始Retriever返回的數(shù)量。

我踩過(guò)的坑里最大的是:

retriever返回了20條,reranker只排top5,結(jié)果大模型常常 miss 掉關(guān)鍵文檔。

后來(lái)我才意識(shí)到:文檔召回足夠廣、rerank才有用武之地。

4. 進(jìn)階使用:結(jié)合評(píng)分、多階段重排

有了基礎(chǔ)能力,我們也可以玩點(diǎn)花的。

多階段重排:

  • 你可以先用向量召回Top30 → RRF融合Top15 → 再用Reranker重排Top5。
  • 這樣可以兼顧速度與語(yǔ)義質(zhì)量。

返回帶分?jǐn)?shù)的文檔:

  • LangChain4j的 Reranker 其實(shí)會(huì)生成“相關(guān)性得分”,你可以把它加權(quán)計(jì)算,甚至用于日志分析、調(diào)試評(píng)估。

本地模型加速:

  • 你可以把 HuggingFace 的 bge-reranker-large、cohere-rerank 模型部署在本地,然后自定義實(shí)現(xiàn) Reranker 接口,提升性能,節(jié)省成本。

四、RRF vs Reranker:到底該選誰(shuí)?

終于來(lái)到壓軸對(duì)比啦!

圖片圖片

小米的建議:

  • 輕量場(chǎng)景(知識(shí)庫(kù)問(wèn)答、前端展示、離線處理):先用 RRF 提高召回質(zhì)量;
  • 精度優(yōu)先(法律文書(shū)、醫(yī)療對(duì)話、學(xué)術(shù)搜索):配合 reranker 精排,提升回答質(zhì)量;
  • 二者結(jié)合使用:多源召回 + RRF融合 + Reranker精排,是目前效果最好的一種組合。

五、尾聲:從“召回”走向“理解”

故事說(shuō)到這里,可能你已經(jīng)意識(shí)到了:

在 RAG 任務(wù)中,光有Retriever還不夠,我們還需要能理解語(yǔ)義、判斷價(jià)值的排序機(jī)制。

RRF讓我們?cè)诙鄠€(gè)角度中找到共識(shí),Reranker則讓大模型的“智商”參與決策。

責(zé)任編輯:武曉燕 來(lái)源: 軟件求生
相關(guān)推薦

2025-03-10 08:00:00

RAG檢索Reranker

2024-03-26 00:00:07

2024-10-07 08:49:25

2025-06-27 08:14:05

2025-06-17 01:00:00

Dify智能體RAG

2025-03-06 10:41:32

2025-05-16 07:23:59

2023-10-26 08:33:16

Redis管道技術(shù)

2024-03-08 09:24:54

技巧RAG檢索

2025-04-28 09:39:40

2009-09-01 12:52:06

雪豹蘋(píng)果操作系統(tǒng)

2023-11-28 15:21:00

AI模型

2025-02-11 08:50:14

2024-08-06 08:43:17

2025-04-21 08:45:00

2023-11-03 15:33:22

Docker鏡像云計(jì)算

2024-12-20 12:30:00

Python'|'代碼

2015-06-30 10:36:00

2025-02-06 11:20:00

開(kāi)發(fā)工具AI
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 福利网站在线观看 | 欧美在线观看一区 | 亚洲成人一区二区 | 91aiai| 欧美2区 | 91在线一区二区 | 国产91在线播放 | 久草视频观看 | 国产精品久久久久久亚洲调教 | 日本精品视频在线观看 | www.天堂av.com| 一区二区三区免费 | 在线观看亚洲专区 | 亚洲精品一区二区三区中文字幕 | 久久久久久亚洲国产精品 | 成人一区二区三区在线 | 国产免费一区二区 | 91av视频在线免费观看 | 国产专区在线 | 久久777| 欧美a级成人淫片免费看 | 在线观看日本高清二区 | 亚洲在线一区二区 | 成人三级av | 免费特级黄毛片 | 国产丝袜一区二区三区免费视频 | 日本视频中文字幕 | 久久91精品久久久久久9鸭 | 国产乱码精品一区二区三区中文 | 97av视频| 色屁屁在线观看 | 99pao成人国产永久免费视频 | 国产大学生情侣呻吟视频 | 北条麻妃av一区二区三区 | 在线免费观看a级片 | 日韩欧美国产一区二区三区 | 色视频成人在线观看免 | 自拍偷拍欧美 | 日韩欧美亚洲 | 久久久99国产精品免费 | 久久久高清|