自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

改進RAG管道檢索文檔質(zhì)量的五種方法 原創(chuàng)

發(fā)布于 2024-10-11 09:00
瀏覽
0收藏

RAG可以利用外部信息提升大型語言模型的性能,其性能依賴于檢索文檔的質(zhì)量。除了標(biāo)準(zhǔn)檢索方法之外,還有4種方法可以提高所檢索文檔的質(zhì)量。

檢索增強生成(RAG)是利用外部信息定制大型語言模型的重要技術(shù)之一。但是,RAG的性能取決于檢索到的文檔的質(zhì)量。除了在RAG管道中使用的標(biāo)準(zhǔn)檢索方法之外,還有這4種技術(shù)有助于提高所檢索文檔的質(zhì)量。

基于標(biāo)準(zhǔn)嵌入的檢索

RAG管道中使用的標(biāo)準(zhǔn)檢索方法是在用戶查詢和知識語料庫的嵌入之間進行相似性搜索。在這種方法中,可以通過以下步驟準(zhǔn)備知識庫:

1.文檔首先被分解成更小的塊(例如500~1000個令牌)。

2.編碼器模型(例如SentenceTransformers或OpenAI嵌入)計算每個塊的嵌入。

3.嵌入存儲在向量數(shù)據(jù)庫中(例如Pinecone或Qdrant)。

改進RAG管道檢索文檔質(zhì)量的五種方法-AI.x社區(qū)

圖1使用標(biāo)準(zhǔn)檢索方法檢索相關(guān)文檔

一旦向量數(shù)據(jù)庫準(zhǔn)備就緒,那么RAG管道就可以開始向用戶查詢添加場景:

1.用戶向應(yīng)用程序發(fā)送查詢。

2.在準(zhǔn)備階段使用的編碼器模型計算查詢的嵌入。

3.將嵌入與向量數(shù)據(jù)庫中存儲的嵌入進行比較,以檢索最相似的文檔。

4.檢索到的文檔的內(nèi)容作為場景添加到用戶提示中。

5.將更新后的提示信息發(fā)送給LLM。

改進RAG管道檢索文檔質(zhì)量的五種方法-AI.x社區(qū)

圖2使用嵌入和向量數(shù)據(jù)庫檢索相關(guān)文檔

文檔和查詢域?qū)R

有時,包含有用信息的文檔在語義上與用戶的查詢不一致。因此,它們嵌入的相似性得分將非常低,RAG管道將無法檢索到它們。

文檔領(lǐng)域?qū)R可以通過修改提示的方式來解決,使其與相關(guān)文檔更加接近。文檔對齊的一種有效技術(shù)是假設(shè)文檔嵌入(HyDE)。

給定一個查詢,假設(shè)文檔嵌入(HyDE)會提示語言模型生成一個包含答案的假設(shè)文檔。這個生成的文檔可能包含虛假的細(xì)節(jié),但它將具有知識語料庫中相關(guān)文檔附近的相關(guān)模式。在檢索階段,不是使用用戶查詢,而是將假設(shè)文檔的嵌入發(fā)送到向量數(shù)據(jù)庫,以計算與索引文檔的相似度得分。

改進RAG管道檢索文檔質(zhì)量的五種方法-AI.x社區(qū)

圖3假設(shè)文檔嵌入(HyDE)框架

還有另一種方法可以改進查詢和文檔之間的一致性。在“查詢域?qū)R”中,使用LLM生成一組問題,每個文檔可以回答這些問題,并將它們的嵌入存儲在向量存儲庫中。在檢索過程中,將查詢的嵌入與問題的嵌入進行比較,并返回與最佳匹配對應(yīng)的文檔。將問題與問題進行比較可以確保查詢和向量存儲之間更好地對齊。

混合搜索

傳統(tǒng)的RAG管道非常有效,但也有其局限性。嵌入模型在捕獲語義信息方面非常有效,但在尋找精確匹配時可能返回不精確的結(jié)果。為此,可以使用經(jīng)典搜索算法或SQL查詢來增強RAG管道。

