欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于本地知識(shí)的問答機(jī)器人langchain-ChatGLM 大語言模型實(shí)現(xiàn)方法詳解

 更新時(shí)間:2023年07月17日 09:01:55   作者:無涯  
這篇文章主要介紹了基于本地知識(shí)的問答機(jī)器人langchain-ChatGLM 大語言模型實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式詳細(xì)分析了langchain-ChatGLM的功能、原理、部署方法與操作注意事項(xiàng),需要的朋友可以參考下

背景

ChatGPT火了后,各種大語言模型(LLM)模型相繼被發(fā)布,完全開源的有ChatGLM、BLOOM、LLaMA等。但是這些模型學(xué)到的知識(shí)是滯后的(比如ChatGPT的知識(shí)是截止到2021年),并且這些知識(shí)是通用領(lǐng)域的。

在實(shí)際應(yīng)用場(chǎng)景中,除閑聊機(jī)器人外,大多數(shù)機(jī)器人是為了完成特定任務(wù)的。比如數(shù)字人虛擬主播、某公司的智能客服等都需要圍繞具體的業(yè)務(wù)來進(jìn)行問答。如何將具體業(yè)務(wù)知識(shí)融合到大語言模型里,是問答機(jī)器人落地應(yīng)用需要考慮的一個(gè)重要問題。

一、langchain-ChatGLM簡(jiǎn)介

langchain-ChatGLM是一個(gè)基于本地知識(shí)的問答機(jī)器人,使用者可以自由配置本地知識(shí),用戶問題的答案也是基于本地知識(shí)生成的。github鏈接為:GitHub - imClumsyPanda/langchain-ChatGLM: langchain-ChatGLM, local knowledge based ChatGLM with langchain | 基于本地知識(shí)的 ChatGLM 問答。

二、以淘寶衣服為例,測(cè)試問答效果

以淘寶衣服屬性構(gòu)建本地知識(shí),測(cè)試問答效果。將淘寶鏈接為https://detail.tmall.com/item.htm?abbucket=6&id=656544342321&ns=1&spm=a230r.1.14.48.b3f84f64A9YLJ0的"寶貝詳情"和"尺碼推薦"整理成《local_knowledge_clothing_describe.txt》,內(nèi)容如下:

身高:160-170cm, 體重:90-115斤,建議尺碼M。
身高:165-175cm, 體重:115-135斤,建議尺碼L。
身高:170-178cm, 體重:130-150斤,建議尺碼XL。
身高:175-182cm, 體重:145-165斤,建議尺碼2XL。
身高:178-185cm, 體重:160-180斤,建議尺碼3XL。
身高:180-190cm, 體重:180-210斤,建議尺碼4XL。
身高:180-195cm, 體重:210-230斤,建議尺碼5XL。
面料分類:滌綸
圖案:幾何圖案
領(lǐng)型:連帽
衣門襟:拉鏈
顏色:黑色302春秋款(斜插口袋) 深灰色302春秋款(斜插口袋) 藍(lán)色302春秋款(斜插口袋) 米色302春秋款(斜插口袋) 黑色303春秋款(工裝口袋) 深灰色303春秋款(工裝口袋) 藍(lán)色303春秋款(工裝口袋) 黑色303(冬季棉衣款加棉加厚) 深灰色303(冬季棉衣款加棉加厚) 藍(lán)色303(冬季棉衣款加棉加厚) 黑色302(冬季棉衣款加棉加厚) 米色302(冬季棉衣款加棉加厚) 黑色303春秋款+黑色302春秋款 深灰色303春秋款+黑色302春秋款
袖型:收口袖
適用季節(jié):春秋
袖長(zhǎng):長(zhǎng)袖
厚?。撼R?guī)
適用場(chǎng)景:其他休閑
衣長(zhǎng):常規(guī)款
版型:寬松型
款式細(xì)節(jié):假兩件
工藝處理:涂層
適用對(duì)象:青少年
面料功能:防風(fēng)
穿搭方式:外穿
材質(zhì)成分:聚酯纖維100% 

加載《local_knowledge_clothing_describe.txt》作為本地知識(shí),問答效果如下所示:

用戶:身高173,體重144斤,選什么尺寸客服: 您的身高為173厘米,體重為144斤,建議選擇尺碼為XL。這個(gè)尺寸適用于身高在170-178厘米之間,體重在130-150斤之間的人。選擇XL尺寸可以確保衣服能夠合適地遮蓋住身體,同時(shí)不會(huì)過小或過大,確保穿著舒適。用戶:衣服是什么材質(zhì)客服: 衣服的材質(zhì)成分為聚酯纖維100%

從測(cè)試的問答效果上來看,滿足了基本的要求,具體情況仍需要更多的實(shí)測(cè)結(jié)果來說明。

三、langchain-ChatGLM的原理

先上圖,langchain-ChatGLM的架構(gòu)如下圖所示:

圖1、langchain-ChatGLM的架構(gòu)

3.1、從本地知識(shí)中獲取與用戶query相關(guān)的context

通過Faiss搜索得到與query_embedding關(guān)系最緊密的Top K個(gè)Document,將這些Document的內(nèi)容按換行符拼起來作為query的context。舉例說明如下圖所示:

圖2、通過Faiss搜索得到query相關(guān)的context

3.2、用query和context填充模版得到prompt

模版示例如下,可根據(jù)問答效果自行修改

prompt_template = """基于以下已知信息,簡(jiǎn)潔和專業(yè)的來回答用戶的問題。不允許在答案中添加編造成分。
    已知內(nèi)容:
    {context}
    問題:
    {query}"""

將context和query填充到模版得到的prompt,加它輸入給ChatGLM-6B就能生成response。

