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