萬文長文搞定檢索增強生成(RAG)技術(shù)——13篇熱門RAG文章解讀
楔子
RAG(Retrieval-Augmented Generation), 檢索增強生成,即從外部數(shù)據(jù)庫獲取額外信息輔助模型生成內(nèi)容。樓主認為這項技術(shù)對于沒有能力/預算進行大模型訓練和微調(diào)的大C和小B用戶來說,兼具了實用性和靈活性,是更有可操作性的解決方案。
如果你是一個AI小白,我來打一個比方:
你讀完全日制高中的課程(暫不考慮文理分科),咱可以說你已經(jīng)完成了預訓練(Pre-training) ,已經(jīng)具備了一個通用大模型的基礎(chǔ)能力。然后你填報了計算機科學專業(yè),完成四年的專業(yè)課學習,咱可以說你已經(jīng)完成了一輪微調(diào)(Fine-Tuning) ,然后你就是一個合格的可以解答各類基礎(chǔ)計算機相關(guān)的問題的大模型了。但畢竟本科四年學習周期有點長,咱想一個速成點的辦法就是以你高中掌握的知識,再加上身邊放一堆計算機專業(yè)的書籍,那這樣你有了開卷考的buff加持,也勉強可以成為一個低配版解答基礎(chǔ)計算機相關(guān)的問題的大模型了,而你收到問題,基于你高中的知識,在專業(yè)書籍中找到答案,組織后反饋給提問者的過程就是檢索增強生成(RAG) 。有了這個比喻,你就可以比較直觀地理解,RAG的方式成本小,不需要花4年拿個相應專業(yè)的文憑就可以上崗;而且RAG的方式比較靈活,身邊放《Python 21天從入門到精通》你就是信息產(chǎn)業(yè)問答模型,身邊放《母豬的產(chǎn)后護理》你就是畜物業(yè)問答模型。但是因為并不是科班出身,對于專業(yè)信息的理解消化能力有限,給出的答案質(zhì)量會略為遜色;而且畢竟每次都要去翻書找答案,回答的效率也肯定會低于微調(diào)過的模型。在這樣的情況下,如何擺放這些參考書籍,收到問題后按什么順序去尋找答案就會影響到返回答案效率和質(zhì)量。
概念介紹完了,樓主最近在閱讀RAG相關(guān)的文章,這些文章大致上可以分為介紹概念、提升效率,評估效果這三類,貼一些和同好們共享。
1.《A Survey on Retrieval-Augmented Text Generation for Large Language Models》
簡介
Retrieval-Augmented Generation (RAG) 結(jié)合了檢索方法和深度學習的進步,通過動態(tài)整合最新的外部信息,解決了大型語言模型(LLMs)的靜態(tài)局限性。這種主要關(guān)注文本領(lǐng)域的方法提供了一種成本效益的解決方案,用于生成LLMs可能產(chǎn)生的看似合理但錯誤的回應,通過使用真實世界的數(shù)據(jù),提高了它們輸出的準確性和可靠性。隨著RAG在復雜性上的增長,并融合了多個可能影響其性能的概念,本文將RAG范式組織成四個類別:預檢索、檢索、檢索后和生成,從檢索視角提供了詳細的觀點。它概述了RAG的演變,并通過分析重要研究討論了該領(lǐng)域的進展。此外,本文引入了RAG的評估方法,解決了所面臨的挑戰(zhàn),并提出了未來研究的方向。通過提供一個有組織的框架和分類,本研究旨在整合關(guān)于RAG的現(xiàn)有研究,闡明其技術(shù)基礎(chǔ),并強調(diào)其擴大LLMs的適應性和應用的潛力。
譯文地址
呂阿華:《A Survey on Retrieval-Augmented Text Generation for Large Language Models》——大語言模型檢索增強文本生成綜述(04/24) (https://zhuanlan.zhihu.com/p/695783525)
原文地址
A Survey on Retrieval-Augmented Text Generation for Large Language Models (https://arxiv.org/abs/2404.10981v1)
2.《Retrieval-Augmented Generation for Large Language Models: A Survey》
簡介
該論文探討了大型語言模型中檢索增強生成的概念,著重于如何通過檢索從外部知識庫中獲取相關(guān)信息來提升答案的準確性和減少模型幻覺,特別是在知識密集型任務中。
摘譯一下一些文章中比較有用的內(nèi)容:
RAG(檢索增強生成) vs Fine-Tuning(微調(diào))(原文第2節(jié)Background部分)
RAG是指結(jié)合了檢索(從大型外部數(shù)據(jù)庫中提取信息)和生成(基于檢索到的信息生成答案)兩個步驟。RAG通過引入外部知識來源,來增強語言模型的回答能力。Fine-Tuning是指在已有的預訓練模型基礎(chǔ)上,通過在特定數(shù)據(jù)集上進行額外的訓練來優(yōu)化模型。這個過程沒有引入外部知識,而是調(diào)整模型以更好地適應特定任務。
優(yōu)勢 | 劣勢 |
實時更新 | 外部依賴 |
RAG能夠訪問最新的外部信息,保持知識的時效性 | RAG的性能高度依賴于外部知識庫的質(zhì)量和覆蓋范圍。 |
減少幻覺 | 實現(xiàn)復雜 |
通過使用外部驗證信息,RAG有助于減少語言模型產(chǎn)生的錯誤或虛構(gòu)信息 | RAG的實現(xiàn)比單純的微調(diào)更復雜,需要處理檢索和生成的結(jié)合。 |
高透明度 | 生成延遲 |
生成答案時引用外部信息源,增加可信度和可追溯性。 | 檢索過程可能增加回答生成的時間延遲。 |
避免重訓練 | 準確性挑戰(zhàn) |
相比于微調(diào),RAG減少了頻繁重訓練的需要,因為模型可以通過檢索即時獲取新信息 | 雖然可以減少幻覺,但RAG也面臨著確保檢索結(jié)果準確性和相關(guān)性的挑戰(zhàn)。 |
文中的圖2:RAG和其它模型優(yōu)化方法比較
RAG框架(原文第3節(jié)RAG Framework部分)
基礎(chǔ)RAG(Naive RAG)、高級RAG(Advanced RAG)和模塊化RAG(Modular RAG) 是檢索增強生成在大型語言模型中應用的三種不同形式。
基礎(chǔ)RAG是RAG方法的原始形式,它結(jié)合了信息檢索和文本生成兩個階段。在這個框架中,當模型接收到一個查詢時,它首先執(zhí)行一個檢索步驟,從一個大型的、結(jié)構(gòu)化的知識庫中檢索出與查詢相關(guān)的信息片段。然后,這些檢索到的信息被送入一個生成器模型,該模型結(jié)合原始查詢和檢索到的信息來生成回答。基礎(chǔ)RAG的關(guān)鍵在于它將檢索和生成緊密結(jié)合,使得生成的回答能夠利用檢索到的實時外部信息。
高級RAG對基礎(chǔ)RAG進行了改進,引入了預檢索(pre-retrieval)和后檢索(post-retrieval) 優(yōu)化策略。在預檢索階段,模型會通過對查詢進行處理(如擴展或重寫)來提高檢索的準確性和相關(guān)性。在后檢索階段,模型可以對檢索到的信息進行進一步的處理,如重新排序、信息壓縮或合成,以便更有效地融合到生成步驟中。這種高級RAG通過在檢索前后增加額外的處理步驟,提高了回答的質(zhì)量和相關(guān)性。
模塊化RAG是一種更靈活的RAG實現(xiàn),它允許不同的檢索和生成模塊根據(jù)特定的應用需()求進行替換或重新配置。這種方法的關(guān)鍵在于模塊化設(shè)計,使得研究者和開發(fā)者可以針對特定問題選擇最合適的檢索器和生成器。例如,對于某些特定類型的查詢,可以選擇特化的檢索模塊,或者針對特定的生成任務,選擇一個適合該場景的生成器。模塊化RAG提供了更大的靈活性和適應性,適用于多樣化和動態(tài)變化的應用場景。
高效和準確的檢索(原文第4節(jié)Retriever部分)
要實現(xiàn)高效而準確的檢索涉及兩部分的優(yōu)化:文檔塊大小(Document Chunk Size) 優(yōu)化和向量模型(Embedding Models) 優(yōu)化,而考慮到RAG的使用者未必有能力/資源進行模型優(yōu)化,所以可以著重關(guān)注文檔大小優(yōu)化部分。
文中闡述的內(nèi)容大致如下:較小的文檔塊可以提高信息檢索的精確度,但可能丟失上下文;較大的塊提供更多上下文,但可能包含不相關(guān)信息。使用者可以根據(jù)內(nèi)容復雜度或查詢性質(zhì),動態(tài)調(diào)整塊的大小。并通過不同塊大小的測試,找到最佳平衡點。
第4節(jié)還提到用查詢重寫(Query Rewrite) 和向量轉(zhuǎn)換(Embedding Transformation) 來對齊用戶查詢和文檔的語義空間,以及使用監(jiān)督訓練(Supervised Training) 讓檢索器的輸出與大型語言模型的偏好相對齊,想了解細節(jié)的可以閱讀原文。
優(yōu)化生成器(generator)(原文第5節(jié)Generator部分)
生成器決定了最終呈現(xiàn)給用戶的答案,文中也給出一些優(yōu)化的方案。
檢索得到相應信息后,在提交至生成器之前需要進行后檢索處理(Post-retrieval Processing) ,指的是進一步處理、過濾或優(yōu)化檢索器從大型文檔數(shù)據(jù)庫中檢索到的相關(guān)信息。然后再進行 信息壓縮(Information Compression) 和 結(jié)果重排(Result Rerank) 。這一過程的主要目的是提高檢索結(jié)果的質(zhì)量,以更好地滿足用戶需求或后續(xù)任務。比如減輕上下文長度限制和對冗余信息的易感性。
文章后面涉及到對生成器的微調(diào),感興趣的讀者請看原文,在此不表。
RAG效果評估 (原文第6節(jié)Augmentation in RAG部分)
生成器生成答案后,需要有科學的輸出內(nèi)容評估體系整個RAG流程才算閉環(huán)。
文中介紹了兩種評估RAG的方法:獨立評估(Independent Evaluation) 和 端到端評估(End-to-End Evaluation) 。
獨立評估方法會分別評估檢索模塊(Retrieval Module) 和生成模塊(Generation Module) ,其中檢索模塊評估指標包括指標包括命中率(Hit Rate) 、平均排名倒數(shù)(Mean Reciprocal Rank, MRR) 、歸一化折扣累積增益(Normalized Discounted Cumulative Gain, NDCG) 、準確率(Precision) 等,這些指標用于測量系統(tǒng)在根據(jù)查詢或任務排名項目方面的有效性。而生成模塊評估通常在端到端評估中進行。評估指標主要關(guān)注上下文相關(guān)性,測量檢索到的文檔與查詢問題的相關(guān)性。
端到端評估方法評估RAG模型對給定輸入生成的最終響應,包括模型生成答案與輸入查詢的相關(guān)性和對齊程度。從內(nèi)容生成目標視角來評估可以將評估劃分為未標記內(nèi)容和已標記內(nèi)容。未標記內(nèi)容評估指標包括答案忠實度(Answer Fidelity) 、答案相關(guān)性(Answer Relevance) 、無害性(Harmlessness) 等,而已標記內(nèi)容評估指標包括準確率(Accuracy) 和 精確匹配(Exact Match, EM) 。端到端評估可以分為人工評估和使用大型語言模型的自動評估。此外,還可以根據(jù)RAG在特定領(lǐng)域的應用,采用特定的評估指標,例如在問答任務中使用EM。
文章中還介紹了兩套RAG評估框架,RAGAS (Es et al. 2023) 和 ARES (Saad-Falcon et al. 2023)
兩個評估框架的核心焦點是以下三個主要指標:
- 答案忠實度:這個指標強調(diào)模型生成的答案必須忠實于給定的上下文,確保答案與上下文信息一致且不偏離或矛盾。這個評估方面對于解決大型模型中的幻覺問題至關(guān)重要。
- 答案相關(guān)性:這個指標強調(diào)生成的答案需要與提出的問題直接相關(guān)。
- 上下文相關(guān)性(Context Relevance):這個指標要求檢索到的上下文信息與查詢相關(guān)。
原文地址 《Retrieval-Augmented Generation for Large Language Models: A Survey》(https://arxiv.org/pdf/2312.10997.pdf)
3. 《Retrieving Multimodal Information for Augmented Generation: A Survey》
簡介
《Retrieving Multimodal Information for Augmented Generation: A Survey》是一篇由新加坡南洋理工大學、新加坡國立大學和Salesforce Research的研究人員撰寫的論文,描述了多模態(tài)RAG的發(fā)展現(xiàn)狀和未來趨勢。在多模態(tài)RAG的研究中,針對不同的模態(tài),包括圖像、代碼、結(jié)構(gòu)化知識、音頻和視頻,有不同的檢索和合成程序、目標任務和挑戰(zhàn)。
本文摘譯精華部分作為多模態(tài)RAG研究方向的參考。
譯文地址
呂阿華:多模態(tài)RAG綜述(https://zhuanlan.zhihu.com/p/678812531)
原文地址 Retrieving Multimodal Information for Augmented Generation: A Survey(https://arxiv.org/abs/2303.10868)
4.《A Guide on 12 Tuning Strategies for Production-Ready RAG Applications》
簡介
文章主要討論了如何通過調(diào)整 “超參數(shù)(hyperparameters)” 和采用不同的調(diào)優(yōu)策略來提高檢索增強生成管道的性能。12個優(yōu)化策略中,攝取階段和推理階段各有6個可優(yōu)化點。由于篇幅所限,每個優(yōu)化點作者都是點到為止,并沒有太具體的實戰(zhàn)案例說明。
攝取階段(Ingestion Stage)
在RAG管道的攝取階段,主要關(guān)注的是數(shù)據(jù)的準備和處理,以及如何有效地存儲和索引數(shù)據(jù)。
RAG管道的攝取階段
數(shù)據(jù)清理(Data Cleaning): 這個階段需要確保數(shù)據(jù)質(zhì)量,包括基本的自然語言處理清理技術(shù),確保信息一致性和事實準確性。
分塊(Chunking): 將文檔分割成邏輯上連貫的信息片段,這可能涉及將長文檔分割成較小部分或?qū)⑤^小片段組合成連貫段落。
向量模型(Embedding Models): 向量模型是檢索的核心,向量的質(zhì)量極大影響檢索結(jié)果。可以考慮使用不同的向量模型,有條件的話可以對特定用例進行微調(diào)。
元數(shù)據(jù)(Metadata): 在向量數(shù)據(jù)庫中存儲向量時,可以添加元數(shù)據(jù),以便于后續(xù)的搜索結(jié)果后處理。
多索引(Multi-indexing): 如果元數(shù)據(jù)不足以提供額外信息以邏輯上分隔不同類型的上下文,可以嘗試使用多個索引。
索引算法(Indexing Algorithms): 選擇和調(diào)整近似最近鄰(ANN)搜索算法,比如Facebook的Faiss、Spotify的Annoy、Google的ScaNN和HNSWLIB。
推理階段——檢索和生成(Inferencing Stage——Retrieval & Generation)
推理階段涉及檢索和生成過程,主要關(guān)注如何改進檢索結(jié)果的相關(guān)性和生成響應的質(zhì)量。
RAG管道的推理(檢索和生成)階段
查詢轉(zhuǎn)換(Query Transformations): 如果搜索查詢未產(chǎn)生滿意的結(jié)果,可以嘗試不同的查詢轉(zhuǎn)換技術(shù),如重新措辭(Rephrasing) 、假設(shè)文檔嵌入(HyDE) 或 子查詢(Sub-queries) 。
檢索參數(shù)(Retrieval Parameters): 考慮是否需要語義搜索或混合搜索,并調(diào)整聚合稀疏和密集檢索方法的權(quán)重。
高級檢索策略(Advanced Retrieval Strategies): 探索高級檢索策略,如句子窗口檢索或自動合并檢索。
重新排序模型(Re-ranking Models): 使用重新排序模型來消除不相關(guān)的搜索結(jié)果。
大語言模型(LLMs): LLM是生成響應的核心組件??梢愿鶕?jù)需求選擇不同的LLM,并考慮針對特定用例進行微調(diào)。
提示詞工程(Prompt Engineering): 提示詞的使用將顯著影響LLM的完成情況。
作者在文章開頭就強調(diào),數(shù)據(jù)科學是一門實驗性科學,不存在適用于所有問題的通用算法。文中的12種方法可以給讀者在RAG優(yōu)化的過程中的提供操作思路,而作為數(shù)據(jù)科學家,在具體的案例中需要使用實驗跟蹤系統(tǒng)來調(diào)整RAG項目的各項超參數(shù),以實現(xiàn)最佳性能。
原文地址
《A Guide on 12 Tuning Strategies for Production-Ready RAG Applications》(https://towardsdatascience.com/a-guide-on-12-tuning-strategies-for-production-ready-rag-applications-7ca646833439)
5. 《Improving Retrieval Performance in RAG Pipelines with Hybrid Search》
簡介
文章主要討論了如何通過結(jié)合傳統(tǒng)的基于關(guān)鍵詞的搜索和當下流行的向量搜索來找到更相關(guān)的搜索結(jié)果,以提高RAG管道的性能。在RAG管道的開發(fā)中,達到初步的80%性能相對容易,但要實現(xiàn)剩余的20%以達到生產(chǎn)就緒狀態(tài)則頗具挑戰(zhàn)。作者強調(diào),改進RAG管道的檢索組件是一個常見的主題,其中混合搜索(Hybrid Search)是一個重要的策略。
混合搜索的定義和工作原理
混合搜索是一種結(jié)合兩種或更多搜索算法的技術(shù),旨在提高搜索結(jié)果的相關(guān)性。它通常指的是傳統(tǒng)的基于關(guān)鍵詞的搜索和現(xiàn)代的向量搜索的結(jié)合。
基于關(guān)鍵詞的搜索(Keyword-based Search): 在混合搜索的上下文中,基于關(guān)鍵詞的搜索通常使用稱為稀疏嵌入(Sparse Embeddings)的表示形式。這種稀疏嵌入是由大部分為零值的向量組成,只有少數(shù)非零值。稀疏嵌入可以通過不同的算法生成,其中最常用的算法是BM25(Best Match 25),它基于TF-IDF(Term Frequency-Inverse Document Frequency)方法,并對其進行了改進。簡而言之,BM25強調(diào)了基于它們在單個文檔中的頻率相對于所有文檔的頻率的術(shù)語的重要性。
向量搜索(Vector Search): 向量搜索是隨著ML(機器學習)算法的進步而出現(xiàn)的現(xiàn)代搜索技術(shù)?,F(xiàn)代機器學習算法中如轉(zhuǎn)換器(Transformers) 生成的數(shù)據(jù)對象(如文本、圖像等)的數(shù)值表示,稱為向量嵌入(Vector Embeddings) 。這些向量嵌入通常包含大量信息,大部分由非零值組成(密集向量)。搜索查詢被嵌入到與數(shù)據(jù)對象相同的向量空間中,然后使用其向量嵌入來計算與指定相似度度量(如余弦距離(Cosine Distance) )最接近的數(shù)據(jù)對象。返回的搜索結(jié)果按照與搜索查詢的相似度排序。
關(guān)鍵詞和向量搜索結(jié)果的融合: 基于關(guān)鍵詞的搜索和向量搜索都會返回一組單獨的結(jié)果,通常是按計算出的相關(guān)性排序的搜索結(jié)果列表。這兩組單獨的搜索結(jié)果需要被合并。合并兩個排名列表的策略有很多種,通常首先對搜索結(jié)果進行評分。這些評分可以基于指定的度量(如余弦距離)或僅僅是搜索結(jié)果列表中的排名來計算。然后,使用參數(shù)alpha對計算出的評分進行加權(quán),這個參數(shù)決定了每種算法的權(quán)重,并影響結(jié)果的重新排序。
??混合得分(Hybrid Score) = (1 - alpha) * 稀疏得分(Sparse Score) + alpha * 密集得分(Dense Score)?
?
通常,alpha取值在0到1之間,其中:
- alpha = 1:純向量搜索(Pure Vector Search)
- alpha = 0:純關(guān)鍵詞搜索(Pure Keyword Search)混合搜索通過結(jié)合兩種搜索技術(shù)的優(yōu)勢,特別是在文本搜索用例中,可以顯著提高搜索結(jié)果的相關(guān)性。
alpha=0.5的混合搜索微型案例
如何利用混合搜索提高RAG管道的性能
RAG管道有許多可調(diào)整的部分以提高其性能。其中之一是通過改善檢索組件來提高檢索到的上下文的相關(guān)性,因為如果檢索到的上下文對于回答給定問題不相關(guān),那么LLM也無法生成相關(guān)的答案。
根據(jù)上下文類型和查詢,讀者需要確定三種搜索技術(shù)中哪一種最有利于自己的RAG應用。因此,控制基于關(guān)鍵詞搜索和語義搜索之間權(quán)重的alpha參數(shù)可以視為需要調(diào)整的超參數(shù)(Hyperparameter) 。
文中還舉了在LangChain中使用混合搜索的例子。在常見的使用LangChain的RAG管道中,可以通過設(shè)置使用的向量存儲組件(vectorstore component) 作為檢索器來定義檢索器組件,如下所示:
vectorstore = ...
retriever = vectorstore.as_retriever()
然而,這種方法只啟用了語義搜索。如果讀者想在LangChain中啟用混合搜索,則需要定義一個具有混合搜索能力的特定檢索器組件,比如WeaviateHybridSearchRetriever:
from langchain.retrievers.weaviate_hybrid_search import WeaviateHybridSearchRetriever
retriever = WeaviateHybridSearchRetriever(
alpha = 0.5,
client = client,
index_name = "LangChain",
text_key = "text",
attributes = [],
)
其他的普通RAG管道保持不變。
這段代碼更改允許讀者嘗試在基于關(guān)鍵詞的搜索和向量搜索之間進行不同的權(quán)重調(diào)整。請注意,設(shè)置alpha = 1等于完全的語義搜索,這相當于直接從向量存儲組件定義檢索器(retriever = vectorstore.as_retriever())。
何時使用混合搜索
活用混合搜索是一種理想狀態(tài),通常用戶希望啟用語義搜索(Semantic Search) 的能力以提供更類似于人類的搜索體驗,但同時也需要對特定術(shù)語進行精確短語匹配,例如通過序列號搜索。
在靈活運用混合搜索方面一個很好的例子是Stack Overflow平臺,它最近通過使用混合搜索擴展了其搜索能力。最初,Stack Overflow使用TF-IDF(Term Frequency-Inverse Document Frequency,詞頻-逆文檔頻率) 來匹配關(guān)鍵詞和文檔,但在描述正在嘗試解決的編碼問題時可能就會遇到困難。比如用戶不同的詞匯描述問題,就可能會導致不同的結(jié)果(例如,合并兩個Pandas DataFrames可能會通過不同的方法完成,比如合并/連接/串聯(lián) )。因此,更具上下文感知的搜索方法,如語義搜索,對于這些情況將更有益。而另一方面,Stack Overflow的一個常見用例是復制粘貼錯誤消息。對于這種情況,精確的關(guān)鍵詞匹配是首選的搜索方法。同時用戶還會希望對方法和參數(shù)名稱(例如,在Pandas中的.read_csv())進行精確的關(guān)鍵詞匹配。
和Stack Overflow一樣,許多類似的現(xiàn)實世界用例可以從具有上下文感知的語義搜索中受益,但仍然依賴于精確的關(guān)鍵詞匹配。這些用例可以從實現(xiàn)混合搜索檢索器組件中獲得很大的好處。
原文地址
《Improving Retrieval Performance in RAG Pipelines with Hybrid Search》(https://towardsdatascience.com/improving-retrieval-performance-in-rag-pipelines-with-hybrid-search-c75203c2f2f5)
看到這里有沒有感覺有不少陌生的名詞?可以一邊查字典一邊看
呂阿華:人工智能名詞字典 (https://zhuanlan.zhihu.com/p/671175717)
6. 《Advanced RAG Techniques: an Illustrated Overview》
簡介
文章主要探討了RAG技術(shù)的高級應用和算法,系統(tǒng)化地整理了各種方法,附帶了作者知識庫中引用的各種實現(xiàn)和研究的鏈接。文章的目標是概覽和解釋可用的RAG算法和技術(shù),并不深入代碼實現(xiàn)細節(jié)。
文章的引言部分提到兩個最著名的開源庫用于基于LLM的管道和應用是LangChain和LlamaIndex ,分別在2022年10月和11月成立,并chatGPT大熱的帶動下在2023年被大量采用。本文中系統(tǒng)化整理的高級RAG技術(shù),以及提供對它們的實現(xiàn)的參考,也主要在LlamaIndex中進行。
文章主要的內(nèi)容集中在高級RAG(Advanced RAG) 部分,涉及到的RAG技術(shù)有:
- 分塊和向量化(Chunking & Vectorisation)
- 搜索索引(Search Index)
- 多層索引(Hierarchical Indices)
- 假設(shè)問題和HyDE(Hypothetical Questions and HyDE)
- 上下文增強(Context Enrichment)
- 融合檢索或混合搜索(Fusion Retrieval or Hybrid Search)
- 重新排序和過濾(Reranking & Filtering)
- 查詢轉(zhuǎn)換(Query Transformations)
- 查詢路由(Query Routing)
- RAG中的智能體(Agents in RAG)
- 響應合成器(Response Synthesiser)
文章最后還介紹了如何進行編碼器和LLM微調(diào)來優(yōu)化RAG的效果。由于文章中干貨較多,樓主需要新開一篇專門放置這篇文章。
譯文地址
呂阿華:《高級 RAG 技術(shù):圖解概述》精華摘要(https://zhuanlan.zhihu.com/p/674906924)
原文地址
《Advanced RAG Techniques: an Illustrated Overview》 (https://pub.towardsai.net/advanced-rag-techniques-an-illustrated-overview-04d193d8fec6)
7. 《SELF-RAG: Learning To Retrieve, Generate, and Critique Through Self-Reflection》
簡介
這篇論文的主要內(nèi)容是介紹了一種名為SELF-RAG的框架,這是一種自我反思式的RAG方法,旨在提高LLM的生成質(zhì)量和事實準確性。這個框架訓練一個任意的LLM以適應性地檢索文本段落,并在檢索的過程中生成和反思檢索到的段落及其自身的生成內(nèi)容,使用特殊的反思token(reflection tokens)。文章通過實驗對六項任務進行了全面評估,使用多個指標表明SELF-RAG顯著優(yōu)于具有更多參數(shù)的LLMs或傳統(tǒng)的檢索增強生成方法。
譯文地址
呂阿華:《SELF-RAG:通過自我反思學習檢索、生成和自我批評》精華摘譯 (https://zhuanlan.zhihu.com/p/676283921)
原文地址 《SELF-RAG: LEARNING TO RETRIEVE, GENERATE, AND CRITIQUE THROUGH SELF-REFLECTION》(https://arxiv.org/pdf/2310.11511.pdf)
8.《RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval》
簡介
檢索增強型語言模型(Retrieval-augmented language models) 能夠適應世界的變化并包含更廣泛的知識。但是,現(xiàn)有方法通常只能檢索文檔中的短文本段落,這限制了對文檔整體上下文的深入理解。為了克服這個問題,本文提出了RAPTOR模型 ,它采用一種創(chuàng)新方法,通過遞歸地向量化 、聚類和摘要文本 ,自下而上構(gòu)建出一個包含不同級別摘要的樹狀結(jié)構(gòu) 。在使用時,RAPTOR能夠從這棵樹中檢索信息,有效整合長篇文檔中的信息,覆蓋不同的抽象層次。通過實驗發(fā)現(xiàn)這種遞歸摘要的檢索方式在多個任務上都優(yōu)于傳統(tǒng)的檢索增強方法。特別是在需要復雜推理的問答任務上,結(jié)合RAPTOR和GPT-4的使用將QuALITY基準測試的性能提高了20% 。
譯文地址
呂阿華:《RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL》精華摘譯 (https://zhuanlan.zhihu.com/p/681496536)
原文地址
《RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval》(https://arxiv.org/abs/2401.18059)
9. 《Blended RAG: Improving RAG Accuracy with Semantic Search and Hybrid Query-Based Retrievers》
簡介
RAG作為一種流行的方法,它將私有文檔庫與LLM結(jié)合起來,用以構(gòu)建生成式問答(Q&A)系統(tǒng)。然而,隨著文檔庫的擴大,RAG的準確性變得越來越具有挑戰(zhàn)性,檢索器在整體RAG準確性中扮演著重要角色,通過從文檔庫中提取最相關(guān)的文檔為LLM提供上下文。本文提出了一種‘混合RAG’方法,利用語義搜索技術(shù),如密集向量索引和稀疏編碼器索引,結(jié)合混合查詢策略。相應的研究也取得了更好的檢索結(jié)果,并為像NQ和TREC-COVID這樣的信息檢索(IR)數(shù)據(jù)集設(shè)定了新的基準。作者進一步將這種‘混合檢索器’擴展到RAG系統(tǒng)中,展示了在像SQUAD這樣的生成式問答數(shù)據(jù)集上的卓越結(jié)果,甚至超越了微調(diào)的性能。
譯文地址
呂阿華:《Blended RAG: Improving RAG Accuracy with Semantic Search and Hybrid Query-Based Retrievers》精華摘譯 (https://zhuanlan.zhihu.com/p/693869946)
原文地址
《Blended RAG: Improving RAG Accuracy with Semantic Search and Hybrid Query-Based Retrievers》(https://arxiv.org/abs/2404.07220)
10. 《RAGAR, Your Falsehood RADAR: RAG-Augmented Reasoning for Political Fact-Checking using Multimodal Large Language Models》
簡介
隨著虛假信息問題日益嚴重,特別是在政治話語中,迫切需要先進的事實核查解決方案。本文引入了創(chuàng)新的方法,通過將大型語言模型(LLMs)與基于檢索增強生成(RAG)的高級推理技術(shù)相結(jié)合,來提高多模態(tài)事實核查的可靠性和效率。本研究提出了兩種新方法:
鏈式RAG(CoRAG)和樹式RAG(ToRAG)。這些方法通過推理基于前期證據(jù)需要回答的下一個問題來處理多模態(tài)聲明。與傳統(tǒng)的子問題生成和鏈式推理真實性預測方法相比,本文的方法提高了真實性預測的準確性,并改進了解釋生成。通過采用擅長分析文本和圖像的多模態(tài)LLM,本研究增強了自動化系統(tǒng)在識別和對抗虛假信息方面的能力。
譯文地址
呂阿華:《虛假信息雷達RAGAR:使用MLLMs進行事實核查的RAG增強推理》精華摘譯(https://zhuanlan.zhihu.com/p/702890167)
原文地址
RAGAR, Your Falsehood RADAR: RAG-Augmented Reasoning for Political Fact-Checking using Multimodal Large Language Models(https://arxiv.org/abs/2404.12065)
11.《Evaluating RAG Applications with RAGAs》
簡介
第一篇文章介紹了一個用于評估RAG應用的框架,稱為RAGAs(Retrieval-Augmented Generation Assessment) ,這篇文章詳細介紹了RAGAS框架,它的核心目標是提供一套綜合性的評估指標和方法,以量化地評估RAG管道(RAG Pipeline) 在不同組件層面上的性能。RAGAs特別適用于那些結(jié)合了 檢索(Retrieval) 和生成(Generation) 兩個主要組件的RAG系統(tǒng)。
評估體系(原文Evaluation Metrics部分)
文章Evaluation Metrics部分介紹了RAGAs的評估體系:
無參考評估: RAGAs最初設(shè)計為一種“無參考”評估框架,意味著它不依賴于人工注釋的真實標簽,而是利用大型語言模型(LLM)進行評估。
組件級評估: RAGAs允許對RAG管道的兩個主要組件——檢索器和生成器——分別進行評估。這種分離評估方法有助于精確地識別管道中的性能瓶頸。
檢索器和生成器的性能表
綜合性評估指標: RAGAs提供了一系列評估指標,包括上下文精度(Context Precision) 、上下文召回(Context Recall) 、忠實度(Faithfulness) 和答案相關(guān)性(Answer Relevancy) 。這些指標共同構(gòu)成了RAGAs評分,用于全面評估RAG管道的性能。
評估流程(原文Evaluating a RAG Application with RAGAs部分)
RAGAs的評估流程在文中有比較詳細的描述,在此只摘抄關(guān)鍵字。
- 開始:啟動準備和設(shè)置RAG應用的過程。
- 數(shù)據(jù)準備:加載和分塊處理文檔。
- 設(shè)置向量數(shù)據(jù)庫:生成向量嵌入并存儲在向量數(shù)據(jù)庫中。
- 設(shè)置檢索器組件:基于向量數(shù)據(jù)庫設(shè)置檢索器。
- 組合RAG管道:結(jié)合檢索器、提示模板和LLM組成RAG管道。
- 準備評估數(shù)據(jù):準備問題和對應的真實答案。
- 構(gòu)建數(shù)據(jù)集:通過推理準備數(shù)據(jù)并構(gòu)建用于評估的數(shù)據(jù)集。
- 評估RAG應用:導入評估指標并對RAG應用進行評估。
- 結(jié)束:完成評估過程。整個流程如下圖所示:
RAGAs評估流程
盡管構(gòu)建一個概念驗證(Proof-of-Concept) 的RAG應用相對容易,但要使其性能達到生產(chǎn)就緒狀態(tài)卻非常困難。在擁有評估RAG應用性能的工具的基礎(chǔ)上,讀者們可以建立一個實驗管道,并開始使用各種調(diào)優(yōu)策略來調(diào)整性能。
原文地址
《Evaluating RAG Applications with RAGAs》 (https://towardsdatascience.com/evaluating-rag-applications-with-ragas-81d67b0ee31a)
12.《Evaluating Verifiability in Generative Search Engines》
簡介
這篇論文研究了生成式搜索引擎在應對用戶查詢時,其回應的可驗證性(Verifiability) 。一個值得信賴的生成式搜索引擎應具備高度的可驗證性,即系統(tǒng)應全面(高引用召回率(Citation Recall),所有陳述都有充分引用支持)且準確(高引用精確度(Citation Precision) ,每個引用都支持其相關(guān)陳述)地引用資料。研究通過人類評估對四個流行的生成式搜索引擎 —— Bing Chat、NeevaAI、perplexity.ai 和 YouChat —— 在各種查詢中的表現(xiàn)進行了審查。研究發(fā)現(xiàn),盡管這些引擎的回應流暢且看似信息豐富,但經(jīng)常包含未經(jīng)支持的陳述和不準確的引用:平均而言,只有51.5%的生成句子得到了引用的完全支持,而僅有74.5%的引用支持其關(guān)聯(lián)的句子。
可驗證性評估方法
文中第2節(jié)Human Evaluation of Fluency, Perceived Utility, and Verifiability中介紹了4個評估可驗證性的維度和方法,分別是流暢性(Fluency) 、感知效用(Perceived Utility) 、引用召回率和引用精確度。
流暢性的測量方法是通過讓評估者對生成回應的流暢性和連貫性進行評分來測量。評估者需要考慮文本的語法正確性和整體的連貫性。然后讓評估者使用五點Likert量表(從“強烈不同意”到“強烈同意”)對生成回應的流暢性和連貫性做出評價。
感知效用的測量方法是讓評估者根據(jù)生成回應是否有助于回答用戶的問題,對其有用性進行評價。同樣采用五點Likert量表。
引用召回率的測量會首先識別出回應中需要驗證的陳述,然后判斷對每個陳述,確定是否有引用支持,并評估這些引用是否充分支撐了陳述的內(nèi)容。
引用精確度的測量會讓評估者對每個陳述判斷其關(guān)聯(lián)引用提供了多少支持(零/部分/全部),其中對于有多個引用的陳述,評估者還需判斷這些引用的綜合是否為陳述提供了完全支持。然后根據(jù)引用對陳述的支持程度計算引用的精確度。
文中還定義了一個可驗證性的綜合指標Citation F1,該指標值越大,系統(tǒng)的可驗證性越高。
Citation F1 =
論文的第4節(jié)Results and Analysis部分還列出了前面提到的4個生成式搜索引擎不同維度的評估結(jié)果,這里不費篇幅介紹,有興趣的讀者請移步原文了解詳情。
原文地址
《Evaluating Verifiability in Generative Search Engines》(https://arxiv.org/pdf/2304.09848.pdf)
13. 《ARAGOG: Advanced RAG Output Grading》
簡介
RAG對于把外部知識融入大型語言模型LLM的輸出中非常關(guān)鍵。雖然圍繞 RAG 的研究文獻逐漸增多,主要集中于系統(tǒng)地回顧和比較新的最先端(SoTA)技術(shù)及其前身,但在進行廣泛的實驗比較方面還存在不足。本項研究旨在通過評估不同 RAG 方法對檢索精度和答案相似度的影響來填補這一空白。研究結(jié)果表明,假設(shè)性文檔嵌入(Hypothetical Document Embedding,HyDE)和 LLM 的重排序能夠顯著提高檢索精度。然而,最大邊際相關(guān)性(Maximal Marginal Relevance,MMR)和 Cohere 的重排序并沒有顯示出相對于簡單 RAG 系統(tǒng)的顯著優(yōu)勢,多查詢方法的效果也不盡如人意。句子窗口檢索被證明是提高檢索精度最有效的方法,盡管其在答案相似度方面的表現(xiàn)不夠穩(wěn)定。該研究還驗證了文檔摘要索引作為一個有效檢索方式的可能性。
譯文地址
呂阿華:《ARAGOG: Advanced RAG Output Grading(高級RAG輸出評分)》精華摘譯(https://zhuanlan.zhihu.com/p/691554425)
原文地址
《ARAGOG: Advanced RAG Output Grading》(https://arxiv.org/abs/2404.01037)
更新日志
- 2024/06/12——新增《RAGAR, Your Falsehood RADAR: RAG-Augmented Reasoning for Political Fact-Checking using Multimodal Large Language Models》
- 2024/05/04——新增《A Survey on Retrieval-Augmented Text Generation for Large Language Models》
- 2024/04/22——新增《Blended RAG: Improving RAG Accuracy with Semantic Search and Hybrid Query-Based Retrievers》
- 2024/04/09——新增《ARAGOG: Advanced RAG Output Grading》
- 2024/02/06——新增《RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval》
- 2024/01/20——新增《Retrieving Multimodal Information for Augmented Generation: A Survey》
- 2024/01/06——新增《SELF-RAG: Learning To Retrieve, Generate, and Critique Through Self-Reflection》
- 2023/12/24——新增《Advanced RAG Techniques: an Illustrated Overview》
- 2023/12/18——新增《Improving Retrieval Performance in RAG Pipelines with Hybrid Search》
- 2023/12/12——初始化以及新增4篇文章
本文轉(zhuǎn)自 AI生成未來 ,作者:呂阿華
