大模型超長窗口上下文與檢索增強(qiáng)生成——RAG 原創(chuàng)
“ 怎么解決大模型的記憶問題,以及保證結(jié)果的準(zhǔn)確性,目前還是大模型應(yīng)用中一個亟待解決的問題 ”
看過作者文章的人對RAG技術(shù)應(yīng)該有了初步的了解,但不知道是否了解大模型的窗口大??;即使沒有研究過大模型的窗口,但也應(yīng)該聽過每次大模型輸入的內(nèi)容是有限的;而這個有限就是因為大模型窗口的限制。
那么,大模型窗口與檢索增強(qiáng)的關(guān)系是什么樣的?怎么解決長對話問題,隨著大模型窗口的增加,RAG會死嗎?
大模型窗口與RAG
RAG——檢索增強(qiáng)這個技術(shù)就不在過多介紹了,如果對此不了解的可以看一下作者之前的文章,比如前幾天的??RAG與本地知識庫,向量數(shù)據(jù)庫,以及知識圖譜的聯(lián)系與區(qū)別??。
那么今天主要來介紹一下大模型窗口,以及其與RAG技術(shù)的區(qū)別。
什么是大模型的窗口?
對技術(shù)有了解的人應(yīng)該都知道,大模型是根據(jù)Token進(jìn)行計費的,所謂的Token就是不同模態(tài)的數(shù)據(jù),轉(zhuǎn)化為向量之后的一種計算方式;而大模型的窗口全稱是大模型上下文窗口,簡單來說就是大模型一次能夠接受的Token的大小。
大模型的窗口為什么如此重要?
原因就在于,大模型的窗口代表著大模型能夠處理數(shù)據(jù)的大小,窗口越大代表著能夠輸入到大模型的內(nèi)容越多,大模型能夠捕捉的上下文就越多,內(nèi)容就越全面,當(dāng)然效果相對就越好。
舉個栗子來說,假如你想讓大模型回答一些關(guān)于四大名著的問題,那么你直接把四大名著直接都輸入到大模型,這樣肯定就能得到更準(zhǔn)確,更好的回答;而如果你只是告訴大模型孫悟空三打白骨精的那一段,那么其它的問題大模型就無法回答了。
這就是大模型上下文窗口的作用,能夠增加大模型上下文理解的能力,原因就在于大模型沒有記憶能力。
但大模型的窗口真的是越大越好嗎?大模型的窗口是否能無限大?
大模型的窗口并不是越大越好,當(dāng)然更不可能無限大;原因在于,上下文窗口越長,對大模型理解能力要求越高;就類似于,讓一個小學(xué)生去看上下五千年,雖然小學(xué)生可能真的能看懂,但他對很多東西都理解得不深刻。
這樣就會導(dǎo)致一個問題,那就是大模型對長文本理解的不準(zhǔn)確,因此控制窗口大小,讓大模型找到自己理解的極限才是最好的。
因此,這也是為什么今年以來大模型的窗口一直在不斷的增長,因為越長的文本處理能力,代表著模型能力越強(qiáng);但從目前來看,長上下文窗口依然存在很多問題,比如理解不全面,對算力消耗更高,響應(yīng)時間過長等等。
為什么說大模型上下文窗口可能會直接導(dǎo)致RAG的死亡?
原因就在于,如果大模型的窗口真的可以無限大,而且大模型又能夠真正理解全部上下文,那么RAG就沒有了存在的意義;因為,直接把全世界所有的數(shù)據(jù)和資料全部塞進(jìn)大模型里,這樣大模型就真的無所不知了。
但既然大模型無法做到這一步,因此RAG就肯定有其存在的空間。
其實,歸根結(jié)底不論是上下午窗口,還是RAG,亦或者是長對話等等;所有的一切都是因為大模型不具備記憶能力,而想出的補(bǔ)償方法。所以,不論是上下文還是RAG,本身都是為了解決大模型的記憶問題,包括長期記憶和短期記憶。
那么,思考一個問題,長對話問題怎么解決?
其實長對話問題一般有兩個解決方案,就是上面的兩個上下文窗口和RAG;區(qū)別就是,上下文窗口是直接把所有歷史對話全部帶入到上下文中,讓大模型自己去理解。而RAG是把對話信息保存到外部數(shù)據(jù)庫中,然后每次對話都先檢索到與對話最相關(guān)的內(nèi)容,然后拼接到大模型的提示詞中。
當(dāng)然,還有其它的方案,但暫不在此次討論的范圍之中。
當(dāng)然,長對話并不只是簡單的解決記憶問題,還一個重要因素就是準(zhǔn)確性;在一些特殊的業(yè)務(wù)場景下,比如醫(yī)療,任何輕微的差別都可能導(dǎo)致致命的錯誤;因此,大模型在醫(yī)療領(lǐng)域的應(yīng)用,怎么才能保證百分之百的準(zhǔn)確性,這是一個值得思考的問題。
現(xiàn)在大家對長文本和RAG都有了一定的了解,那么你認(rèn)為上下文和RAG,哪個才是大模型的最終選擇?
本文轉(zhuǎn)載自公眾號AI探索時代 作者:DFires
