LangChain + ChatGLM-6B / ChatGLM2-6B 新手踩坑指南!

LangChain-ChatGLM-6B基本簡(jiǎn)介:
項(xiàng)目資源來源鏈接:
基于本地知識(shí)庫的 ChatGLM 問答https://github.com/imClumsyPanda/langchain-ChatGLM
項(xiàng)目原理:
加載文件 -> 讀取文本 -> 文本分割 -> 文本向量化 -> 問句向量化 -> 在文本向量中匹配出與問句向量最相似的top k個(gè) -> 匹配出的文本作為上下文和問題一起添加到prompt中 -> 提交給LLM生成回答。

硬件需求:
1、ChatGLM-6B 模型硬件需求

? ? ?2、Embedding 模型硬件需求
? ? 本項(xiàng)目中默認(rèn)選用的 Embedding 模型 GanymedeNil/text2vec-large-chinese 約占用顯存 3GB,也可修改為在 CPU 中運(yùn)行。
軟件需求:
? ? 本項(xiàng)目已在 Python 3.8.1 - 3.10,CUDA 11.7 環(huán)境下完成測(cè)試。已在 Windows、ARM 架構(gòu)的 macOS、Linux 系統(tǒng)中完成測(cè)試。vue前端需要node18環(huán)境。
詳見“項(xiàng)目資源來源鏈接”。
LangChain-ChatGLM-6B的開發(fā)部署:
安裝的資源鏈接:https://github.com/imClumsyPanda/langchain-ChatGLM/blob/master/docs/INSTALL.md
第一步,配置安裝環(huán)境。檢查機(jī)器是否安裝了 Python 3.8 及以上版本。(若版本低于3.8,可見“安裝的資源鏈接”使用conda安裝環(huán)境并激活)

第二步,進(jìn)行項(xiàng)目依賴包安裝。具體步驟可見“安裝的資源鏈接”。在其過程中我遇到的問題以及解決方法:
問題1、No module named 'configs'?
解決方法:同上一個(gè)問題,將configs.model_config全部改為configs2.model_config,并替換文檔代碼中所有的configs.model_config名稱,即可成功安裝。
問題2、No module named 'configs.model_config'
解決方法:經(jīng)過試錯(cuò),排除了“模型找不到該文件”或“該文件未下載到本地”的錯(cuò)誤。最終發(fā)現(xiàn)該模型先讀取了系統(tǒng)的configs,與本地的configs沖突。因此,將本地文件中所有的configs重命名為configs2并替換文檔代碼中所有的configs名稱,即可成功安裝。
第三步,執(zhí)行腳本體驗(yàn)Web UI或命令行交互。具體步驟可見“項(xiàng)目資源來源鏈接”。

1、在體驗(yàn)命令行交互遇到的問題及解決方法:
問題:在執(zhí)行cli_demo.py腳本體驗(yàn)命令行交互中,遇到了下載出錯(cuò)的問題(8個(gè)文件只能下載四個(gè))。
解決方法:找到了錯(cuò)誤在我服務(wù)器/home/sre/python/chatGPT/里,在其中加了鏡像即可下載后面的四個(gè)文件。鏡像代碼:
tokenizer = AutoTokenizer.from_pretrained(new_dir, trust_remote_code=True, mirror="tuna")?
model = AutoModel.from_pretrained(new_dir, trust_remote_code=True, mirror="tuna").half().cuda()
2、在體驗(yàn)Web交互遇到的問題及解決方法:
問題:配置好后不輸出頁面
方法:直接將自己服務(wù)器的地址加上程序輸出的URL結(jié)合,將結(jié)合后的網(wǎng)址輸入進(jìn)自己的瀏覽器即可訪問使用。

LangChain-ChatGLM2-6B的配置方法
將langchain-ChatGLM目錄下的configs2中LLM 名稱:LLM_MODEL = "chatglm-6b"中的chatglm-6b改為chatglm2-6b,即可運(yùn)行,其他運(yùn)行或修正方法同langchain-ChatGLM。

以上就是我在配置并使用LangChain-ChatGLM-6B中得到的報(bào)告,希望可以幫到大家。歡迎發(fā)私信與我共同討論更多該領(lǐng)域的知識(shí)!