宏景智駕完成數(shù)億元C輪融資植物生長好幫手:廣明源金線蓮組培燈照亮生長每一步ROG純白系列DIY好物:簡約不失高雅,買它準(zhǔn)沒錯!穩(wěn)扎穩(wěn)打,中影光峰4K 14米 VLED LED電影屏通過DCI認(rèn)證并投入市場安吉爾空間大師亮相IFA 斬獲年度創(chuàng)新產(chǎn)品成果大獎電動自行車強(qiáng)制性“國標(biāo)”再修訂,綠源電動車以創(chuàng)新技術(shù)引領(lǐng)產(chǎn)業(yè)高質(zhì)量發(fā)展輕松籌:十年深耕大健康領(lǐng)域,打造全方位健康保障生態(tài)面對承壓的小家電市場,小熊、蘇泊爾上半年為何一降一增?研發(fā)投入高增、占營收比超5%,科沃斯、石頭科技升高技術(shù)壁壘激光顯示全面“向新”發(fā)展,未來激光電視主機(jī)僅有iPad大小2024年冷年空調(diào)市場總結(jié):規(guī)模下探,結(jié)構(gòu)降級,空調(diào)行業(yè)邁入新周OpenAI o1全方位SOTA登頂lmsys推薦榜!數(shù)學(xué)能力碾壓Claude和谷歌模型,o1-mini并列第一iPhone16系列新品正式發(fā)售 新品爆發(fā)就在抖音電商廣告燒錢過億,70%用戶靠投流,大模型算不過成本賬?PS1經(jīng)典配色!索尼發(fā)布30周年紀(jì)念版PS5、PS5 Pro:限量賣泰順:聚智聚力數(shù)字創(chuàng)客激發(fā)鄉(xiāng)村振興新動能電商12年 ,ALL IN 小紅書,開店3月賣出1100萬Mate 70最受期待!華為三款重磅機(jī)型蓄勢待發(fā)云天勵飛“算力積木”架構(gòu):引領(lǐng)邊緣AI芯片新變革徹底告別3999元!小米15入網(wǎng) 支持90W快充
  • 首頁 > 云計算頻道 > 大模型

    大模型技術(shù)實踐(三)|10分鐘用LangChain和Llama 2打造心靈療愈機(jī)器人

    2023年09月08日 09:49:59   來源:中文科技資訊

      上期文章我們實現(xiàn)了Llama 2-chat-7B模型的云端部署和推理,本期文章我們將用“LangChain+Llama 2”的架構(gòu)打造一個定制化的心靈療愈機(jī)器人。有相關(guān)知識背景的讀者可以直接閱讀「實戰(zhàn)」部分。

      1 背景

      1.1 微調(diào) vs. 知識庫

      由于大模型在垂直行業(yè)領(lǐng)域的問答效果仍有待提升,因此,領(lǐng)域知識的注入成為了最直接的解決方案之一。知識注入方法可以分為領(lǐng)域微調(diào)(Fine-tuning)和外掛知識庫(Knowledge Base)兩種。

      1. 領(lǐng)域微調(diào)

      微調(diào)是通過少量特定用例的增量數(shù)據(jù)對基礎(chǔ)模型進(jìn)行進(jìn)一步訓(xùn)練,改變其神經(jīng)網(wǎng)絡(luò)中的參數(shù)權(quán)重。微調(diào)適用于任務(wù)或域定義明確,且有足夠的標(biāo)記數(shù)據(jù)的場景,比如風(fēng)格微調(diào)。目前常用的微調(diào)方法包括Freeze,P-tuning和LoRA,相關(guān)細(xì)節(jié)會在下期文章中詳細(xì)介紹。

      然而,微調(diào)方法的不足之處在于:

      ▪ 高質(zhì)量訓(xùn)練數(shù)據(jù)集的構(gòu)建,微調(diào)訓(xùn)練所需的算力以及微調(diào)模型定期更新等開銷都不容小覷

      ▪ 試錯成本較高,特定領(lǐng)域數(shù)據(jù)一般難以覆蓋模型已學(xué)到的參數(shù),且可能會導(dǎo)致模型其他下游任務(wù)的表現(xiàn)下降

      2. 外掛知識庫

      外掛知識庫的本質(zhì)在于不修改基座模型參數(shù),通過提示詞工程(Prompt Engineering)將特定知識作為prompt中的context,即召回相關(guān)性最高的幾個文檔,讓模型分析這些蘊含知識后,并返回答案。知識庫適合要求輸出明確且精度高的任務(wù)。

      相對于微調(diào),知識庫的優(yōu)勢在于:

      ▪ 回答精確度更高,基于相關(guān)文檔中的最相關(guān)特定段落進(jìn)行語義搜索能消除查詢歧義以生成更精確的答案

      ▪ 適應(yīng)性更強(qiáng),用戶可以通過輕松更新信息源來調(diào)整和適配新的領(lǐng)域

      但大模型上下文窗口長度的限制和Prompt的構(gòu)造等因素帶來的潛在精度下降也需要納入知識庫構(gòu)建的考量。

      為了打造特定領(lǐng)域(Domain-specific Knowledge)的知識問答系統(tǒng),我們需要借助提供了外掛知識庫的搜索方案LangChain框架。

      1.2 LangChain模塊

      LangChain是一個由語言模型驅(qū)動的用于開發(fā)應(yīng)用程序的框架。

      LangChain主要的兩個能力是:

      a. Data-aware:將不同數(shù)據(jù)源接入到語言模型中

      b. Agentic:允許語言模型和LangChain環(huán)境交互

      LangChain的核心模塊包括Models,Prompts,Chains,Indexes,Agents等 [1]。對于每一個模塊,LangChain都提供了標(biāo)準(zhǔn)化的可拓展接口。

      圖1:LangChain部分模塊 [2]

      除了用LLM Wrapper可以接入眾多的大模型(如 OpenAI、Cohere、Hugging Face),LangChain同時也通過VectorStore Wrapper接口集成了主流的向量數(shù)據(jù)庫(如 Milvus、Pinecone、Chroma等)來優(yōu)化語義搜索。LangChain能接入的數(shù)據(jù)類型涵蓋了文本、PPT、圖片、HTML、Pdf等非結(jié)構(gòu)化文件。相較于傳統(tǒng)數(shù)據(jù)庫的精確搜索,即完全匹配,向量數(shù)據(jù)庫使用最鄰近(Approximate Nearest Neighbor,ANN)算法和相似度度量(如余弦相似度,內(nèi)積等)來找到和查詢問題最相似的向量;诒镜刂R庫問答的大致流程如下:

      這里以Milvus數(shù)據(jù)庫和ChatGPT作為示例:

      圖2:LangChian + Milvus + ChatGPT pipeline [3]

      2 實戰(zhàn)

      目前,我們已經(jīng)拆解完了LangChain+LLM文檔問答的大致鏈路,接下來我們正式進(jìn)入實戰(zhàn)環(huán)節(jié)。

      2.1 環(huán)境搭建

      a. 安裝LangChain

      確保Python 版本≥ 3.8.1 且 <4.0。

      b. 部署LLama 2

      關(guān)于Llama 2模型的部署,詳情可參見

      i. 上期文章“大模型技術(shù)實踐(二)|關(guān)于Llama 2你需要知道的那些事兒”:https://mp.weixin.qq.com/s/9WISpAN91duVYVwfkZQaDw

      ii. UCloud官方的“LLaMA2 模型快速部署”文檔:https://docs.ucloud.cn/gpu/practice/LLaMA2?id=llama2-模型快速部署

      c. 下載Embedding 模型

      這里我們選擇text2vec-large-chinese [4]這個Embedding模型,下載地址為:https://huggingface.co/GanymedeNil/text2vec-large-chinese

      對于中文的場景,也有其他優(yōu)秀的開源模型可供選擇,如m3e和bge等[5]。

      d. 下載數(shù)據(jù)集

      心靈雞湯文本數(shù)據(jù)集:https://huggingface.co/datasets/soulteary/warm-chicken-soup/

      這個數(shù)據(jù)集是從Google網(wǎng)頁上爬取的一些心靈雞湯引用短文,共包含631條文本

      2.2 文檔解析

      a. 加載數(shù)據(jù)集

      LangChain對于不同格式的數(shù)據(jù)源內(nèi)置了不同的解析腳本,最終這些數(shù)據(jù)都將轉(zhuǎn)換為純txt文本格式,以實現(xiàn)文本標(biāo)準(zhǔn)化。

      b. 文本切分

      文本切分中的chunk_size指定了切分后的文本塊的字?jǐn)?shù),chunk_overlap指定了切分文本塊之間的重疊字?jǐn)?shù)。由于雞湯引用文本總長度較短,且文本內(nèi)部語義關(guān)聯(lián)度高,所以這里的chunk_size設(shè)置為50,chunk_overlap設(shè)置為20。

      c. 文本嵌入和向量庫

      文本切分后,我們需要將文本進(jìn)行向量化表示,將其映射為低維稠密的向量并存儲到然向量數(shù)據(jù)庫中。向量數(shù)據(jù)庫選用了無需注冊的FAISS。

      2.3 加載模型

      2.4 語義檢索

      接下來,我就能根據(jù)構(gòu)建好的向量數(shù)據(jù)庫召回對應(yīng)文本片段。

      a. 向量化召回

      FAISS默認(rèn)使用L2(歐式距離),召回的文檔按照相似度結(jié)果從大到小排序。

      b. 設(shè)置提示詞模板

      以下是Llama 2默認(rèn)的提示詞模板

      我們可以參考上面的模板,根據(jù)場景定制化自己的模板來拼接query和召回結(jié)果

      2.5 推理示例

      我們對LLM的參數(shù)進(jìn)行設(shè)置,例如最大令牌(max_new_tokens)、最高k值(top_k)、溫度(temperature)和重復(fù)懲罰(repetition_penalty)等等。最后,將prompt喂給模型。

      3 外掛知識庫的問題和優(yōu)化

      3.1 LLM+Embedding-Search的局限

      外掛知識庫將用戶問題和本地知識向量化,比較兩者的向量相似度(Vector Similarity)進(jìn)行召回。然而,這種全量的Embedding-Search在面對多知識點聚合處理的場景下,存在召回精度低的問題。因為知識庫的構(gòu)建是對單個知識點進(jìn)行索引,而非對不同知識點的排列組合分別索引。

      為了避免召回遺漏,直觀的處理方法包括降低相似度閾值(similarity score threshold)和增加召回數(shù)量(top_k),但這不免會引入無關(guān)的知識點噪聲且增加和LLM交互的token開銷。

      3.2 效果優(yōu)化方向

      3.2.1 意圖識別和召回優(yōu)化

      提升問答系統(tǒng)的精度可以從意圖識別和召回優(yōu)化兩個角度考慮,且兩者都可以用關(guān)鍵詞表示,即從直接將用戶query和知識點進(jìn)行embedding轉(zhuǎn)變?yōu)閷烧咛崛£P(guān)鍵詞后再進(jìn)行匹配。意圖識別可以通過關(guān)鍵詞提取(Information Extraction, IE)和槽位填充(Slot Filling,SF)實現(xiàn)。:

      1. 關(guān)鍵詞提取

      a. 面向query——槽位填充

      利用LLM思維鏈(Chain-of-Thought,COT)的提示能力來引導(dǎo)用戶多輪對話并進(jìn)行信息總結(jié)。針對我們的心靈療愈機(jī)器人的場景,比如用戶查詢心靈雞湯的句子,那么就要求用戶的提供年齡段,情緒問題和情感需求等信息。語義槽格式如下:

      b. 面向知識點——索引入口

      對于知識點可以從以下兩個方面考慮:

      i. 對相同知識點建立多級索引,有助于實現(xiàn)對維度查詢。比如對一位奧運冠軍的姓名,競賽項目,年齡,獲獎時間等分別建立索引。

      ii. 將知識庫轉(zhuǎn)化為以關(guān)系三元組為核心的知識圖譜。三元組的抽取除了傳統(tǒng)的命名實體識別(NER)等方法,也可以通過prompt讓大模型來進(jìn)行抽取。

      基于關(guān)鍵詞的embedding入庫和搜索流程如下:

      2. 多路召回

      類似于Bert時代的垂直領(lǐng)域問答系統(tǒng),我們可以將語義檢索和傳統(tǒng)的Elasticsearch(ES)關(guān)鍵詞搜索并行,對兩者進(jìn)行加權(quán)打分投票來獲取最終的top_k。

      目前類似于以上優(yōu)化思路已經(jīng)落地的有“錄問”法律大模型 [6],其基座模型為Baichuan-7B。錄問知識增強(qiáng)的完整鏈路如圖3。值得注意的是,錄問在知識庫中對每一個知識點是以 [key, value] pair 形式存儲的。key是知識點的內(nèi)容簡介,用于檢索;value是知識點的具體內(nèi)容,用于模型輸入。實現(xiàn)細(xì)節(jié)請參照其Hugging Face倉庫。

      圖3:“錄問”知識增強(qiáng)鏈路

      3.2.2 其他優(yōu)化方向

      除了Embedding部分,“LangChain+LLM”(圖2)鏈路內(nèi)的其他組件也有進(jìn)一步優(yōu)化的空間:

      1. 知識庫細(xì)化

      當(dāng)用戶手動選擇分區(qū)后,分區(qū)檢索可以明顯提高召回的精度。

      圖4:“錄問”的交互界面

      2. 文本切分方式

      由于文本重疊(overlap)的大小沒有統(tǒng)一標(biāo)準(zhǔn),如何保證語義完整和連貫都需要不斷測試。

      3. 提示詞的質(zhì)量

      在提示詞模板的設(shè)計上要增加明確約束條件的指令,減少大模型出現(xiàn)幻覺現(xiàn)象的幾率。

      4. 大模型的選型

      選擇基座模型還是微調(diào)后的模型,以及對中文的支持程度的需求都需要結(jié)合下游場景進(jìn)行判別。

      本期文章帶你基于“LangChain+LLM”框架快速搭建了知識增強(qiáng)后的問答機(jī)器人--心靈療愈師,并探討了提升模型的內(nèi)容理解和執(zhí)行能力的潛在優(yōu)化方向。下期文章我們將深入解讀目前主流的大模型微調(diào)技術(shù),敬請期待~

      4 參考文獻(xiàn)

      [1] LangChain Docs: https://python.langchain.com/docs/modules/

      [2] Revolutionizing NLP: Building Advanced Applications with LangChain and LLMs: https://www.linkedin.com/pulse/revolutionizing-nlp-building-advanced-applications-chandan/

      [3] Zilliz gitee: https://zilliz.gitee.io/welcome/

      [4] GanymedeNil/text2vec-large-chinese: https://huggingface.co/GanymedeNil/text2vec-large-chinese

      [5] MTEB Leaderboard: https://huggingface.co/spaces/mteb/leaderboard

      [6] 錄問 (wisdomInterrogatory) github: https://github.com/zhihaiLLM/wisdomInterrogatory

      文章內(nèi)容僅供閱讀,不構(gòu)成投資建議,請謹(jǐn)慎對待。投資者據(jù)此操作,風(fēng)險自擔(dān)。

    [No. S013]
    分享到微信

    即時

    TCL實業(yè)榮獲IFA2024多項大獎,展示全球科技創(chuàng)新力量

    近日,德國柏林國際電子消費品展覽會(IFA2024)隆重舉辦。憑借在核心技術(shù)、產(chǎn)品設(shè)計及應(yīng)用方面的創(chuàng)新變革,全球領(lǐng)先的智能終端企業(yè)TCL實業(yè)成功斬獲兩項“IFA全球產(chǎn)品設(shè)計創(chuàng)新大獎”金獎,有力證明了其在全球市場的強(qiáng)大影響力。

    新聞

    敢闖技術(shù)無人區(qū) TCL實業(yè)斬獲多項AWE 2024艾普蘭獎

    近日,中國家電及消費電子博覽會(AWE 2024)隆重開幕。全球領(lǐng)先的智能終端企業(yè)TCL實業(yè)攜多款創(chuàng)新技術(shù)和新品亮相,以敢為精神勇闖技術(shù)無人區(qū),斬獲四項AWE 2024艾普蘭大獎。

    企業(yè)IT

    重慶創(chuàng)新公積金應(yīng)用,“區(qū)塊鏈+政務(wù)服務(wù)”顯成效

    “以前都要去窗口辦,一套流程下來都要半個月了,現(xiàn)在方便多了!”打開“重慶公積金”微信小程序,按照提示流程提交相關(guān)材料,僅幾秒鐘,重慶市民曾某的賬戶就打進(jìn)了21600元。

    3C消費

    “純臻4K 視界煥新”——愛普生4K 3LCD 激光工程投影

    2024年3月12日,由愛普生舉辦的主題為“純臻4K 視界煥新”新品發(fā)布會在上海盛大舉行。

    研究

    2024全球開發(fā)者先鋒大會即將開幕

    由世界人工智能大會組委會、上海市經(jīng)信委、徐匯區(qū)政府、臨港新片區(qū)管委會共同指導(dǎo),由上海市人工智能行業(yè)協(xié)會聯(lián)合上海人工智能實驗室、上海臨港經(jīng)濟(jì)發(fā)展(集團(tuán))有限公司、開放原子開源基金會主辦的“2024全球開發(fā)者先鋒大會”,將于2024年3月23日至24日舉辦。