例如,可以使用像BM25這樣的算法,根據(jù)用戶查詢的關(guān)鍵字搜索文檔。BM25的優(yōu)點是它會自動降低可能出現(xiàn)在大型語言模型(LLM)查詢中的常見詞的權(quán)重,并專注于最重要的關(guān)鍵詞。

或者,可以使用文本到SQL技術(shù)(??text-to-SQL techniques??),該技術(shù)使用LLM根據(jù)用戶的請求創(chuàng)建SQL查詢。然后可以將查詢發(fā)送到關(guān)系數(shù)據(jù)庫以檢索匹配的記錄。

可以組合由不同檢索方法檢索的文檔,刪除重復(fù)的文檔,并將它們作為場景添加到提示符中。這可以確保獲得不同檢索方法的值。

改進RAG管道檢索文檔質(zhì)量的五種方法-AI.x社區(qū)

圖4基于嵌入檢索和BM25的混合搜索

場景檢索

在許多情況下,包含查詢答案的文檔塊缺少重要的信息。如果要處理被分成多個塊的大型文檔,這一點尤其正確。在這種情況下,用戶查詢的答案可能需要來自文檔多個塊的信息。

例如,知識語料庫可能包括X公司的季度收益,想回答這個問題:“X公司2024年第一季度的收入增長是多少?”

季度文件的其中一個部分可能包含正確的答案:“公司的收入與上一季度相比增長了3%。”但這部分并沒有指明是哪家公司,也沒有說明是指哪個時間段。

在這些案例下,可以通過在計算嵌入和索引之前向每個塊添加場景信息來增強檢索。最近,Anthropic AI引入了場景檢索。在上述示例中,包含答案的文檔塊前面將添加以下信息:“這個塊來自X公司的季度收益。它討論了該公司2024年第一季度的收益。”

重新排序

無論如何改進索引和檢索機制,都有可能遺漏某些提示的重要文檔。一個易于實施且廣受歡迎的解決方法是重新排序。

重新排序算法將文檔的全文與用戶查詢進行比較。雖然它們在對整個語料庫進行處理時效率不高,但可以非??焖俚靥幚韼资臋n。因此,如果希望將n個文檔作為場景添加到LLM中,則可以檢索2n或3n個文檔,并通過重新排序算法運行它們,以檢索與查詢相關(guān)的前n個文檔。

??Cohere Rerank??? 是一個快速且易于使用的基于API的重新排序工具。如果想要一個開源的重新排序模型,可以使用??bge-reranker??????。

改進RAG管道檢索文檔質(zhì)量的五種方法-AI.x社區(qū)

圖5 采用重新排序的RAG

注意事項

雖然使用先進檢索技術(shù)可以提高RAG管道的性能,但考慮權(quán)衡因素同樣重要。增加復(fù)雜性層次可能會導(dǎo)致計算和存儲成本上升,或者減慢檢索過程。例如,文檔域?qū)R需要在RAG流程中額外調(diào)用一次LLM,從而減慢流程并在大規(guī)模應(yīng)用時顯著增加成本。采用經(jīng)典搜索算法和重新排序為RAG增加了額外的處理步驟。場景檢索需要多次調(diào)用LLM來生成場景信息,從而增加了準(zhǔn)備和索引步驟的成本。

通常從為任務(wù)設(shè)定預(yù)期準(zhǔn)確率開始,然后確定額外的努力和成本是否值得回報。例如,在一個寫作輔助應(yīng)用程序中,如果期望一位對該主題有全面了解的專家來審查和糾正整個答案,那么可能不需要通過向RAG管道添加額外的處理層來獲得幾個百分點的準(zhǔn)確率提升。另一方面,如果正在開發(fā)一個應(yīng)用程序,其中檢索文檔的準(zhǔn)確性是一個很大的差異化因素,并且用戶不介意多等待幾秒鐘來獲得更準(zhǔn)確的答案,那么添加額外的技術(shù)是有意義的。

原文標(biāo)題:??4 ways to improve the retrieval of your RAG pipeline???????,作者:Ben Dickson

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任
收藏
回復(fù)
舉報
回復(fù)
相關(guān)推薦