ChatGLM2-6B 部署
我這次采用的是本地部署,機器是 macbook pro M1 64G
進入你的系統(tǒng)“終端”
# 鍵盤:command + 空格鍵
# 搜索“終端”,點擊“打開”,進入“終端”界面

下載源碼
# 在終端里面,輸入命令:
git clone <https://Github.com/THUDM/ChatGLM2-6B.git>
# 系統(tǒng)這時會自動下載源代碼,如果下載不成功,需要自己到Github去手動下載文件
# 地址:<https://github.com/THUDM/ChatGLM2-6B>
安裝依賴
# 下載完成后,依次在終端內(nèi)運行如下命令:
1、cd /xxx/xxxx/ChatGLM2-6
# 進入模型所在的文件夾
2、pip3 install -r requirements.txt
# 運行依賴文件的安裝
# 其中 transformers 庫版本推薦為 4.30.2,torch 推薦使用 2.0 及以上的版本,以獲得最佳的推理性能pip install -r requirements.txt
下載模型
# 推薦從[這里](<https://cloud.tsinghua.edu.cn/d/674208019e314311ab5c/>)手動下載模型參數(shù)文件,并將下載的文件替換到本地的 chatglm2-6b 目錄下。
參數(shù)調(diào)整
# 因為前面改了模型默認下載地址,所以這里需要改下路徑參數(shù)
# 找到模型文件夾中的 web_demo.py 文件,并用文本編輯形式打開
# 找到以下代碼,并將里面的“xxx/xxxxx//chatglm2-6b”改成自己本地的文件夾路徑
# 不知道如何查找Mac文件夾路徑的,看[這里](<https://www.google.com/search?q=mac%E6%96%87%E4%BB%B6%E5%A4%B9%E8%B7%AF%E5%BE%84&oq=mac%E6%96%87%E4%BB%B6%E5%A4%B9%E8%B7%AF%E5%BE%84&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIHCAEQABiABNIBDTc3OTAwMTQ0ajBqMTWoAgCwAgA&sourceid=chrome&ie=UTF-8>)
tokenizer = AutoTokenizer.from_pretrAIned("/xxx/xxxxx/chatglm2-6b", tRust_remote_code=True)
model = AutoModel.from_pretrained("/xxx/xxxxx//chatglm2-6b", trust_remote_code=True).cuda()
# 如果想要本地訪問,需要修改此處最后的“.cuda()”為“.to('mps')”
model = AutoModel.from_pretrained("/xxx/xxxxx//chatglm2-6b", trust_remote_code=True).to('mps')
Web 模式啟動
# 以上順利完成后,在終端輸入命令:
Python/ target=_blank class=infotextkey>Python3 web_demo.py
你會看到以下界面,這也代表你的ChatGLM2 順利完成了本地部署。

LangChain + ChatGLM2-6B 構(gòu)建知識庫
項目部署
下載源碼
# 同樣的方法,進入“終端”,下載LangChain-ChatGLM 項目的源碼
git clone <https://github.com/chatchat-space/langchain-ChatGLM.git>
# 系統(tǒng)這時會自動下載源代碼,如果下載不成功,需要自己到Github去手動下載文件
# 地址:<https://github.com/chatchat-space/langchain-ChatGLM>
安裝依賴
1、cd /xxx/xxxx/langchain-ChatGLM
# 進入模型所在的文件夾
2、pip3 install -r requirements.txt
# 運行依賴文件的安裝
# 安裝的過程應該會有很多問題,我們放在最后的模塊來講,如果迫不及待,也可以跳到最后看解決方案
下載向量模型
# 下載 Embedding 模型text2vec-large-chinese,依然推薦手動到主頁下載
# 地址:<https://huggingface.co/GanymedeNil/text2vec-large-chinese/tree/main>
# 到這里,你本地應該有三個文件夾的內(nèi)容,分別是:“ChatGLM2模型文件夾”、“LangChain-ChatGLM文件夾”、“text2vec模型文件夾”,如果不是,請回頭看看漏了哪一步
參數(shù)調(diào)整
# 模型下載完成后,請在LangChain-ChatGLM文件夾里面,找到“configs/model_config.py”文件,對里面的embedding_model_dict和llm_model_dict參數(shù)進行修改。主要修改的是文件地址“xxx”的項目為本地的模型文件夾地址
embedding_model_dict = {
"ernie-tiny": "nghuyong/ernie-3.0-nano-zh",
"ernie-base": "nghuyong/ernie-3.0-base-zh",
"text2vec-base": "shibing624/text2vec-base-chinese",
"text2vec": "/xxx/xxxx/text2vec",
"m3e-small": "moka-ai/m3e-small",
"m3e-base": "moka-ai/m3e-base",
}
llm_model_dict = {
...
"chatglm2-6b": {
"name": "chatglm2-6b",
"pretrained_model_name": "/xxx/xxxx/chatglm2-6b",
"local_model_path": None,
"provides": "ChatGLM" },
...
}
# LLM 名稱改成 chatglm2-6bLLM_MODEL = "chatglm2-6b"
項目啟動
Web 模式啟動
# 進入LangChain-ChatGLM 文件夾
cd /xxx/xxxx/langchain-ChatGLM
# 啟動項目
python3 webui.py
# 如果沒有自己打開,可以找到終端代碼塊里面的web地址:<http://0.0.0.0:7860>,復制到瀏覽器中打開
看到以下界面,這也代表你的LangChain-ChatGLM順利完成了本地部署,可以開始進階的玩耍啦

遇到的問題匯總 & 解決方案
# 對,哪有那么順利,過程中,也是遇到了很多挑戰(zhàn)的。
安裝依賴文件出錯
# 在安裝“requirements.txt” 文件的時候,經(jīng)常出現(xiàn)卡住的情況
# 解決方案1:看到卡住的模塊,就手動安裝,通過以下命令
1、pip3 install <模塊名稱> 或 pip3 install --upgrade <模塊名稱>
# 解決方案2:修改“requirements.txt” 文件里面的文件,先“注釋”掉卡住的文件,后續(xù)再單獨安裝,可以通過網(wǎng)絡搜索找到無法安裝的解決方案
2、用文本編輯模式打開“requirements.txt”,然后在卡住的項目前面加“#“號
# 當安裝過程中出現(xiàn)長時間卡頓,或者嚴重的錯誤時,可以使用以下命令終止當前運行
Ctrl + C 組合鍵
導入本地知識庫后,無法使用
# 安裝完成后,導入文件,使用個人知識庫時提示: File "
/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/langchain/vectorstores/faiss.py", line 268, in
similarity_search_with_score docs =
self.similarity_search_with_score_by_vector( TypeError:
MyFAISS.similarity_search_with_score_by_vector() got an unexpected keyword argument 'filter'
# 解決方案1,通過上面的文件路徑,找到問題的代碼函數(shù),將對應的“filter” 注釋掉。
# 解決方案2,找到官方的Gibhub:
https://github.com/chatchat-space/langchain-ChatGLM/issues,在上面查看是否有同類型的問題被提出過,找到官方或社區(qū)的答案。上面這里的問題,我是自己解決了之后,才發(fā)現(xiàn)官方已經(jīng)解答過這個問題了。