太簡單了,開源模型+RAG就可以搭建自己的AI應(yīng)用(基礎(chǔ)篇)
本來想寫在AI大模型中對于數(shù)據(jù)方面的挑戰(zhàn),但是發(fā)現(xiàn)還是要找一個場景來鋪墊一下,正好去年做過一些大模型知識庫的內(nèi)容,對于RAG方面還算了解一些,所以先來說一下關(guān)于大模型應(yīng)用方面的東西吧,下一篇再來聊聊AI大模型場景中對于數(shù)據(jù)管理方面的機會。
先解釋一下什么是檢索增強生成技術(shù)(下文簡稱:RAG),對于日常我們所理解的大模型來說,他們具備的是模型本身能力(億級別參數(shù)+通用數(shù)據(jù)),但是在特定領(lǐng)域內(nèi)的數(shù)據(jù)可能是無法獲取到的,例如公司內(nèi)部的信息,在線集群故障信息等等這些對于大模型來說是外部數(shù)據(jù),通過利用自定義的數(shù)據(jù)來提供大模型(LLM)在該領(lǐng)域內(nèi)的效率,這就是RAG技術(shù)所需要實現(xiàn)的。
在RAG中需要維護最新信息或者訪問特定領(lǐng)域知識的內(nèi)容來支持聊天機器人、知識問答系統(tǒng)。
那么,站在應(yīng)用的角度來說,RAG已經(jīng)成為了事實上的行業(yè)標準,將企業(yè)在該領(lǐng)域內(nèi)的豐富數(shù)據(jù)作為LLM查詢的來源,檢索相關(guān)數(shù)據(jù)并應(yīng)用在增強上下文中,RAG并不是僅僅依賴于從訓(xùn)練數(shù)據(jù)中提取知識,而是檢索相關(guān)信息并將靜態(tài)的LLMs與實時的數(shù)據(jù)檢索連接起來。。
簡單來說,RAG就像給AI裝了個實時資料庫。企業(yè)不用完全依賴AI原有的知識庫,而是把自己積累的數(shù)據(jù)(比如產(chǎn)品資料、客戶案例)整理成專屬知識庫,當用戶提問時,AI會先從這個資料庫里快速查找相關(guān)內(nèi)容,再把找到的信息和問題一起分析,這樣既保證回答的專業(yè)性,又能隨時更新最新數(shù)據(jù),相當于給傳統(tǒng)AI插上了實時更新的外接硬盤。
上面說的可能比較抽象,我們從實際的角度來看,無非是解決了企業(yè)在構(gòu)建自己AI應(yīng)用中的三個問題:
問題一:大語言模型不知道你的數(shù)據(jù)是什么
不要太過于相信現(xiàn)有的大模型能力,你讓它回答一下,你們公司的社保繳納人數(shù)、你們部門的大數(shù)據(jù)節(jié)點規(guī)模數(shù)據(jù)、線上業(yè)務(wù)的日志監(jiān)控情況,這些使用開源能力其實都達不到,大模型本質(zhì)上就是使用深度學習模型并在大量數(shù)據(jù)集上進行訓(xùn)練,才能理解+總結(jié)+生成最終結(jié)果,對于大部分的模型都是在公共數(shù)據(jù)上進行訓(xùn)練的,當模型訓(xùn)練完成之后,就無法在獲取到其訓(xùn)練數(shù)據(jù)截止之后的數(shù)據(jù)信息了,所以,它會一直是一種靜態(tài)模型,因此,我們使用大模型貌似它可以回答所有問題,但無法回答距離我們最近的實際問題。
問題二:作為企業(yè)AI應(yīng)用來說,需要使用定制化數(shù)據(jù)才能更有效
為了讓大語言模型(LLM)能夠理解并提供領(lǐng)域內(nèi)的具體問題回答,就需要企業(yè)準備足夠多的領(lǐng)域內(nèi)數(shù)據(jù)給到模型,這樣模型才能更好的理解這個領(lǐng)域,例如對于法律領(lǐng)域不同的案件信息,處理過程與結(jié)果,這些都是在各自的內(nèi)部數(shù)據(jù)庫中維護的,如果要做一個自己的法律助手來說,就可以通過一個開源大模型+自己的數(shù)據(jù)預(yù)料來進行模型增強,其實現(xiàn)在大部分公司都是做的。
問題三:專業(yè)領(lǐng)域內(nèi)開源大模型不一定很專業(yè)
這個其實和大數(shù)據(jù)關(guān)聯(lián)還是非常密切的,通過大數(shù)據(jù)相關(guān)技術(shù)可以有效的補充大模型的數(shù)據(jù)時效性,作為某一個領(lǐng)域的企業(yè)服務(wù)者,需要不斷的采集、處理、分析這些最新的數(shù)據(jù)信息,然后提供給大模型進行不斷的了解,這樣可以確保大模型的響應(yīng)不僅僅是基于靜態(tài)、過去的訓(xùn)練數(shù)據(jù),而是使用最新的數(shù)據(jù)源來提供響應(yīng)。
另外還有一種就是對于領(lǐng)域內(nèi)的數(shù)據(jù),要求是非常嚴格的,對于行家來說,回答問題的準確性怎么樣一看就知道了,如果作為企業(yè)應(yīng)用來使用的話,對于模型的回答水平要求還是很高的,所以,要不斷的提供給它我們這個領(lǐng)域內(nèi)的數(shù)據(jù),提升它的精準度,才能慢慢的把模型打造為這個領(lǐng)域內(nèi)的專家。
一個典型的RAG架構(gòu)是什么樣子的?
下圖摘自Databricks中的自己構(gòu)建的RAG架構(gòu)
- 準備數(shù)據(jù):收集文檔數(shù)據(jù)以及元數(shù)據(jù),并進行初步預(yù)處理——例如,處理個人身份信息(檢測、過濾、刪除、替換),為了在 RAG 應(yīng)用中使用,文檔需要根據(jù)嵌入模型的選擇和下游應(yīng)用(使用這些文檔作為上下文的應(yīng)用)進行分塊。
- 索引相關(guān)數(shù)據(jù):生成文檔嵌入并使用這些數(shù)據(jù)填充向量搜索索引。
- 檢索相關(guān)數(shù)據(jù):檢索與用戶查詢相關(guān)的數(shù)據(jù)部分,然后,這些文本數(shù)據(jù)作為提示的一部分提供給LLM。
- 構(gòu)建 LLM 應(yīng)用程序:將提示增強組件包裝并查詢 LLM 到端點。然后,可以通過簡單的 REST API 將此端點暴露給問答聊天機器人等應(yīng)用程序。
那在說到企業(yè)級AI應(yīng)用除了RAG還有其他辦法嗎? 畢竟也不是所有企業(yè)都有 大量數(shù)據(jù)來供大模型來訓(xùn)練的,這個當然是有的,除了RAG之外,還有提示詞工程、微調(diào)、預(yù)訓(xùn)練,加上RAG之后,這四者可以說都可以用來構(gòu)建一個AI應(yīng)用,也可以混搭著來用,下面的表格可以看到這四個對于構(gòu)建應(yīng)用來說有什么的區(qū)別:
最后還有一點就是關(guān)于數(shù)據(jù)層面,作為那么多年數(shù)據(jù)從業(yè)者,其實數(shù)據(jù)做起來簡單,但是能做好是非常難的,對于大模型來說也是同樣的道理,如果要做自己的企業(yè)AI應(yīng)用的話,需要不斷“投喂”給模型數(shù)據(jù),這些數(shù)據(jù)的質(zhì)量怎么樣是直接影響到最后模型展示效果的。
那么從數(shù)據(jù)角度應(yīng)該怎么樣保障數(shù)據(jù)高質(zhì)量提供給模型呢?過去我們都說數(shù)據(jù)治理大部分都是在數(shù)據(jù)分析、挖掘的場景,最終效果來說,更多是數(shù)據(jù)完整度、數(shù)據(jù)準確性、數(shù)據(jù)關(guān)聯(lián)性這三個方面進行對齊,但是在AI模型上來說,數(shù)據(jù)量級會更大,大部分都是非結(jié)構(gòu)化數(shù)據(jù)、對于數(shù)據(jù)過濾的要求會更加嚴格、還會要求數(shù)據(jù)的可解釋性,在全部就緒之后,還會涉及到數(shù)據(jù)標注處理,整個流程上基本是要重構(gòu)一遍。
本文轉(zhuǎn)載自??DataForAI??,作者:易程Date
