從檢索增強——RAG看檢索技術的發(fā)展 原創(chuàng)
“ 檢索,一種世界性的難題 ”
檢索技術或者說搜索技術(雖然檢索與搜索有一定的區(qū)別)一直是一個世界級的難題,檢索技術可以說從人類出現就已經開始了;只不過那時的檢索不叫檢索,叫找東西,只不過到二十一世紀之后,隨著互聯網技術的發(fā)展,數據檢索成為了一個重要手段。
而今天我們就來談談檢索技術。
檢索
為什么標題是從RAG看檢索技術?
RAG技術是在之前的文章中不只一次的介紹過,RAG是大模型技術的補充,大模型的表現在某種程度上依賴于RAG,而RAG最核心的一點就是更加高效和準確的檢索。
但檢索技術卻不是因為RAG技術才出現的,在RAG技術出現之前,檢索技術用的最多的應該就是搜索引擎了。
從功能的角度出發(fā),互聯網技術的發(fā)展特別是移動互聯網時代的來臨,互聯網每天都會產生大量的數據,而怎么把這些數據分門別類,讓需要的人快速從繁雜的數據中找到有用的東西,這是一個值得思考的問題。
而從技術的角度來說,在互聯網技術出現之前,數據或者說資料的管理方式主要是以紙質文檔為主,而互聯網出現之后,數據主要以文件的形式存儲。
但做過技術的人都知道,文件存儲是一個費時又費力的東西;因此,這時一項偉大的發(fā)明出現了——那就是數據庫系統。
剛開始的數據庫系統是按照二維關系結構構建的關系數據庫系統,到現在也在大量的使用,比如常見的mysql和oracle等。
使用數據庫的好處是什么?
好處就是速度快,數據一目了然,操作簡單方便。
而隨著技術的發(fā)展,不但數據量越來越多,數據形式和格式也越來越復雜,特別是非結構化數據的爆發(fā)式增長;因此,非結構化數據的存儲需求越來越大,而且也出現了很多非結構化數據存儲中間件,比如mongodb和redis等。
而數據存儲是一方面,數據的檢索也是一方面;關系型數據庫的好處是一目了然,存儲也方便,但關系型數據庫的數據檢索就沒有想象中的那么強大了。關系型數據庫只能進行一些簡單的字符匹配或模糊查詢,一旦涉及到復雜查詢就無能為力了。
而這時搜索中間件就出現了,比如ES——ElasticSearch,它就是嵌入了分詞的功能,根據某種算法實現完整語句的拆分,使得搜索能力相比傳統關系型數據庫大大增強。
但同樣的是,ES的搜索能力依然有限,它們只能依靠純粹的字符匹配進行檢索;比如說讓你去圖書館找本書,不懂的人只能按照書名去找,而懂的人就可以找到類似的。
而且面對現實世界中復雜的各種關系,簡單的字符匹配顯然無法滿足我們的需求;因此,一種基于語義查詢的方式就出現了。
什么是語義查詢?
比如說,我說幫我搜索一下孫悟空;這時傳統的搜索方式只能搜索到與孫悟空三個字相關的內容;而與齊天大圣,猴哥,弼馬溫相關的數據就無法準確查詢了。
而有了語義分析的功能之后,就知道孫悟空,齊天大圣,弼馬溫,大師兄等等是一個人,這時就可以把與此相關的內容全部查詢出來,而這就是RAG需要干的事情。
這也是為什么說,大模型知識庫的重點是不是模型,也不是知識庫,而是數據的精確檢索。大模型知識庫的好壞,是由檢索能力所決定的,而不是由大模型決定的。
這也是在昨天關于RAG技術的文章中所說的,怎么提升數據的召回質量,召回數據的質量越高,大模型的生成效果就越好。
嵌入模型的語義分析能力越強,轉化的向量數據效果越好,最終檢索到的數據質量也就越高。
本文轉載自公眾號AI探索時代 作者:DFires
原文鏈接:??https://mp.weixin.qq.com/s/t4vj028hHI2_lRZ65d9SfQ??
