當(dāng)前,人工智能技術(shù)發(fā)展迅猛,無疑成為新質(zhì)生產(chǎn)力中最為奪目的黑馬。特別是OpenAI推出ChatGPT以來,人工智能在大數(shù)據(jù)、大算力和大算法方面實(shí)現(xiàn)了完美結(jié)合,真正讓普通人感受到人工智能的“神奇”。
隨著越來越多的通用大語言模型(LLM)的出現(xiàn)和發(fā)展,如何利用LLM能力實(shí)現(xiàn)人工智能應(yīng)用的落地成為業(yè)界努力的方向。
高校的信息化建設(shè)有著大量的應(yīng)用建設(shè)需求,基于 LLM的能力和學(xué)校信息化建設(shè)的結(jié)合也是高校智慧校園建設(shè)的探索。
本文主要介紹利用RAG(Retrieval Augmented Generation)基于LLM通用大語言模型開發(fā)信息化應(yīng)用的探索。為了既利用LLM的能力,又能夠把一些最新的或者內(nèi)部的知識作用于LLM,使用 Retrieval Augmented Generation(檢索增項(xiàng)的生成模型簡稱RAG)是解決辦法之一。
顧名思義,RAG就是通過檢索的方式來增強(qiáng)LLM模型的能力。用一個(gè)形象的比喻就是RAG相當(dāng)于是LLM在做一次開卷考試,當(dāng)遇到不會做的題目的時(shí)候就查看已有的答案,然后根據(jù)答案再來回答問題。那么這里已有的答案就是提前準(zhǔn)備好的最新或者內(nèi)部的知識文件。
總結(jié)來說,RAG就是一種基于深度學(xué)習(xí)和自然語言處理的技術(shù)手段。它可以將檢索和生成兩個(gè)任務(wù)有機(jī)結(jié)合起來,實(shí)現(xiàn)了更加智能的信息檢索。與傳統(tǒng)的檢索技術(shù)相比,RAG能夠更加準(zhǔn)確和個(gè)性化地搜索結(jié)果,同時(shí)生成與問題相關(guān)的回答或解釋,提高了信息檢索的效率和準(zhǔn)確性。
LLM簡介
大模型,全稱“大語言模型”,英文“Large Language Model”,縮寫LLM。大語言模型具備對自然語言進(jìn)行理解、生成和處理的能力,并在各類自然語言處理任務(wù)中發(fā)揮作用,如文本摘要、機(jī)器翻譯、問答系統(tǒng)等。本文并不對 LLM做過多的介紹,解釋一下對話產(chǎn)品和大模型的區(qū)別,大模型前面做了簡單介紹,而對話產(chǎn)品則是利用大模型能力開發(fā)出來提供給用戶使用的服務(wù)或軟件。表1列出了中國和美國部分對話產(chǎn)品和大語言模型。
在LLM應(yīng)用過程存在的一些局限性問題。
一是LLM知識的實(shí)時(shí)性問題。目前很多大語言模型訓(xùn)練學(xué)習(xí)的知識不是實(shí)時(shí)的,典型的案例就是ChatGPT等。那么如果涉及到一些較新的知識點(diǎn)和事件,LLM將無法準(zhǔn)確做出回應(yīng)。
二是LLM無法知道相關(guān)行業(yè)或單位內(nèi)部的知識。例如學(xué)?;蛘?/span>行業(yè)內(nèi)部的一些管理規(guī)定,LLM是不知道的。那么在使用LLM的時(shí)候,相關(guān)問題也是無法回答的。
表1 主要的大模型和對話產(chǎn)品
利用RAG搭建智能問答系統(tǒng)
在高校的信息化建設(shè)中,智能問答系統(tǒng)是常見的應(yīng)用系統(tǒng),用于解答師生提出相關(guān)的問題,傳統(tǒng)的做法是通過關(guān)鍵字匹配知識庫的方式來實(shí)現(xiàn)。當(dāng)師生提出的問題剛好有關(guān)鍵字能匹配上則系統(tǒng)能夠正確回答問題;如果師生提出的問題換了個(gè)意思相近的詞語導(dǎo)致無法匹配關(guān)鍵字,系統(tǒng)則可能無法做出正確的回答。造成該問題的原因是智能問答系統(tǒng)沒有真正理解師生提出的問題語義,利用LLM和RAG則可以很好地解決這個(gè)問題。
搭建基于LLM的RAG系統(tǒng)主要有四個(gè)步驟。
第一步,文檔加載及切片。首先我們需要對知識庫文檔進(jìn)行切片處理,按照一定的大小進(jìn)行切片,因?yàn)闊o論是關(guān)鍵字檢索還是向量檢索都是對文檔切片進(jìn)行的。目前通過很多成熟的軟件可以非常方便地完成此項(xiàng)工作。
第二步,文本向量化。文本向量(Text Embeddings)就是將文本轉(zhuǎn)化成一組浮點(diǎn)數(shù)組,整個(gè)數(shù)組則可以對應(yīng)多維空間的點(diǎn),即文本向量。在這里做文本向量化的目的是向量化后的文本可以通過相應(yīng)的數(shù)學(xué)工具來計(jì)算文本之間的關(guān)系即向量相似度計(jì)算。文本向量化這個(gè)工作一般直接使用LLM提供的向量工具來完成。在實(shí)際開發(fā)過程中使用的就是OpenAI公司的“text-embedding-ada-002”這個(gè)工具。
第三步,文檔導(dǎo)入檢索引擎或向量數(shù)據(jù)庫。我們將切片后的文檔導(dǎo)入到相應(yīng)的檢索引擎中用于文檔檢索。如果導(dǎo)入的檢索引擎為elasticsearch則實(shí)現(xiàn)的是關(guān)鍵字檢索,如果導(dǎo)入的是向量數(shù)據(jù)庫則可以實(shí)現(xiàn)向量檢索。在這里我們實(shí)現(xiàn)RAG功能就是使用的向量數(shù)據(jù)庫檢索。在這里我們需要注意的是使用向量數(shù)據(jù)庫是為了對向量數(shù)據(jù)進(jìn)行快速檢索,向量數(shù)據(jù)庫并不能取代傳統(tǒng)數(shù)據(jù)庫的功能;向量數(shù)據(jù)庫本身并不會產(chǎn)生向量數(shù)據(jù),向量數(shù)據(jù)是由向量化工具生成的。
第四步,封裝檢索接口。 完成前面的工作后,就可以利用LLM接口和Prompt模板完成最終問題回答的工作了。在實(shí)際工作中,使用的是ChatGPT3.5提供的API接口。實(shí)際的調(diào)用流程如圖1所示。
圖1 RAG工作流程
關(guān)鍵技術(shù)點(diǎn)
文本向量的計(jì)算。 如圖2所示,通過向量化工具可以得到文本的向量,那么如何計(jì)算文本的相似度及向量之間的距離。構(gòu)建相關(guān)(正例)與不相關(guān)(負(fù)例)的句子對比樣本和通過訓(xùn)練雙塔式模型,讓正例間的距離小,負(fù)例間的距離大,這里用到的是歐式距離和余弦距離的計(jì)算方式。
圖2 文本向量化
向量數(shù)據(jù)庫的選擇。實(shí)現(xiàn)智能問答系統(tǒng)的效率好壞的關(guān)鍵是向量數(shù)據(jù)庫的檢索能力,目前業(yè)界有著非常多的向量數(shù)據(jù)庫的選擇,具體見表2。
表2 主流向量數(shù)據(jù)庫功能對比
RAG的不足
RAG模型結(jié)合了檢索模型和生成模型的優(yōu)勢,能基于更廣泛的知識庫進(jìn)行生成文檔,從而提高生成結(jié)果的準(zhǔn)確性和信息豐富程度,但依然存在著一些不足。
首先,依賴外部數(shù)據(jù)庫:RAG的運(yùn)行性能高度依賴于外部知識庫的質(zhì)量和覆蓋范圍。如果知識庫的信息不全或過時(shí),則很有可能影響生成結(jié)果的準(zhǔn)確性。
其次,技術(shù)實(shí)施難度:在具體運(yùn)用RAG模型開發(fā)應(yīng)用的時(shí)候,需要整合檢索和生成模型特別是向量數(shù)據(jù)庫的部署,這可能需要較高的技術(shù)水平和計(jì)算資源。
最后,向量檢索的不足:有時(shí)候會存在最適合的答案在向量檢索的結(jié)果中不是排名最前,這時(shí)可以采用通過召回和重排打分的方式解決;當(dāng)遇到文檔中有很長的專有名詞的時(shí)候,向量檢索可能會不準(zhǔn)確,這時(shí)可以采用混合檢索即關(guān)鍵字檢索和向量檢索混合使用的方式來解決。
隨著計(jì)算能力和AI技術(shù)的不斷提高,LLM的規(guī)模和性能將繼續(xù)增強(qiáng),未來的應(yīng)用也將更加廣泛,將來會為人類提供更加智能化和個(gè)性化的服務(wù),進(jìn)一步改善人們的生活和生產(chǎn)方式。2024年全國將會有一批基于LLM的應(yīng)用在相關(guān)行業(yè)中實(shí)現(xiàn)落地,那么如何將LLM與高校信息化建設(shè)相結(jié)合,也需要我們不斷去發(fā)展和探索。
來源:《中國教育網(wǎng)絡(luò)》2024年9月刊