RAG工作流哪種組合效果最佳?深入探究RAG領(lǐng)域最佳實(shí)踐 原創(chuàng)
?檢索增強(qiáng)型生成(RAG)技術(shù)已被證明在整合最新信息、減少錯(cuò)誤想象以及提升回應(yīng)質(zhì)量方面非常有效,特別是在特定領(lǐng)域中。雖然已經(jīng)提出了許多旨在通過查詢依賴的檢索來增強(qiáng)大型語言模型的RAG方法,但這些方法仍然受到其復(fù)雜實(shí)現(xiàn)和延長(zhǎng)響應(yīng)時(shí)間的影響。通常,一個(gè)RAG工作流涉及多個(gè)處理步驟,每個(gè)步驟都可以以不同的方式執(zhí)行。那么哪些處理步驟的組合能起到好的效果呢?今天給大家分享一篇相關(guān)的論文:RAG領(lǐng)域的最佳實(shí)踐[1]。
1. 介紹
一個(gè)典型的RAG工作流程通常包含多個(gè)介入處理步驟:查詢分類(確定給定輸入查詢是否需要檢索)、檢索(高效獲得查詢相關(guān)的文檔)、重排(基于它們與查詢的相關(guān)性重新排列檢索到的文檔的順序)、重新打包(將檢索到的文檔組織成結(jié)構(gòu)化的形式以便更好地生成)、摘要(從重新打包的文檔中提取關(guān)鍵信息以生成回應(yīng)并消除冗余)模塊。實(shí)施RAG還需要決定如何恰當(dāng)?shù)貙⑽臋n分割成塊、用于語義表示這些塊的嵌入類型、用于高效存儲(chǔ)特征表示的向量數(shù)據(jù)庫(kù)的選擇,以及有效微調(diào)LLMs的方法。
RAG的每個(gè)處理步驟的可變性都很多,例如,在檢索輸入查詢的相關(guān)文檔時(shí),可以采用多種方法。一種方法涉及首先重寫查詢,然后使用重寫后的查詢進(jìn)行檢索。另一種方法是首先生成查詢的偽響應(yīng),然后比較這些偽響應(yīng)與后端文檔的相似度進(jìn)行檢索。據(jù)我們所知,尚未有系統(tǒng)性的努力去追求RAG的最優(yōu)實(shí)現(xiàn),特別是針對(duì)整個(gè)RAG工作流程。
在這項(xiàng)研究中,我們旨在通過廣泛的實(shí)驗(yàn)來識(shí)別RAG的最佳實(shí)踐。鑒于測(cè)試所有這些方法的可能組合不可行,我們采用三步方法來識(shí)別最優(yōu)的RAG實(shí)踐。首先,我們比較每個(gè)RAG步驟(或模塊)的代表性方法,并選擇表現(xiàn)最佳的三種方法。接下來,我們通過一次測(cè)試一個(gè)步驟的一種方法,同時(shí)保持其他RAG模塊不變,來評(píng)估每種方法對(duì)整體RAG性能的影響。這允許我們基于其在響應(yīng)生成期間與其他模塊的貢獻(xiàn)和互動(dòng),確定每個(gè)步驟的最有效方法。一旦為一個(gè)模塊選擇了最佳方法,就在隨后的實(shí)驗(yàn)中使用它。最后,我們實(shí)證探索幾種適合不同應(yīng)用場(chǎng)景的有希望的組合,其中效率可能被優(yōu)先考慮于性能,反之亦然。基于這些發(fā)現(xiàn),我們建議RAG的幾種策略,以平衡性能和效率。
本研究的貢獻(xiàn)有三個(gè)方面:
- 通過廣泛的實(shí)驗(yàn),我們深入調(diào)查了現(xiàn)有的檢索增強(qiáng)生成(RAG)方法及其組合,以識(shí)別和推薦最優(yōu)的RAG實(shí)踐。
- 我們引入了一套全面的評(píng)估指標(biāo)框架及相應(yīng)的數(shù)據(jù)集,以全面評(píng)估檢索增強(qiáng)生成模型的性能,涵蓋通用的、專業(yè)的(或領(lǐng)域特定的)以及與RAG相關(guān)的能力。
- 我們展示了整合多模態(tài)檢索技術(shù)可以顯著提高對(duì)視覺輸入的問答能力,并通過“檢索即生成”的策略加速多模態(tài)內(nèi)容的生成。
2. 相關(guān)工作
確保大型語言模型(LLMs)如ChatGPT和LLaMA生成的回應(yīng)準(zhǔn)確性至關(guān)重要。然而,簡(jiǎn)單地增加模型大小并不能從根本上解決“幻覺”問題,這在知識(shí)密集型任務(wù)和專業(yè)領(lǐng)域尤為明顯。檢索增強(qiáng)生成(RAG)通過從外部知識(shí)庫(kù)檢索相關(guān)文檔,為L(zhǎng)LMs提供準(zhǔn)確、實(shí)時(shí)、領(lǐng)域特定的上下文,以解決這些挑戰(zhàn)。先前的工作通過查詢和檢索轉(zhuǎn)換優(yōu)化了RAG流程,提高了檢索器的性能,并對(duì)檢索器和生成器進(jìn)行了微調(diào)。這些優(yōu)化改善了輸入查詢、檢索機(jī)制與生成過程之間的互動(dòng),確保了回應(yīng)的準(zhǔn)確性和相關(guān)性。
2.1 查詢和檢索轉(zhuǎn)換
有效的檢索需要查詢準(zhǔn)確、清晰且詳細(xì)。即便將查詢轉(zhuǎn)換為嵌入式表示,查詢與相關(guān)文檔之間的語義差異仍可能存在。之前的工作已經(jīng)探索了通過查詢轉(zhuǎn)換來增強(qiáng)查詢信息的方法,從而提高檢索性能。例如,Query2Doc和HyDE從原始查詢生成偽文檔以增強(qiáng)檢索,而TOC則將查詢分解為子查詢,聚合檢索到的內(nèi)容以得出最終結(jié)果。
其他研究集中于轉(zhuǎn)換檢索源文檔。LlamaIndex提供了一個(gè)界面,為檢索文檔生成偽查詢,以提高與真實(shí)查詢的匹配度。一些工作采用對(duì)比學(xué)習(xí),使查詢和文檔嵌入在語義空間中更接近。對(duì)檢索到的文檔進(jìn)行后處理是另一種增強(qiáng)生成器輸出的方法,采用的技術(shù)包括層次化提示摘要和使用抽象及提取式壓縮器來減少上下文長(zhǎng)度和消除冗余。
2.2 檢索增強(qiáng)策略
文檔分塊和嵌入方法對(duì)檢索性能影響顯著。常見的分塊策略將文檔劃分為多個(gè)塊,但確定最佳塊長(zhǎng)可能頗具挑戰(zhàn)。小塊可能會(huì)導(dǎo)致句子碎片化,而大塊則可能包含不相關(guān)的上下文。LlamaIndex優(yōu)化了分塊方法,如Small2Big和滑動(dòng)窗口技術(shù)。檢索到的塊可能不相關(guān),數(shù)量可能很大,因此需要重新排序來過濾掉不相關(guān)的文檔。一種常見的重新排序方法是使用深度語言模型,例如BERT、T5或LLaMA,這需要在重新排序期間進(jìn)行緩慢的推理步驟,但能提供更好的性能。TILDE通過預(yù)先計(jì)算并存儲(chǔ)查詢?cè)~項(xiàng)的可能性來實(shí)現(xiàn)效率,基于它們的總和對(duì)文檔進(jìn)行排名。
2.3 Retriever和Generator 的Fine-tuning
在RAG框架內(nèi)進(jìn)行檢索器和生成器的微調(diào)至關(guān)重要,以優(yōu)化兩者的性能。一些研究集中于微調(diào)生成器,以更好地利用檢索器的上下文,確保生成內(nèi)容的準(zhǔn)確性和魯棒性。其他研究則致力于微調(diào)檢索器,學(xué)習(xí)檢索對(duì)生成器有益的文段。整體性方法將RAG視為一個(gè)集成系統(tǒng),同時(shí)對(duì)檢索器和生成器進(jìn)行微調(diào),以提高整體性能,盡管這增加了復(fù)雜性和集成挑戰(zhàn)。
3. RAG 工作流
在本節(jié)中,我們將詳細(xì)介紹RAG工作流程的各個(gè)組件。針對(duì)每個(gè)模塊,我們回顧常用的方法,并為我們的最終流程選擇了默認(rèn)和備選方法。
3.1 查詢分類
并非所有的查詢都需要通過檢索增強(qiáng),因?yàn)榇笮驼Z言模型(LLMs)本身就具備一定的處理能力。盡管檢索增強(qiáng)生成(RAG)可以提高信息的準(zhǔn)確性并減少虛構(gòu)內(nèi)容,但頻繁的檢索可能會(huì)增加響應(yīng)時(shí)間。因此,我們首先通過對(duì)查詢進(jìn)行分類來確定是否需要檢索。需要檢索的查詢會(huì)經(jīng)過RAG模塊處理;其他則直接由LLMs處理。通常,在需要超出模型參數(shù)范圍的知識(shí)時(shí)推薦使用檢索。然而,檢索的必要性根據(jù)任務(wù)的不同而有所變化。例如,一個(gè)訓(xùn)練至2023年的LLM可以處理“Sora是由OpenAI開發(fā)的”這一翻譯請(qǐng)求而無需檢索。相反,對(duì)于同一主題的介紹請(qǐng)求則需要檢索來提供相關(guān)信息。
因此,我們建議按類型對(duì)任務(wù)進(jìn)行分類,以確定查詢是否需要檢索。對(duì)于完全基于用戶提供信息的任務(wù),我們標(biāo)記為“充分”,不需要檢索;否則,我們標(biāo)記為“不足”,可能需要檢索。我們訓(xùn)練了一個(gè)分類器來自動(dòng)化這一決策過程。
3.2 Chunking
將文檔分塊成更小的段落對(duì)于提高檢索的準(zhǔn)確性和避免在大型語言模型(LLMs)中出現(xiàn)長(zhǎng)度問題至關(guān)重要。這個(gè)過程可以在不同的粒度級(jí)別上應(yīng)用,比如令牌(token)、句子和語義級(jí)別。
- 令牌級(jí)別的分塊很直接,但可能會(huì)分割句子,影響檢索質(zhì)量。
- 語義級(jí)別的分塊利用大型語言模型來確定分割點(diǎn),能保持上下文不變,但是耗時(shí)。
- 句子級(jí)別的分塊在保留文本語義的同時(shí),平衡了簡(jiǎn)單性和效率。
在這項(xiàng)研究中,我們使用句子級(jí)別的分塊,平衡了簡(jiǎn)單性和語義保留。我們從四個(gè)維度考察了分塊方法。
3.2.1 Chunk Size
塊大小顯著影響性能。更大的塊提供更多上下文,增強(qiáng)了理解能力,但也增加了處理時(shí)間。較小的塊提高了檢索回憶和減少時(shí)間,但可能缺乏足夠的上下文。找到最優(yōu)塊大小涉及平衡一些指標(biāo),如忠實(shí)度和相關(guān)性。忠實(shí)度衡量響應(yīng)是否是幻想的或與檢索到的文本匹配。相關(guān)性衡量檢索到的文本和響應(yīng)是否與查詢匹配。我們使用LlamaIndex的評(píng)估模塊來計(jì)算上述指標(biāo)。對(duì)于嵌入,我們使用text-embedding-ada-002模型,該模型支持長(zhǎng)輸入長(zhǎng)度。我們分別選擇zephyr-7b-alpha3和gpt-3.5-turbo作為生成模型和評(píng)估模型。塊重疊的大小為20個(gè)令牌。文檔lyft_2021的前六十頁被用作語料庫(kù),然后提示LLMs根據(jù)選定的語料庫(kù)生成大約一百七十個(gè)查詢。不同塊大小的影響如下表所示。
3.2.2 分塊技術(shù)
高級(jí)技術(shù),如小到大和滑動(dòng)窗口通過組織分塊塊關(guān)系,提高了檢索質(zhì)量。使用小尺寸塊來匹配查詢,返回包括小塊及其上下文信息的更大塊。為了展示高級(jí)分塊技術(shù)的有效性,我們使用了LLM-Embedder 模型作為嵌入模型。較小的塊大小為175個(gè)令牌,較大的塊大小為512個(gè)令牌,塊之間的重疊為20個(gè)令牌。像小到大和滑動(dòng)窗口這樣的技術(shù)通過維持上下文和確保檢索到相關(guān)信息來提高檢索質(zhì)量。詳細(xì)結(jié)果顯示在表中。
3.2.3 embedding 模型選擇
選擇正確的嵌入模型對(duì)于有效地進(jìn)行查詢與塊區(qū)塊的語義匹配至關(guān)重要。我們使用了FlagEmbedding6的評(píng)估模塊,以及數(shù)據(jù)集namespace-Pt/msmarco-corpus作為語料庫(kù),以選擇合適的開源嵌入模型。我們發(fā)現(xiàn)LLM-Embedder 與 BAAI/bge-large-en的結(jié)果相當(dāng),然而,前者的模型大小是后者的三分之一。因此,我們選擇了 LLM-Embedder,因?yàn)樗谛阅芎痛笮≈g取得了平衡。
3.2.4 添加元數(shù)據(jù)
通過將塊狀內(nèi)容增添元數(shù)據(jù),如標(biāo)題、關(guān)鍵詞和假設(shè)性問題,可以提高檢索效率,提供更多后處理檢索文本的方法,并幫助大型語言模型(LLMs)更好地理解檢索到的信息。
3.3 向量數(shù)據(jù)庫(kù)
向量數(shù)據(jù)庫(kù)存儲(chǔ)著帶有元數(shù)據(jù)的嵌入向量,通過各種索引和近似最近鄰(ANN)方法,能夠高效地檢索與查詢相關(guān)的文檔。為了為我們的研究選擇一個(gè)合適的向量數(shù)據(jù)庫(kù),我們基于四個(gè)關(guān)鍵標(biāo)準(zhǔn)對(duì)幾個(gè)選項(xiàng)進(jìn)行了評(píng)估:多種索引類型、支持十億級(jí)別的向量、混合搜索以及云原生能力。這些標(biāo)準(zhǔn)因其對(duì)于靈活性、可擴(kuò)展性以及在現(xiàn)代云基礎(chǔ)設(shè)施中部署的便捷性的影響而被選中。多種索引類型提供了基于不同數(shù)據(jù)特性和用例優(yōu)化搜索的靈活性。十億級(jí)別的向量支持對(duì)于處理LLM應(yīng)用中的大型數(shù)據(jù)集至關(guān)重要?;旌纤阉鲗⑾蛄克阉髋c傳統(tǒng)關(guān)鍵詞搜索結(jié)合起來,提高了檢索準(zhǔn)確性。最后,云原生能力確保了在云環(huán)境中的無縫集成、可擴(kuò)展性和管理。
下表詳細(xì)比較了五個(gè)開源向量數(shù)據(jù)庫(kù):Weaviate、Faiss、Chroma、Qdrant和Milvus。
我們的評(píng)估表明,在所有評(píng)估的數(shù)據(jù)庫(kù)中,Milvus脫穎而出,成為最全面的解決方案,滿足了所有關(guān)鍵標(biāo)準(zhǔn),并且在性能上超越了其他開源選項(xiàng)。
3.4 Retrieval 方式
針對(duì)用戶查詢,檢索模塊從預(yù)建的語料庫(kù)中選擇與查詢和文檔的相似度最高的前k個(gè)相關(guān)文檔。然后,生成模型使用這些文檔來制定針對(duì)查詢的適當(dāng)響應(yīng)。然而,原始查詢由于表達(dá)不佳和缺乏語義信息,通常會(huì)表現(xiàn)不佳,這對(duì)檢索過程產(chǎn)生了負(fù)面影響。為了解決這些問題,我們?cè)u(píng)估了三種查詢轉(zhuǎn)換方法,使用推薦的LLM-Embedder作為查詢和文檔編碼器:
- 查詢改寫:查詢改寫通過改進(jìn)查詢來更好地匹配相關(guān)文檔。受到Rewrite-Retrieve-Read框架的啟發(fā),我們促使一個(gè)LLM重寫查詢以提升性能。
- 查詢分解:這種方法涉及到基于從原始查詢中派生的子問題來檢索文檔,這比理解和處理更復(fù)雜的查詢要困難。
- 偽文檔生成:這種方法基于用戶查詢生成一個(gè)假想的文檔,并使用假想答案的嵌入來檢索相似文檔。一個(gè)值得注意的實(shí)現(xiàn)是HyDE。
最近的研究表明結(jié)合基于詞匯的搜索與向量搜索可以顯著提高性能。在本研究中,我們使用BM25進(jìn)行稀疏檢索和Contriever,一個(gè)無監(jiān)督對(duì)比編碼器,進(jìn)行密集檢索。
3.4.1 不同retrieval方法的結(jié)果
我們?cè)赥REC DL的段落排名數(shù)據(jù)集上評(píng)估了不同搜索方法的表現(xiàn)。展示的結(jié)果顯示,監(jiān)督方法明顯勝過無監(jiān)督方法。結(jié)合HyDE和混合搜索,LLM-Embedder取得了最高分?jǐn)?shù)。然而,查詢重寫和查詢分解并沒有如預(yù)期那樣有效地提升檢索性能??紤]到最佳性能和可接受的延遲,我們推薦將HyDE混合搜索作為默認(rèn)的檢索方法??紤]到效率,混合搜索結(jié)合了稀疏檢索(BM25)和密集檢索(原始嵌入),并且在相對(duì)較低的延遲下實(shí)現(xiàn)了顯著的性能。
3.4.2 不同文檔和查詢連接方式下的HyDE
下表展示了使用HyDE時(shí),不同文檔和查詢連接策略對(duì)檢索性能的影響。將多個(gè)偽文檔與原始查詢連接起來可以顯著提高檢索性能,盡管這會(huì)增加延遲,暗示著檢索效果與效率之間存在一種權(quán)衡。然而,無差別地增加假設(shè)文檔的數(shù)量并不會(huì)帶來顯著的好處,反而會(huì)大幅提高延遲,這表明使用單一假設(shè)文檔就足夠了。
3.4.3 不同權(quán)重的稀疏檢索與密集檢索
下表展示了不同α值在混合搜索中的影響,其中α用于控制稀疏檢索與密集檢索組件之間的權(quán)重分配。我們?cè)u(píng)估了五個(gè)不同的α值,以確定它們對(duì)性能的影響。結(jié)果表明,α值為0.3時(shí)性能最佳,這表明適當(dāng)調(diào)整α可以在一定程度上提高檢索效果。因此,我們?yōu)槲覀兊臋z索和主要實(shí)驗(yàn)選擇了α = 0.3。
3.5 Reranking
在最初的檢索之后,將采用重排序階段來提高檢索到的文檔的相關(guān)性,確保最相關(guān)的信息出現(xiàn)在列表的頂部。這一階段采用更精確、耗時(shí)更長(zhǎng)的方法有效地重新排序文檔,增加查詢與排名最高的文檔之間的相似度。
在我們的重排序模塊中,我們考慮了兩種方法:DLM重排序和TILDE重排序。DLM重排序采用分類方法,而TILDE重排序則側(cè)重于查詢可能性。這些方法分別優(yōu)先考慮性能和效率。
- DLM重排方法:這種方法利用深度語言模型(DLMs)進(jìn)行重排。這些模型被微調(diào)用以將文檔與查詢的相關(guān)性分類為“真”或“假”。在微調(diào)過程中,模型通過將查詢和文檔輸入連接起來,并根據(jù)相關(guān)性進(jìn)行標(biāo)記來進(jìn)行訓(xùn)練。在推理時(shí),文檔根據(jù)“真”標(biāo)記的概率進(jìn)行排名。
- TILDE重排:TILDE通過預(yù)測(cè)模型詞匯表中的各個(gè)詞項(xiàng)的概率來獨(dú)立計(jì)算每個(gè)查詢?cè)~項(xiàng)的可能性。通過對(duì)查詢?cè)~項(xiàng)的預(yù)計(jì)算對(duì)數(shù)概率求和,為文檔打分,從而在推理時(shí)快速重排。TILDEv2通過僅索引文檔中存在的詞項(xiàng),使用NCE損失,并擴(kuò)展文檔,從而提高效率并減小索引大小。
我們的實(shí)驗(yàn)是在MS MARCO Passage排名數(shù)據(jù)集上進(jìn)行的,這是一個(gè)大規(guī)模的機(jī)器閱讀理解數(shù)據(jù)集。我們遵循并對(duì)PyGaggle和TILDE提供的實(shí)現(xiàn)進(jìn)行了修改,使用了模型monoT5、monoBERT、RankLLaMA和TILDEv2。重排結(jié)果顯示在表中。我們推薦monoT5作為一種綜合性的方法,平衡了性能和效率。RankLLaMA適合于實(shí)現(xiàn)最佳性能,而TILDEv2是在固定集合上獲得最快體驗(yàn)的理想選擇。實(shí)驗(yàn)設(shè)置和結(jié)果的詳細(xì)信息在附錄中呈現(xiàn)。
3.6 文檔重組
文檔重組 后續(xù)過程的表現(xiàn),比如LLM響應(yīng)生成,可能會(huì)受到提供文檔的順序影響。為了解決這個(gè)問題,在重新排名之后的工作流程中,我們加入了一個(gè)緊湊的重組模塊,包含三種重組方法:“前向”、“反向”和“兩側(cè)”?!扒跋颉狈椒ㄍㄟ^降序重新排名階段的相關(guān)性得分來重組文檔,而“反向”則按升序排列它們。對(duì)于LLM,當(dāng)相關(guān)信息放在輸入的頭部或尾部時(shí),可以達(dá)到最佳性能,我們也加入了“兩側(cè)”選項(xiàng)。
4. 探索最佳RAG實(shí)踐
在接下來的部分中,我們將研究實(shí)施RAG的最佳實(shí)踐。首先,我們使用第3節(jié)中確定的每個(gè)模塊的默認(rèn)實(shí)踐。我們依次對(duì)各個(gè)模塊進(jìn)行了優(yōu)化,并在替代方案中選擇了最有效的選項(xiàng)。這個(gè)迭代過程持續(xù)進(jìn)行,直到我們確定了實(shí)現(xiàn)最終摘要模塊的最佳方法。我們使用了經(jīng)過微調(diào)的Llama2-7B-Chat模型作為生成器,其中每個(gè)查詢都通過一些隨機(jī)選擇的相關(guān)文檔進(jìn)行了增強(qiáng)。我們使用Milvus構(gòu)建了一個(gè)包含1000萬英文維基百科文本和400萬醫(yī)學(xué)數(shù)據(jù)文本的向量數(shù)據(jù)庫(kù)。我們還研究了移除查詢分類、重排和摘要模塊對(duì)其貢獻(xiàn)的影響。
4.1 全面評(píng)估
我們?cè)诟鞣N自然語言處理(NLP)任務(wù)和數(shù)據(jù)集上進(jìn)行了廣泛的實(shí)驗(yàn),以評(píng)估RAG系統(tǒng)的性能。具體來說:
- 常識(shí)推理
- 事實(shí)核查
- 開放域問答
- 多跳問答
- 醫(yī)療問答。
此外,我們還評(píng)估了RAG在這些數(shù)據(jù)集提取的子集上的能力,使用了在RAGAs中推薦的度量標(biāo)準(zhǔn),包括忠實(shí)度、上下文相關(guān)性、答案相關(guān)性和答案正確性。另外,我們通過計(jì)算檢索到的文檔與黃金文檔之間的余弦相似度來衡量檢索相似度。
對(duì)于常識(shí)推理、事實(shí)核查和醫(yī)療問答任務(wù),我們使用準(zhǔn)確率作為評(píng)估指標(biāo)。對(duì)于開放域問答和多跳問答,我們采用了基于令牌的F1分?jǐn)?shù)和精確匹配(EM)分?jǐn)?shù)。最終的RAG分?jǐn)?shù)是通過平均上述五個(gè)RAG能力得出的。我們遵循了Trivedi等人的方法,從每個(gè)數(shù)據(jù)集中隨機(jī)抽取了多達(dá)500個(gè)樣本。
4.2 結(jié)果與分析
結(jié)果表如下:
根據(jù)表中呈現(xiàn)的實(shí)驗(yàn)結(jié)果,以下關(guān)鍵見解浮現(xiàn):
- Query Classification:這個(gè)模塊被引用并對(duì)效率和效果都有貢獻(xiàn),使得整體得分平均值從0.428提高到0.443,并將每個(gè)查詢的延遲時(shí)間從16.41秒降低到11.58秒。
- Retrieval:雖然“Hybrid with HyDE”方法獲得了最高的RAG得分0.58,但它在計(jì)算成本上相當(dāng)高,每個(gè)查詢需要11.71秒。因此,建議使用“Hybrid”或“Original”方法,因?yàn)樗鼈冊(cè)诒3挚杀刃阅艿耐瑫r(shí)減少了延遲。
- Reranking:缺少重排模塊導(dǎo)致性能明顯下降,突顯出其必要性。MonoT5獲得了最高的平均得分,證明了其在提高檢索文檔相關(guān)性方面的有效性。這表明重排在提高生成響應(yīng)的質(zhì)量方面發(fā)揮著關(guān)鍵作用。
- Repacking:Reverse配置表現(xiàn)出卓越的性能,實(shí)現(xiàn)了0.560的RAG得分。這表明,將更相關(guān)的上下文放置得離查詢更近可以導(dǎo)致最佳結(jié)果。
- 概要化模塊:Recomp展現(xiàn)了卓越的性能,盡管移除概要化模塊后,以較低的延遲實(shí)現(xiàn)可比結(jié)果是可能的。然而,由于Recomp能夠解決生成器的最大長(zhǎng)度限制,它仍然是首選。在對(duì)時(shí)間敏感的應(yīng)用中,移除概要化可以有效減少響應(yīng)時(shí)間。
實(shí)驗(yàn)結(jié)果表明,每個(gè)模塊對(duì)RAG系統(tǒng)的整體性能都有獨(dú)特的貢獻(xiàn)。查詢分類模塊提高了準(zhǔn)確性并降低了延遲,而檢索和重排模塊顯著提高了系統(tǒng)處理各種查詢的能力。重新打包和概要化模塊進(jìn)一步完善了系統(tǒng)的輸出,確保了不同任務(wù)中高質(zhì)量的響應(yīng)。
5. 討論
5.1 實(shí)施 RAG 的最佳實(shí)踐
根據(jù)我們的實(shí)驗(yàn)發(fā)現(xiàn),我們建議兩種不同的實(shí)施 RAG 系統(tǒng)的做法或?qū)嵺`,每種都針對(duì)特定需求進(jìn)行定制:一種專注于最大化性能,另一種在效率和效果之間取得平衡。
- 最佳性能實(shí)踐:為了達(dá)到最高性能,建議加入查詢分類模塊,使用“Hybrid with HyDE”方法進(jìn)行檢索,采用monoT5進(jìn)行重排,選擇Reverse進(jìn)行repacking,以及利用Recomp進(jìn)行summarization。這種配置獲得了最高的平均得分0.483,盡管過程中計(jì)算量很大。
- 平衡效率實(shí)踐:為了在性能和效率之間取得平衡,建議加入查詢分類模塊,實(shí)現(xiàn)Hybrid方法進(jìn)行檢索,使用TILDEv2進(jìn)行重排,選擇Reverse進(jìn)行repacking,以及采用Recomp進(jìn)行summarization。鑒于檢索模塊占系統(tǒng)處理時(shí)間的大部分,轉(zhuǎn)向Hybrid方法同時(shí)保持其他模塊不變,可以大幅減少延遲,同時(shí)保持可比的性能。
5.2 多模態(tài)擴(kuò)展
我們已將RAG擴(kuò)展到多模態(tài)應(yīng)用。具體而言,我們將文本到圖像(text2image)和圖像到文本(image2text)的檢索能力整合到系統(tǒng)中,使用大量配對(duì)的圖像和文本描述作為檢索源。如下圖所示,當(dāng)用戶查詢與存儲(chǔ)圖像的文本描述很好地對(duì)齊時(shí)(即“檢索作為生成”策略),文本到圖像的能力可以加速圖像生成過程;而當(dāng)用戶提供圖像并就輸入的圖像進(jìn)行對(duì)話時(shí),圖像到文本的功能則派上用場(chǎng)。這些多模態(tài)RAG能力提供了以下優(yōu)勢(shì):
- 真實(shí)性:檢索方法從經(jīng)過驗(yàn)證的多模態(tài)材料中提供信息,從而確保了內(nèi)容的真實(shí)性和具體性。相比之下,即時(shí)生成依賴模型生成新內(nèi)容,偶爾可能導(dǎo)致事實(shí)錯(cuò)誤或不準(zhǔn)確。
- 效率:檢索方法通常更高效,特別是當(dāng)答案已經(jīng)存在于存儲(chǔ)材料中時(shí)。相反,生成方法可能需要更多的計(jì)算資源來產(chǎn)生新內(nèi)容,特別是對(duì)于圖像或長(zhǎng)篇文本。
- 可維護(hù)性:生成模型通常需要仔細(xì)的微調(diào),以便為新應(yīng)用定制。與之相比,檢索基方法可以通過簡(jiǎn)單地?cái)U(kuò)大檢索源的規(guī)模和提高其質(zhì)量來改進(jìn),以應(yīng)對(duì)新的需求。我們計(jì)劃將這種策略的應(yīng)用范圍拓寬到其他模態(tài),如視頻和語音,同時(shí)也探索高效且有效的跨模態(tài)檢索技術(shù)。
6. 結(jié)論
在本研究中,我們旨在識(shí)別實(shí)施檢索增強(qiáng)生成的最佳實(shí)踐,以提高大型語言模型生成內(nèi)容的質(zhì)量和可靠性。我們系統(tǒng)地評(píng)估了RAG框架內(nèi)各個(gè)模塊的潛在解決方案范圍,并為每個(gè)模塊推薦了最有效的方法。此外,我們引入了一個(gè)全面的RAG系統(tǒng)評(píng)估基準(zhǔn),并進(jìn)行了廣泛的實(shí)驗(yàn),以確定各種替代方案中的最佳實(shí)踐。我們的發(fā)現(xiàn)不僅有助于加深對(duì)檢索增強(qiáng)生成系統(tǒng)的理解,而且為未來的研究奠定了基礎(chǔ)。
局限性
我們?cè)u(píng)估了用于微調(diào)大型語言模型(LLM)生成器的各種方法的影響。以前的研究已經(jīng)展示了聯(lián)合訓(xùn)練檢索器和生成器的可行性。我們希望將來能夠探索這一可能性。在本研究中,我們采用模塊化設(shè)計(jì)原則以簡(jiǎn)化對(duì)最佳RAG實(shí)現(xiàn)的搜索,從而降低復(fù)雜性。由于構(gòu)建向量數(shù)據(jù)庫(kù)和進(jìn)行實(shí)驗(yàn)所涉及的成本令人望而卻步,我們的評(píng)估限于調(diào)查塊處理模塊內(nèi)代表性塊處理技術(shù)的有效性和影響。進(jìn)一步探索不同塊處理技術(shù)對(duì)整個(gè)RAG系統(tǒng)的影響將是一個(gè)吸引人的方向。雖然我們已經(jīng)討論了RAG在自然語言處理領(lǐng)域的應(yīng)用,并將其范圍擴(kuò)展到圖像生成,但將這項(xiàng)研究擴(kuò)展到其他模態(tài),如語音和視頻,將是未來探索的一個(gè)誘人領(lǐng)域。
參考資料
[1]RAG領(lǐng)域的最佳實(shí)踐: ??https://arxiv.org/html/2407.01219v1??
?
本文轉(zhuǎn)載自公眾號(hào)AI 博物院 作者:longyunfeigu
原文鏈接:??https://mp.weixin.qq.com/s/fSWyX2qNRupOpCP09_b6Zg??
