RAG技術的五種分類——不同種類RAG之間的區別與聯系 原創
“ RAG的架構雖然有所不同,但其原理都是相同的,都是通過檢索來增強模型的生成能力,只不過在不同的環節做了不同的優化。”
從事RAG技術的工作也有一兩年時間了,但在此之間都是這學一點那學一點,感覺自己好像什么都會,但從來沒有對整個RAG系統進行過梳理。
所以,今天就從RAG的迭代過程開始梳理一下RAG的架構升級過程,了解不同種類RAG的區別和聯系,以及適用場景。
RAG的幾種類型
從技術的本質來說,RAG就是檢索增強生成,重要的就是檢索和生成;但技術畢竟在不斷的發展和迭代,因此RAG的架構也經過多次迭代。
以下是RAG迭代過程中的幾種架構類型:
Naive RAG:基礎RAG
Advanced RAG:高級RAG
Modular RAG:模塊化RAG
- Graph RAG:圖RAG
- Agentic RAG :智能體RAG
這幾種RAG雖然從架構和實現上有所區別,但其本質上還是一樣的;所以我們需要學習不同RAG架構之間的區別,但也要通過表象看到RAG的本質。
Naive Rag
其實想了解RAG的技術原理,基礎RAG是最好的選擇,因為其是RAG最初的版本;但受限于當時的技術和理論,因此基礎RAG現在已經很少使用了,可能也就在剛開始學習的時候了解一下。
基礎RAG的流程就是,通過相似度檢索的方式召回相關數據,然后丟給模型進行增強生成;但這里有個問題就是,基礎RAG的召回策略和生成過程都很簡單,在真實的業務場景中測試效果都不怎么好。

Advanced Rag
高級RAG是在Naive Rag的基礎之上做了功能升級;比如說剛開始學習RAG的時候,就知道把問題直接向量化,然后丟給向量庫進行相似度檢索;但在實際場景中發現召回率不足,也不準確。
因此,高級RAG就是在Naive Rag的基礎之上做了優化;比如說召回優化,增加問題改寫,知識庫優化,提升文檔的拆分質量,以及生成優化,把召回的文檔進行重排序,格式化等操作。
Modular Rag
模塊化Rag其實就更好理解了,在基于RAG的智能問答場景中,我們發現文檔不但來源復雜,而且格式也很復雜;而且在不同的業務場景中需要使用不同的文檔處理流程和召回策略。
比如說有些場景的主要文檔格式是word/pdf,而有些場景的文檔格式是excel/csv,還有是一些數據庫和API。
這時,為了降低系統的開發和維護成本,就需要對不同的功能進行模塊化開發,這樣在不同的場景中選擇不同的模塊即可,而不用每次都重新開發。
Graph Rag
圖Rag和上面的幾種RAG架構的唯一區別就是其存儲介質的不同,Graph Rag使用的是基于知識圖譜的方式來組織和存儲數據;這種方式在某些業務場景中具有更好的效果,比如說查詢家庭成員關系,組織架構等。

由于圖結構天生適合處理這種復雜的數據關系,因此Graph Rag在這種場景中具備天然的優勢。
Agentic Rag
智能體RAG又被稱為主動式RAG,上面幾種RAG不論怎么設計,其都是基于根據用戶問題進行數據召回,然后根據召回結果進行增強生成,這個流程是固定的。

但Agentic Rag是基于智能體實現的架構模式,其主要就是利用大模型獨立思考和規劃的能力,可以根據用戶的問題自行判斷是否需要進行數據召回。如果遇到一些簡單的問題或者模型能夠自己解決的問題,那么就可以避免召回的過程,以提升用戶體驗和響應速度。
因此,以上幾種RAG架構,并沒有跳出RAG的基本理論范疇,只不過在不同的環節上對RAG進行了優化,最終的目的都是為了提升模型的生成效果,解決用戶問題。
但雖然RAG有多種不同的技術架構,但這些架構之間并不是非此即彼的關系,不同的架構之間可以互相協調,以此增強RAG的效果。
本文轉載自??AI探索時代?? 作者:DFires

















