RAG是一種方法論,而不是一項(xiàng)具體的技術(shù)——你真的知道什么是RAG嗎? 原創(chuàng)
“ RAG的本質(zhì)是一種方法論,而不是一項(xiàng)具體的技術(shù)或框架。”
最近斷斷續(xù)續(xù)一直有人問一些關(guān)于RAG方面的東西,但是作者發(fā)現(xiàn)一件事,就是還有一部分人到現(xiàn)在還不知道RAG到底是什么,還在認(rèn)為RAG是一項(xiàng)具體的技術(shù)或框架。
事實(shí)上RAG的本質(zhì)是一種方法論,目的是為了提升大模型的生成質(zhì)量,它不是一項(xiàng)具體的技術(shù)或開發(fā)框架,更多的是一種思想。

RAG是一種方法論
RAG技術(shù)是怎么產(chǎn)生的?
隨著大模型技術(shù)的爆發(fā)式發(fā)展,一些人在使用的過程中就發(fā)現(xiàn)一些問題,那就是大模型有時(shí)候會(huì)胡說八道或者答非所問。
而產(chǎn)生這個(gè)現(xiàn)象的原因主要有三點(diǎn):
- 大模型幻覺問題:因?yàn)榇竽P偷牡讓邮腔诟怕暑A(yù)測(cè)的因此會(huì)存在幻覺問題
- 知識(shí)不足問題:通用大模型在垂直領(lǐng)域方面的知識(shí)不足,除非是經(jīng)過專家訓(xùn)練的垂直領(lǐng)域模型
- 知識(shí)更新速度慢:由于大模型的訓(xùn)練成本問題,因此大模型的知識(shí)僅限于其訓(xùn)練語料庫的截止內(nèi)容
由于以上幾種原因,就導(dǎo)致了模型偶爾的胡說八道和答非所問;這就像一個(gè)人不可能什么都懂,除非他是神,而不是人。

所以,就需要一種方法來解決這個(gè)問題,因此RAG就誕生了;當(dāng)然,解決這個(gè)問題不止RAG一種,還有微調(diào),但考慮到成本等問題,還是RAG比較合適
那RAG是怎么解決這些問題的呢?
事實(shí)上RAG也并不能完全解決以上三個(gè)問題,或者說現(xiàn)在還沒辦法完全解決模型的幻覺問題;但通過RAG可以解決下面兩個(gè)問題,并且能夠大大降低模型的幻覺問題。
所以RAG的原理是什么?
既然模型存在知識(shí)更新不及時(shí),知識(shí)不足和幻覺問題,那么在模型回答問題之前,先把正確的參考文檔給到模型,這樣不就可以解決知識(shí)不足和更新不及時(shí)的問題了。這就類似于學(xué)生時(shí)代的開卷考試,在回答問題之前先給你參考答案。
因此,RAG需要解決的問題就是,怎么根據(jù)問題找到相關(guān)的參考答案;其次,怎么把答案和問題丟給模型。
這就是RAG——檢索增強(qiáng)生成的真實(shí)含義;檢索到相關(guān)內(nèi)容,然后增強(qiáng)模型的生成能力。
所以,大模型根本不關(guān)心你是怎么檢索的,大模型關(guān)心的是你怎么把檢索到的結(jié)果給到模型。簡(jiǎn)單來說其實(shí)就是,把問題,參考文檔,歷史記錄等一塊拼接到提示詞中,然后丟給模型,而這就是模型的上下文管理。
當(dāng)然,模型的上下文管理是另一個(gè)話題,其中涉及到文檔格式處理,歷史記錄,上下文裁剪等等一系列問題。

現(xiàn)在再回到RAG的前半部分——檢索;RAG是怎么解決檢索問題的呢?
其實(shí)關(guān)于檢索的技術(shù)棧有很多,如傳統(tǒng)的字符匹配,分詞技術(shù),現(xiàn)在的語義(相似度)檢索,知識(shí)圖譜等;甚至包括搜索引擎的搜索技術(shù)等等。
如果是用傳統(tǒng)的格式化數(shù)據(jù)做增強(qiáng),那么就可以使用傳統(tǒng)的搜索方式,如數(shù)據(jù)庫搜索;而如果是基于現(xiàn)在的語義相似度檢索,那么就需要使用向量數(shù)據(jù)庫等進(jìn)行相似度匹配。
而由于語義的復(fù)雜性,因此又會(huì)涉及到知識(shí)庫的構(gòu)建,包括文檔的切分,向量化(嵌入),元數(shù)據(jù)處理等等。
因此從理論上來說,模型只關(guān)注上下文管理,至于上下文中的參考文檔是從哪來的,怎么來的,那都屬于檢索模塊的功能。
?
本文轉(zhuǎn)載自??AI探索時(shí)代?? 作者:DFires

















