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

改進(jìn)RAG管道檢索文檔質(zhì)量的五種方法

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

譯者 | 李睿

審校 | 重樓

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

混合搜索

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

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

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

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

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

場(chǎng)景檢索

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

例如,知識(shí)語(yǔ)料庫(kù)可能包括X公司的季度收益,想回答這個(gè)問(wèn)題:“X公司2024年第一季度的收入增長(zhǎng)是多少?”

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

在這些案例下,可以通過(guò)在計(jì)算嵌入和索引之前向每個(gè)塊添加場(chǎng)景信息來(lái)增強(qiáng)檢索。最近,Anthropic AI引入了場(chǎng)景檢索。在上述示例中,包含答案的文檔塊前面將添加以下信息:“這個(gè)塊來(lái)自X公司的季度收益。它討論了該公司2024年第一季度的收益?!?/p>

重新排序

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

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

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

圖5 采用重新排序的RAG

注意事項(xiàng)

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

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

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

責(zé)任編輯:姜華 來(lái)源: 51CTO內(nèi)容精選
相關(guān)推薦

2024-08-30 11:27:55

父文檔檢索RAG技術(shù)人工智能

2024-05-23 13:54:40

2022-12-29 08:46:15

IT采購(gòu)投資

2021-07-13 12:31:27

IT組織改進(jìn)首席技術(shù)官

2009-07-03 17:48:24

JSP頁(yè)面跳轉(zhuǎn)

2022-12-07 11:24:51

首席信息官IT

2025-04-25 08:55:00

Pod運(yùn)維

2020-08-06 13:19:10

IBM多云管理

2020-12-03 14:40:10

云管理

2011-04-21 10:08:34

2022-01-10 06:52:59

查詢MySQL字段

2021-11-02 07:54:40

List分片Java

2022-11-23 13:46:02

云支出云計(jì)算

2020-04-02 10:45:48

多云云計(jì)算云平臺(tái)

2015-09-10 09:30:54

Java多線程同步

2020-08-25 10:06:37

CIO數(shù)字轉(zhuǎn)型技術(shù)

2011-03-15 14:16:27

2009-11-07 19:09:35

Windows 7優(yōu)惠

2023-08-17 12:37:35

2023-07-21 08:00:00

API數(shù)字世界
點(diǎn)贊
收藏

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