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