電腦小白挑戰(zhàn)本地部署ChatGLM-6B
觀前提示:這不是一個教程,只是個人的使用經(jīng)歷,遇到問題的話也許Bing AI是比我更好的解決方案
ChatGPT是去年爆火的一款語言模型,它實現(xiàn)了人類與AI的"對話"。ChatGPT是基于英文的語言環(huán)境訓(xùn)練的,我之前試玩的時候常常是用英語來進(jìn)行對話的。最近,我了解到了還有一款由清華大學(xué)參與聯(lián)合開發(fā)的對中文語言環(huán)境進(jìn)行了優(yōu)化的語言模型:ChatGLM-6B,有望解決我文案寫不出來的問題
ChatGLM-6B 是一個人工智能助手,基于清華大學(xué) KEG 實驗室與智譜 AI 于 2023 年聯(lián)合訓(xùn)練的語言模型 GLM-6B 開發(fā)而成,具有如下特點:
1. 語言理解:ChatGLM-6B 可以理解用戶的語言輸入,并從中獲取相關(guān)信息。
2. 語言生成:ChatGLM-6B 可以根據(jù)用戶的語言輸入,生成相應(yīng)的文本。
3. 上下文理解:ChatGLM-6B 可以上下文理解,即理解用戶輸入的上下文信息,從而更好地理解用戶的語言輸入。
4. 對多語言的支持:ChatGLM-6B 可以支持多種語言的輸入和輸出,包括中文、英文、西班牙語等。
5. 自動問答:ChatGLM-6B 可以根據(jù)用戶的提問,自動生成答案,并且可以不斷學(xué)習(xí)和更新知識。
綜上所述,ChatGLM-6B 是一個功能強大、易于使用的語言模型,可以為用戶提供良好的語言理解、語言生成和上下文理解等功能。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?——ChatGLM-6B

CPU:R9?7940H
顯卡:RTX 4060?8G(移動端)
內(nèi)存容量:32G
系統(tǒng)為win11

可能需要的網(wǎng)站:
https://github.com/THUDM/ChatGLM-6B (這里可以下載語言模型相關(guān)代碼的主體)
https://huggingface.co/THUDM/chatglm-6b-int4 (這里下載int4量化的模型,小顯存可以用,但也要至少6G)
https://github.com/ZhangErling/ChatGLM-6B/blob/main/deployment_windows.md (教程,后文提到的教程指的是這個,A卡可能要找額外的教程)
https://developer.nvidia.com/cuda-downloads (CUDA?Toolkit下載地址,下載時選擇合適的系統(tǒng)和版本)

要在本地部署,我首先要準(zhǔn)備一個運行環(huán)境。我了解到huggingface網(wǎng)站上的模型兼容Linux系統(tǒng)的居多,作為Windows用戶,我選擇了在WSL(Windows Subsystem for Linux)上部署。教程上用的是Linux的發(fā)行版Debian,所以我用的也是這個,這些可在Windows自帶的微軟商店上安裝。

按教程給的鏈接安裝完顯卡驅(qū)動,然后教程中的2~4步實際上都可以跳過(微軟win11上安裝的已經(jīng)是wsl2,遷移無特殊需求沒必要)。接下來以管理員權(quán)限打開Windows PowerShell,輸入wsl --user root以root用戶登錄,然后從第五步開始。鍵入vi /etc/apt/sources.list?,然后按dd將每一條刪除,然后按i再右鍵粘貼
deb?http://mirrors.aliyun.com/debian/?buster main non-free contrib
deb?http://mirrors.aliyun.com/debian/?buster-updates main non-free contrib
deb?http://mirrors.aliyun.com/debian/?buster-backports main non-free contrib
deb?http://mirrors.aliyun.com/debian-security?buster/updates main
deb-src?http://mirrors.aliyun.com/debian/?buster main non-free contrib
deb-src?http://mirrors.aliyun.com/debian/?buster-updates main non-free contrib
deb-src?http://mirrors.aliyun.com/debian/?buster-backports main non-free contrib
deb-src?http://mirrors.aliyun.com/debian-security?buster/updates main
deb?http://mirrors.163.com/debian/?buster main non-free contrib
deb?http://mirrors.163.com/debian/?buster-updates main non-free contrib
deb?http://mirrors.163.com/debian/?buster-backports main non-free contrib
deb?http://mirrors.163.com/debian-security/?buster/updates main non-free contrib
deb-src?http://mirrors.163.com/debian/?buster main non-free contrib
deb-src?http://mirrors.163.com/debian/?buster-updates main non-free contrib
deb-src?http://mirrors.163.com/debian/?buster-backports main non-free contrib
deb-src?http://mirrors.163.com/debian-security/?buster/updates main non-free contrib
以替換下載源

然后按esc,再輸入:x 然后回車,再apt update?執(zhí)行更新,后續(xù)步驟就是:
安裝apt包管理工具
apt install aptitude ?# y
安裝 python3
aptitude install python3 ?# y y
安裝 python3-pip
aptitude install python3-pip ?# y y
更新 pip
pip3 install --upgrade pip -i https://pypi.mirrors.ustc.edu.cn/simple/

后續(xù)創(chuàng)建文件夾的步驟可以直接在文件資源管理器中完成,創(chuàng)好后可以把預(yù)先下載的文件解壓后放這里

然后我們進(jìn)入目錄
/mnt/c/data1? (/mnt/c/相當(dāng)于C:/)
此時如果直接進(jìn)行后續(xù)步驟,最后結(jié)果很可能會是這樣

觀察記錄可以發(fā)現(xiàn)是缺少了cudart

為此,我們還需安裝CUDA Toolkit

先CTRL+C 終止,然后輸入aptitude install gcc 先安裝gcc,安裝好后回到data1 文件夾輸入bash cuda_12.1.1_530.30.02_linux.run(安裝文件名)執(zhí)行安裝即可,然后按照教程進(jìn)入main文件夾后安裝相關(guān)運行依賴(過程有些漫長,給點耐心)
pip3 install -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple/
安裝過程是有可能因為網(wǎng)絡(luò)問題失敗的,如果出現(xiàn)提示失敗的紅字,可以多重試幾次。如果試了太多次還是不行,可以把-i后面的地址替換為https://pypi.tuna.tsinghua.edu.cn/simple兩個網(wǎng)站都可以使用,哪個穩(wěn)定選擇哪個。
最后就可以使用web demo來體驗這款語言模型了,不過在此之前還會有漫長的差不多4GB的模型文件下載。如果下載太慢,可以嘗試先把模型下載到本地,如果不使用自動下載而使用自己下載的模型,那么我們需要修改web_demo.py中的模型目錄。
在文件管理器中用能夠打開.py文件的編輯器打開ChatGLM-6B-main文件夾里的web_demo.py文件

把這兩行中的路徑改為你下載的模型的路徑,就可以了(這里我用的是int4量化后的模型,因為顯存只有8G)
現(xiàn)在就可以跟著后續(xù)步驟運行了
進(jìn)入main文件夾的目錄,然后輸入python3 web_demo.py

模型已經(jīng)被正確裝在,而且WEB服務(wù)也已經(jīng)啟動了,我們可以用瀏覽器打開下面的URL

大功告成了,現(xiàn)在就可以和ChatGLM愉快地對話了。


今天我只是完成了一個初級的本地部署大語言模型的工作,隨后我還會結(jié)合Langchain來嘗試一下為ChatGlm接入本地知識庫,從而提高知識問答的能力。我想把ChatGlm與化學(xué)知識結(jié)合起來,應(yīng)該是很酷的。也可以解決我文案寫不出來的問題