• 正文
  • 相關推薦
申請入駐 產業(yè)圖譜

RAG檢索不過關?試試這些優(yōu)化策略,精準度飆升!

03/26 10:00
513
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

近來,RAG成了大語言模型的“救命稻草”,可讓大語言模型回答更準確、更靠譜??蓡栴}來了,很多 RAG 應用的檢索系統(tǒng)還是有點“笨”:要么漏掉關鍵信息,要么抓回一堆無關緊要的“噪聲”,搞得最終答案質量參差不齊。

那么,我們該怎么優(yōu)化 RAG 的檢索算法,讓它既精準又高效呢?今天就來聊聊這個話題,帶你一步步解鎖 RAG 檢索的“進階玩法”!

為什么非得優(yōu)化檢索算法不可?

RAG 的工作流程其實很簡單:

用戶丟出一個問題(Query)

系統(tǒng)去“翻箱倒柜”找相關文檔(Retriever)

把文檔塞給 LLM,讓它生成答案(Generator)

聽起來挺順暢,對吧?但關鍵就在第二步——檢索。如果翻出來的文檔不靠譜,哪怕 LLM 再聰明,也只能“巧婦難為無米之炊”。所以,檢索算法就是 RAG 的命門,優(yōu)化它,才能讓整個系統(tǒng)“起飛”!

傳統(tǒng)檢索方法介紹

我們先來看看常見的檢索方法,各自有啥優(yōu)缺點:

BM25(關鍵詞搜索)

優(yōu)點:擅長精準匹配,像查字典一樣適合結構化數(shù)據(jù)。

缺點:完全不理解語義,同義詞、變體詞一概不認,漏掉的信息可不少。

向量搜索(語義搜索)

優(yōu)點:能“讀懂”句子意思,非常適合非結構化數(shù)據(jù)。

缺點:有時候太“腦洞大開”,抓回一堆似是而非的東西,誤召回讓人頭疼。

單獨靠 BM25 或向量搜索,總覺得差點火候。要不信息丟了,要不噪聲太多。所以,咱們得玩點更高級的——混合搜索(Hybrid Search)!

Hybrid Search簡介

混合搜索就是把 BM25 和向量檢索“捏”在一起,既能抓住關鍵詞,又能理解語義,簡直是“魚和熊掌兼得”。具體怎么操作呢?

第一步:BM25 出馬

根據(jù)關鍵詞鎖定一批相關文檔,精準打擊!

第二步:向量搜索補刀

用 Embedding 計算語義相似度,再撈一批“深藏不露”的好文檔。

第三步:結果融合

加權融合:給 BM25 和向量搜索的分數(shù)加個權重,算個平均值。

交集/并集策略:要么取兩者的“重合部分”(求穩(wěn)),要么全收下(求全),看需求靈活調整。

Reranker:給結果來個“大洗牌”

Hybrid Search 雖然厲害,但偶爾還是會混進一些“雜牌軍”。這時候,Reranker 就該登場了!它的任務是把檢索結果重新排個序,讓最靠譜的文檔站到“C位”。

Reranker 怎么玩?

先用 BM25 和向量搜索召回一堆文檔。

然后請 Reranker 出馬,逐一打分,把最貼合問題的文檔頂?shù)角懊妗?/p>

Query Expansion:讓查詢更“會說話”

有時候,用戶的問題太簡短或模糊,檢索系統(tǒng)“摸不著頭腦”。這時候可以用 Query Expansion,幫查詢“充實”一下,提高召回率。

擴展招式:

WordNet 同義詞擴展:給關鍵詞找“兄弟姐妹”,適合 BM25。

LLM 生成擴展:讓大模型直接改寫查詢,適合語義搜索。

錦上添花的優(yōu)化小技巧

除了上面的大招,還有幾招“小而美”的優(yōu)化方法:

MetaData 過濾:用文檔的時間、分類等元數(shù)據(jù),篩掉不相關的“路人甲”。

動態(tài)調權重:在 Hybrid Search 里,根據(jù)場景調整 BM25 和向量搜索的比重。

多輪對話優(yōu)化:讓用戶多聊幾句,提供更多上下文,查詢自然更精準。

支持Hybrid Search的開源庫

目前,有許多支持 Hybrid Search 的開源庫,它們結合了 BM25 關鍵詞搜索 和 向量搜索,并支持各種后處理優(yōu)化(如 Reranking)。以下是幾款常見的 Hybrid Search 開源庫:

01、LlamaIndex

Github地址:https://github.com/run-llama/llama_index

簡介:LlamaIndex 是一個流行的 RAG 框架,支持 Hybrid Search(BM25 + 向量檢索),并且能夠與 LLM 結合。

特點:

內置 BM25 + 向量檢索融合(可調權重)

支持 FAISS、Weaviate、Qdrant、ChromaDB 等

支持 Reranker(如 Cohere Rerank)提升精準度

02、Jina AI

Github地址:https://github.com/jina-ai/serve

簡介:Jina AI 提供一個強大的 Hybrid Search 解決方案,支持結合 BM25 和向量搜索,并內置多種 Reranker。

特點:

支持 FAISS、HNSW、Qdrant、Weaviate 等

可結合 Reranker 提高搜索質量

可用于 RAG、推薦系統(tǒng)等場景

03、Weaviate

Github地址:https://github.com/weaviate/weaviate

簡介:Weaviate 是一個企業(yè)級的向量數(shù)據(jù)庫,內置 Hybrid Search,允許同時使用 BM25 + 向量搜索 進行檢索。

特點:

支持 OpenAI、Hugging Face 的 Embedding

內置 BM25 搜索,可進行關鍵詞匹配

支持 GraphQL 查詢,可擴展性強

04、Qdrant

Github地址:https://github.com/qdrant/qdrant

簡介:Qdrant 是一個高性能的向量數(shù)據(jù)庫,支持 Hybrid Search,能夠結合 BM25 + 向量搜索 進行檢索。

特點:

輕量級,適合本地或云端部署

支持 REST APIPython SDK

支持 Reranker

05、ElasticSearch

Github地址:https://github.com/elastic/elasticsearch

簡介:ElasticSearch 結合 BM25 和 kNN 向量檢索,實現(xiàn) Hybrid Search,適用于企業(yè)級應用。

特點:

支持 BM25 關鍵詞搜索 + kNN 語義搜索

可與 OpenAI、Hugging Face 的 Embedding 結合

適用于大規(guī)模數(shù)據(jù)檢索

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

致力于分享最前沿、最實用的人工智能(AI)技術,包括深度學習(DL)、自然語言處理(NLP)、機器學習(ML)、計算機視覺(CV)等領域的最新發(fā)展及應用。