RAG檢索增強生成和大模型微調的抉擇 原創
?“ RAG和微調即相似,又不完全相同,它們在能力上是互補的。”
很多人會奇怪RAG和微調有什么關系,而對RAG和微調了解的人應該都明白為什么會把RAG和微調放在一塊討論。
有些人說有了RAG就不需要微調,而另一些人說有了微調就不需要RAG,這到底是怎么回事?RAG和微調之間到底存在什么樣的恩恩怨怨?
RAG與微調
作者在第一次看到RAG和微調的標題時,也是一臉懵逼;RAG和微調有什么關系,它們完全是兩種不同的技術,為什么會被放在一塊討論?
而隨著對大模型了解的加深,慢慢就發現RAG和微調卻是有很大的關聯,只不過兩者的關系并不是很多人所認為的一山不容二虎,而是可以相互依存的關系。
看過前面介紹RAG文章的人應該都知道,RAG技術的出現是為了解決大模型存在的幾個問題;而微調的出現是為了解決大模型在某些方面的不足。
從這一點來說,兩者還是有很大共同點的;老話說條條大路通羅馬,雖然兩者的目的是一樣的,但道路卻是不一樣的;這也是為什么會有RAG與微調技術的爭論。
RAG的本質是通過檢索外部資料庫獲取數據,并通過prompt提示詞的方式輸入到大模型中;其更像是一種外部工具,就類似于我們所使用的一些工具書,遇到不懂的東西就查一下,但也沒必要刻意去記憶和理解。
而微調的本質是通過訓練數據對大模型在某一方面進行強化;比如一個識圖的大模型,可以強化一下讓它在寵物方面有更好的效果;微調就類似于技能培訓,其影響并不是一時的,而是終身的。
比如說一個文本模型,它在歷史方面比較欠缺,這時就有兩種解決辦法;第一種就是使用RAG技術,遇到歷史問題的時候先通過RAG檢索一些資料;第二種就是微調技術,找到一堆歷史數據,然后通過微調的方式讓大模型去學習這些數據。
這兩種方式不論使用哪一種都可以達到目的,但兩者還有有所區別;比如說RAG技術的優點是成本低,耦合度低;一個文本模型使用RAG檢索歷史數據,那么它就是一個精通歷史的大模型。而如果使用RAG檢索科學數據,那么它就是一個科學家。
而微調模型,使用什么樣的微調數據,大模型就會成為什么樣的模型;同樣的例子,如果使用歷史數據進行微調,那么這個模型就只擅長歷史方面的內容;你問它其它方面的知識,它就只能胡說八道了;或者就是再收集一批數據重新對模型進行微調;因此,微調的方式耦合度高,成本也高。
所以說,RAG就類似于一個掌握了學習方法論的學霸,不論什么內容,什么領域,因為他掌握了好的學習方法,所以他學什么都很快;而微調就類似于一個靠勤奮死記硬背的學霸,雖然他在某一方面很擅長,但因為沒有掌握具體的學習方法;一旦換個領域,它就只能從頭再來了。
然而,從應用的角度來說RAG和微調并不是水火不容的關系,很多時候往往需要兩者配合使用。
比如說由于微調的成本比較高,因此我不可能因為一點新知識就對模型微調或訓練一次;這時RAG就成為了一個很好用的工具。
同樣,我不能因為我的工具比較多,就代表我的能力也比較強,然后就不想再學習了;雖然利用RAG可以讓大模型解決很多問題,但這并不代表著大模型就擁有了強大的思維能力。
比如說你想搞一個用來搞科研的大模型,你不可能讓一個只會查資料(RAG)的大模型去搞科研,因為你需要它能具備思考,實驗和推理的能力,而不只是查資料的能力;這時,微調的作用就出現了,因為微調可以讓大模型具備更好的知識和邏輯思維能力。
所以說,從某些方面來說RAG和微調解決的是同一個問題;但在其它方面,RAG能做到的事情,微調做不到;而微調能做到的事情RAG做不到。
因此,RAG和微調最好的協作方式就是互補;而不是針尖對麥芒。
?
本文轉載自公眾號AI探索時代 作者:DFires