四、langchain-ChatGLM使用中

五、問答需要優(yōu)化的環(huán)節(jié)

個(gè)人認(rèn)為langchain-ChatGLM是一種使用本地知識(shí)進(jìn)行問答的框架,它的實(shí)際問答效果與下面兩個(gè)問題相關(guān):

1、如何通過得到query相關(guān)性高的context,即與query相關(guān)的Document盡可能多的能被召回;

2、如何讓LLM基于query和context得到高質(zhì)量的response。

5.1、讓query相關(guān)的Document盡可能多的被召回

將本地知識(shí)切分成Document的時(shí)候,需要考慮Document的長(zhǎng)度、Document embedding質(zhì)量和被召回Document數(shù)量這三者之間的相互影響。在文本切分算法還沒那么智能的情況下,本地知識(shí)的內(nèi)容最好是已經(jīng)結(jié)構(gòu)化比較好了,各個(gè)段落之間語義關(guān)聯(lián)沒那么強(qiáng)。Document較短的情況下,得到的Document embedding的質(zhì)量可能會(huì)高一些,通過Faiss得到的Document與query相關(guān)度會(huì)高一些。

使用Faiss做搜索,前提條件是有高質(zhì)量的文本向量化工具。因此最好是能基于本地知識(shí)對(duì)文本向量化工具進(jìn)行Finetune。另外也可以考慮將ES搜索結(jié)果與Faiss結(jié)果相結(jié)合。

5.2、基于query和context讓LLM得到高質(zhì)量的response

有了query相關(guān)的context后,如何讓LLM生成高質(zhì)量的response,也是一個(gè)非常重要的問題。優(yōu)化的點(diǎn)有兩個(gè):①、嘗試多個(gè)的prompt模版,選擇一個(gè)合適的,但是這個(gè)可能有點(diǎn)玄學(xué);②、用與本地知識(shí)問答相關(guān)的語料,對(duì)LLM進(jìn)行Finetune。

補(bǔ)充:ChatGML模型對(duì)于硬件的要求比較高,內(nèi)存需要32G以上,半精度的 ChatGLM2-6B 模型需要大概 13GB 內(nèi)存。

查看專屬GPU內(nèi)存:因?yàn)镃hatGLM2內(nèi)存要求6GB以上才可以發(fā)揮出性能要求。

下表為ChatGLM2-2B的根據(jù)顯存大小決定的問答性能。

量化等級(jí)最低 GPU 顯存(推理)最低 GPU 顯存(高效參數(shù)微調(diào))
FP16(無量化)13 GB14 GB
INT88 GB9 GB
INT46 GB7 GB

相關(guān)文章

  • Python區(qū)塊鏈范圍結(jié)論及Genesis Block的添加教程

    Python區(qū)塊鏈范圍結(jié)論及Genesis Block的添加教程

    這篇文章主要為大家介紹了Python區(qū)塊鏈范圍結(jié)論及Genesis Block的添加,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • python操作文件的參數(shù)整理

    python操作文件的參數(shù)整理

    在本篇文章中我們給大家總結(jié)了關(guān)于python操作文件的相關(guān)參數(shù)以及用法內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-06-06
  • python畫微信表情符的實(shí)例代碼

    python畫微信表情符的實(shí)例代碼

    這篇文章主要介紹了python畫微信表情的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Pandas實(shí)現(xiàn)Dataframe的重排和旋轉(zhuǎn)

    Pandas實(shí)現(xiàn)Dataframe的重排和旋轉(zhuǎn)

    使用Pandas的pivot方法可以將DF進(jìn)行旋轉(zhuǎn)變換,本文將會(huì)詳細(xì)講解pivot的秘密,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • python中的argparse基本用法(使用步驟)

    python中的argparse基本用法(使用步驟)

    argparse是一個(gè)python模塊,用途是:命令行選項(xiàng)、參數(shù)和子命令的解釋,這篇文章主要介紹了python中的argparse基本用法,需要的朋友可以參考下
    2023-04-04
  • 如何在ubuntu中切換使用不同版本的python

    如何在ubuntu中切換使用不同版本的python

    在ubuntu環(huán)境下進(jìn)行嵌入式開發(fā),我們?cè)谶M(jìn)行不同的項(xiàng)目開發(fā)時(shí),可能會(huì)遇到python環(huán)境不統(tǒng)一的情況,下面這篇文章主要給大家介紹了關(guān)于如何在ubuntu中切換使用不同版本的python的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • python爬取抖音視頻的實(shí)例分析

    python爬取抖音視頻的實(shí)例分析

    在本篇內(nèi)容里小編給大家整理一篇關(guān)于python爬取抖音視頻的實(shí)例分析的相關(guān)內(nèi)容,有興趣的朋友可以測(cè)試下實(shí)例內(nèi)容。
    2021-01-01
  • Python?Flask實(shí)現(xiàn)圖片上傳與下載的示例詳解

    Python?Flask實(shí)現(xiàn)圖片上傳與下載的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Python和Flask實(shí)現(xiàn)圖片上傳與下載(支持漂亮的拖拽上傳),文中示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-05-05
  • pandas 強(qiáng)制類型轉(zhuǎn)換 df.astype實(shí)例

    pandas 強(qiáng)制類型轉(zhuǎn)換 df.astype實(shí)例

    這篇文章主要介紹了pandas 強(qiáng)制類型轉(zhuǎn)換 df.astype實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • centos+nginx+uwsgi部署django項(xiàng)目上線

    centos+nginx+uwsgi部署django項(xiàng)目上線

    本文主要介紹了centos+nginx+uwsgi部署django項(xiàng)目上線,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評(píng)論