LlamaIndex:如何為大模型加載一個AI知識庫?
大模型被喻為人類正在經(jīng)歷的一場科技革命,而橫亙在大模型和實際業(yè)務場景之間的,是大模型在面對企業(yè)復雜業(yè)務場景時解決問題的能力,要具備這樣的能力,數(shù)據(jù)是關鍵。
這其中需要的數(shù)據(jù),不是通用大模型訓練時用到的那些常見數(shù)據(jù),而是與企業(yè)業(yè)務相關的數(shù)據(jù),這些數(shù)據(jù)是大模型廠商在做模型訓練難以觸達的。
這就使得,當大模型真正進入實際應用場景中時,往往需要由企業(yè)再次提供這些數(shù)據(jù)進行再訓練。
這些由企業(yè)提供的數(shù)據(jù),往往又會構成一個本地數(shù)據(jù)庫,這個數(shù)據(jù)庫又可以被稱為本地知識庫。
LlamaIndex就是橋接大模型和本地知識庫的一個神奇的框架。
給大模型“補鈣”
自2022年11月ChatGPT一鳴驚人后,全球科技巨頭都開始部署自己的大模型業(yè)務,大模型成了這個時代最性感的名詞,也被認為是人類又一次顛覆式的科技革命。
那么大模型究竟從何而來?
眾所周知,人類對人工智能技術的研究由來已久,大模型是人工智能技術研究中的一個分支,而大模型的本質(zhì)是大數(shù)據(jù)、大算力。
大算力自不必提,就大數(shù)據(jù)而言,ChatGPT在訓練過程中,使用的數(shù)據(jù)普遍源于互聯(lián)網(wǎng)上的公開數(shù)據(jù),例如維基百科、媒體文章、網(wǎng)上問答、開源社區(qū)等中的數(shù)據(jù)。
OpenAI團隊基于這些公開數(shù)據(jù)對模型進行訓練后,就讓ChatGPT具備了摘要生成、文本生成、問答對話這些最基本的能力,這也是為什么ChatGPT最早的商用嘗試,是被微軟集成到了Bing中,用戶優(yōu)化搜索引擎。
不過,這樣的通用大模型,只是擁有了互聯(lián)網(wǎng)意義上的通用,在解決個人或企業(yè)遇到的實際問題時,現(xiàn)有大模型的能力依然有些捉襟見肘。
為了解決大模型在進入實際業(yè)務場景中的問題,就需要對給大模型“補鈣”,目前行業(yè)中最流行的有三種方法:
第一種方法是提示詞工程,這一方法是在已經(jīng)訓練好的大模型上,通過輸入你想要查詢內(nèi)容的上下文,讓大模型運行補充一定的語境,然后通過編寫高效、準確的prompt,讓大模型輸出更精確的答案。
這種方法不僅對工程人員編寫提示詞的要求很高,也要求大模型擁有足夠強的長文本輸入和解析能力,這也是為什么大模型廠商都在增強自家大模型的長文本能力的原因之一。
第二種方法是微調(diào),也就是我們常說的Fine Tuning,是在已經(jīng)預訓練好的大模型上,使用特定的數(shù)據(jù)集進行二次訓練,使模型適應特定任務或領域。
這種方法目前也存在諸如對計算資源要求高、偏差容易被放大、易遭受對抗性攻擊,甚至會導致“災難性遺忘”等問題。
第三種方法就是RAG,是在原有大模型應用流程中,加入本地知識庫,通過本地知識庫的引入,補充大模型專業(yè)能力上的不足。
LlamaIndex就是通過第三種方法來讓大模型具備進入企業(yè)實際應用場景中的落地能力。
為大模型加載AI知識庫
在LlamaIndex框架下,該團隊一共構建了三個關鍵組件,分別是:數(shù)據(jù)連接器、數(shù)據(jù)索引、查詢接口。
這三個關鍵組件也是LlamaIndex將個人或企業(yè)的本地知識庫“加載”到大模型中的三個主要步驟。
首先,第一步是通過數(shù)據(jù)連接器(LlamaHub)解決以往機器學習中數(shù)據(jù)清洗和數(shù)據(jù)治理的問題。
目前LlamaHub支持160多種數(shù)據(jù)格式,通過LlamaHub將這些數(shù)據(jù)形成一個Document對象列表,或是一個Node列表,并將這個列表與大模型關聯(lián)起來。
第二步是通過數(shù)據(jù)索引來解決的是為不同應用場景調(diào)整數(shù)據(jù)結構的問題。
通過LlamaHub形成Document對象列表后,通過數(shù)據(jù)索引組件,構建一個用于補充查詢策略、可供大模型查詢的索引,例如構建成現(xiàn)在較為常見的向量索引。
值得一提的是,LlamaIndex現(xiàn)在可以將不同類型的數(shù)據(jù)統(tǒng)一加工成結構化數(shù)據(jù),供大模型后續(xù)進行調(diào)用、訓練和學習。
第三步是通過查詢接口輸入prompt和接收經(jīng)過知識庫后生成的結果。
通過這三個關鍵組件,LlamaIndex為大模型和本地知識庫搭建了一條連通橋梁,為行業(yè)大模型或私有大模型提供了一條簡單構建路徑。