LLM(大語言模型) 是一項(xiàng)變革性的技術(shù),它將人類的各類知識和邏輯能力打包進(jìn)入了一個(gè)體積龐大的模型當(dāng)中。但是通常來說,包括當(dāng)前公認(rèn)效果最好的LLM GPT-4都會有一個(gè)問題——事實(shí)問題錯(cuò)誤,也常被稱之為幻覺?;糜X(Hallucination),或者說人工智能幻覺是人工智能的自信反應(yīng)。當(dāng)模型輸出欺騙性數(shù)據(jù)的傾向時(shí),其使用的的訓(xùn)練數(shù)據(jù)并不能證明輸出的合理性。人工智能幻覺的危險(xiǎn)之處之一是模型的輸出看起來是正確的,其實(shí)它本質(zhì)上是錯(cuò)誤的。基于這種前提條件下,若是直接將LLM利用于生產(chǎn)環(huán)境中(例如客服答疑,新形式文檔等)時(shí),那么事實(shí)幻覺就可能會造成極其嚴(yán)重的影響。但是通過LangChain,我們可以通過將其它計(jì)算資源和自有的知識庫結(jié)合。依托于當(dāng)前的各類產(chǎn)品,在整合了當(dāng)前的語料資源庫后,各類LLM都會進(jìn)入到一個(gè)新的實(shí)用化發(fā)展階段。LangChain是一個(gè)用于開發(fā)基于語言模型的應(yīng)用程序開發(fā)框架??偟膩碚f,LangChain是一個(gè)鏈接面向用戶程序和LLM之間的一個(gè)中間層。
(資料圖)
它在 2023 年 3 月獲得了 Benchmark Capital 的 1000 萬美元種子輪融資,在近期又拿到了紅杉2000-2500萬美金的融資,估值已經(jīng)提升到了2億美金左右。
LangChain 可以輕松管理與語言模型的交互,將多個(gè)組件鏈接在一起,并集成額外的資源,例如 API 和數(shù)據(jù)庫。其組件包括了模型(各類LLM),提示模板(Prompts),索引,代理(Agent),記憶等等。當(dāng)前GitHub上的熱門項(xiàng)目Auto-GPT和Babyagi所使用的鏈?zhǔn)剿伎寄芰Χ际怯蒐angChain啟發(fā)而來。本次重點(diǎn)介紹LangChain搭配自有的知識庫讓LLM發(fā)揮更大功能的流程。
在缺少了上下文的情況下,即使是目前公認(rèn)最頂級的LLM GPT-4也無法回答部分需要特定領(lǐng)域的知識。
而要是想僅用自有知識庫來訓(xùn)練出LLMs又是不可能的,這個(gè)時(shí)候最好的方法就是利用LangChain的模塊來改善LLM的使用,通過輸入自己的知識庫來“定制化”自己的LLM。
Question Answering over specific documents是一個(gè)寫在LangChain主頁的主推功能。翻譯過來就是 基于特定文檔的問答 。
準(zhǔn)備自定義數(shù)據(jù)
準(zhǔn)備好需要LLM學(xué)習(xí)的內(nèi)容,它可以是一個(gè)純文本文件或者其他類型的文本(不同類型的文本需要不同的文檔加載器)。一般來講,每個(gè)文檔都是由復(fù)雜長短句、多種語法結(jié)合寫作而成的。在進(jìn)行輸入之前,就必須對這些文字進(jìn)行解構(gòu)處理。對于英文LangChain一般會使用RecursiveCharacterTextSplitter處理。由于中文的復(fù)雜性,會使用到j(luò)ieba等處理工具預(yù)處理中文語句。文本嵌入(Embeddings)處理完文本之后,就可以對文本進(jìn)行嵌入(Embeddings)了。通過調(diào)用OpenAI的Embeddings API將文本向量化。在這步處理之后,文本就已經(jīng)不再是文字,而是以向量化存儲的信息。再使用一個(gè)開源的Embeddings數(shù)據(jù)庫ChromaDB保存Embeddings數(shù)據(jù),就可以達(dá)到使用數(shù)據(jù)長期存儲和快速調(diào)用。圖:將原文本嵌入
使用鏈(Chain)對矢量數(shù)據(jù)庫進(jìn)行問答
在擁有了嵌入數(shù)據(jù)之后,我們就可以利用LangChain的強(qiáng)大鏈功能來執(zhí)行我們的問答。這時(shí)就可以通過自然語言對于文檔內(nèi)容進(jìn)行提問了。當(dāng)前的AI熱潮吸引了很多人,而除了ChatGPT這類問答還有New Bing這種搜索服務(wù)外,并沒有什么可以將LLM商業(yè)化的案例。甚至可以說只有New Bing才是目前唯一一個(gè)成功的商業(yè)化案例。
LangChain為所有人提供了一個(gè)新的商業(yè)化方案。此前有將LLM導(dǎo)入客服軟件中應(yīng)用的方案,但是由于LLM容易出現(xiàn)事實(shí)幻覺而無法實(shí)施。同時(shí),將所需內(nèi)容通過Prompt導(dǎo)入LLM的想法也由于LLM的對話(Context)輸入限制而不可能實(shí)施。LangChain則通過將數(shù)據(jù)向量化避免了使用輸入限制,從而將所需內(nèi)容導(dǎo)入LLM進(jìn)行問答。當(dāng)下的人工成本逐漸提升,例如淘寶客服等人工密集型產(chǎn)業(yè)的成本逐步提升。當(dāng)前的智能問答距離可用仍有較遠(yuǎn)的距離。通過已經(jīng)預(yù)訓(xùn)練好的LLM是一個(gè)快速降本增效的方案?;诿總€(gè)產(chǎn)品的數(shù)據(jù),可以將數(shù)據(jù)引入LLM中,讓LLM接替客服工作,準(zhǔn)確、快速的回答客戶的定制化問題,同時(shí)語氣貼合自然口吻,避免了情緒化工作。基于文檔的工作還可以在各類公司培訓(xùn)和智能化文檔方面提供作用。很多產(chǎn)品文檔隨著時(shí)間的積累變得越來越復(fù)雜,多層跳轉(zhuǎn)也會讓人學(xué)習(xí)起來效率低下且不適。此時(shí)基于LangChain就可以將文檔重新梳理,輸出為大綱類,在使用的時(shí)候可以隨時(shí)通過問答的形式將內(nèi)容輸出。類似于新員工培訓(xùn)和產(chǎn)品說明書等等場景都可以有所應(yīng)用。這就極大的拓寬了文字類LLM的使用場景。除了直接與人交互的方面外,還可以導(dǎo)入特定領(lǐng)域的知識庫,實(shí)時(shí)更新LLM的內(nèi)容,讓LLM的知識時(shí)刻處于最新的狀態(tài)。依賴于此,LangChain除了可以完成自然語言文檔搜索外,還可以基于及時(shí)的資源進(jìn)行快速開發(fā)。導(dǎo)入資源后LangChain開發(fā)出的網(wǎng)頁目前,由于整個(gè)AI生態(tài)還處于一種快速發(fā)展期,各類工具和平臺還沒有完全成熟,因此LangChain的各類鏈和模塊的定制性和功能都還不夠強(qiáng)大。對于有高性能場景需求和定制化任務(wù)的可能需要自己重新修改。
事實(shí)合法性也是未來需要解決的一個(gè)痛點(diǎn)。LLM的各類越獄層出不窮。雖然在引入了嵌入之后LLM只會對文檔內(nèi)容進(jìn)行問答,但是仍然需要有一套額外的監(jiān)督系統(tǒng)防止出現(xiàn)任何非法的回答。同時(shí)當(dāng)前LangChain還有使用難度較高等問題。目前的各類AI工具都面臨著普通用戶無法輕松駕馭等等的問題,而LangChain的問題更盛。普通產(chǎn)品或者開發(fā)者的上手學(xué)習(xí)成本較高,使用起來難度很大。這一切都需要社區(qū)和商業(yè)資本的共同投入才有可能解決。LangChain是當(dāng)前眾多的AGI實(shí)驗(yàn)性工具的基石項(xiàng)目?;阪湥–hain)的LLM調(diào)用思維勢必會貫穿未來LLM的發(fā)展生態(tài)。提前關(guān)注AI發(fā)展動(dòng)向,關(guān)注LangChain的開發(fā)進(jìn)度,會對未來的AI應(yīng)用落地有極大的幫助。 關(guān)鍵詞: