windows部署ChatGLM-6B

安裝總結(jié):(不需要太大的壓力~~邦马,沒有使用GPU矩屁。)

  • 下載模型
  • clone項(xiàng)目chatglm.cpp
  • 轉(zhuǎn)換模型
  • 編譯-運(yùn)行

如果過程里有未知的坑,我覺得可能需要安裝下visual stidio早处,把一些涉及C捷雕,C++什么的東西安裝好椒丧,應(yīng)該就可以啦。本次安裝非区,大概需要半個(gè)小時(shí)瓜挽,下載文件需要十分鐘+,配置運(yùn)行征绸,大概二十分鐘久橙。

背景

今年一個(gè)比較熱鬧的話題就是大模型,最近因?yàn)橐恍┰蚬艿。残枰_始接觸一下淆衷,所以決定在windows上部署一個(gè)模型,然后去探索在工作中的使用渤弛。

chatglm-6b介紹

ChatGLM-6B 是一個(gè)開源的祝拯、支持中英雙語(yǔ)的對(duì)話語(yǔ)言模型,基于 General Language Model (GLM) 架構(gòu)她肯,具有 62 億參數(shù)佳头。結(jié)合模型量化技術(shù),用戶可以在消費(fèi)級(jí)的顯卡上進(jìn)行本地部署(INT4 量化級(jí)別下最低只需 6GB 顯存)晴氨。 ChatGLM-6B 使用了和 ChatGPT 相似的技術(shù)康嘉,針對(duì)中文問答和對(duì)話進(jìn)行了優(yōu)化。經(jīng)過約 1T 標(biāo)識(shí)符的中英雙語(yǔ)訓(xùn)練籽前,輔以監(jiān)督微調(diào)亭珍、反饋?zhàn)灾⑷祟惙答亸?qiáng)化學(xué)習(xí)等技術(shù)的加持枝哄,62 億參數(shù)的 ChatGLM-6B 已經(jīng)能生成相當(dāng)符合人類偏好的回答肄梨,更多信息請(qǐng)參考我們的博客。歡迎通過 chatglm.cn 體驗(yàn)更大規(guī)模的 ChatGLM 模型挠锥。

為了方便下游開發(fā)者針對(duì)自己的應(yīng)用場(chǎng)景定制模型众羡,我們同時(shí)實(shí)現(xiàn)了基于 P-Tuning v2 的高效參數(shù)微調(diào)方法 (使用指南) ,INT4 量化級(jí)別下最低只需 7GB 顯存即可啟動(dòng)微調(diào)蓖租。
ChatGLM-6B 權(quán)重對(duì)學(xué)術(shù)研究完全開放纱控,在填寫問卷進(jìn)行登記后亦允許免費(fèi)商業(yè)使用。

ChatGLM-6B 開源模型旨在與開源社區(qū)一起推動(dòng)大模型技術(shù)發(fā)展菜秦,懇請(qǐng)開發(fā)者和大家遵守開源協(xié)議甜害,勿將開源模型和代碼及基于開源項(xiàng)目產(chǎn)生的衍生物用于任何可能給國(guó)家和社會(huì)帶來危害的用途以及用于任何未經(jīng)過安全評(píng)估和備案的服務(wù)。目前球昨,本項(xiàng)目團(tuán)隊(duì)未基于 ChatGLM-6B 開發(fā)任何應(yīng)用尔店,包括網(wǎng)頁(yè)端、安卓、蘋果 iOS 及 Windows App 等應(yīng)用嚣州。
盡管模型在訓(xùn)練的各個(gè)階段都盡力確保數(shù)據(jù)的合規(guī)性和準(zhǔn)確性鲫售,但由于 ChatGLM-6B 模型規(guī)模較小,且模型受概率隨機(jī)性因素影響该肴,無(wú)法保證輸出內(nèi)容的準(zhǔn)確性情竹,且模型易被誤導(dǎo)(詳見局限性)。本項(xiàng)目不承擔(dān)開源模型和代碼導(dǎo)致的數(shù)據(jù)安全匀哄、輿情風(fēng)險(xiǎn)或發(fā)生任何模型被誤導(dǎo)秦效、濫用、傳播涎嚼、不當(dāng)利用而產(chǎn)生的風(fēng)險(xiǎn)和責(zé)任阱州。

部署

由于沒有高性能的服務(wù)器,所以只好拿我的臺(tái)式機(jī)折騰法梯。雖然有顯卡苔货,但是不知道為什么,配置了很久也沒有配好立哑。所以只好選擇一些其他方案夜惭,充分利用我的CPU~

參考的項(xiàng)目:

1.下載模型

由于網(wǎng)絡(luò)不太好,沒法子從Hugging Face Hub 下載模型铛绰。所以按照ChatGLM-6B說的诈茧,分開兩步走:

  1. 下載模型實(shí)現(xiàn):

    GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm-6b
    
  2. 手動(dòng)下載模型參數(shù)文件,然后替換了上面的文件至耻。(清華網(wǎng)盤~)

    https://cloud.tsinghua.edu.cn/d/fb9f16d6dc8f482596c2/

2. 下載chatglm.cpp項(xiàng)目

項(xiàng)目的介紹:

Highlights:

  • Pure C++ implementation based on ggml, working in the same way as llama.cpp.
  • Accelerated memory-efficient CPU inference with int4/int8 quantization, optimized KV cache and parallel computing.
  • Streaming generation with typewriter effect.
  • Python binding, web demo, api servers and more possibilities.

Support Matrix:

  • Hardwares: x86/arm CPU, NVIDIA GPU, Apple Silicon GPU
  • Platforms: Linux, MacOS, Windows
  • Models: ChatGLM-6B, ChatGLM2-6B, CodeGeeX2, Baichuan-13B, Baichuan2-13B
  1. 下載
git clone --recursive https://github.com/li-plus/chatglm.cpp.git && cd chatglm.cpp
  1. 轉(zhuǎn)換模型
python3 chatglm_cpp/convert.py -i THUDM/chatglm-6b -t q4_0 -o chatglm-ggml.bin

這里需要安裝一些包,但是比較奇怪的是镊叁,沒找到具體需要哪些~不過因?yàn)榘惭b了Anaconda尘颓,基本的包都有了,然后沒有怎么報(bào)錯(cuò)晦譬,只是提示缺失一個(gè)tabulate包疤苹。

em,這里還是列了下虛擬環(huán)境的包敛腌。(python3.11.3)

protobuf
transformers==4.27.1
cpm_kernels
torch>=1.10
gradio
mdtex2html
sentencepiece
accelerate
  1. 編譯執(zhí)行

    windows的話卧土,需要安裝cmake,https://cmake.org/files/v3.22/

cmake -B build
cmake --build build -j --config Release

使用交互模式運(yùn)行:

.\build\bin\Release\main.exe -m chatglm-ggml.bin -i

測(cè)試下:

    ________          __  ________    __  ___
   / ____/ /_  ____ _/ /_/ ____/ /   /  |/  /_________  ____
  / /   / __ \/ __ `/ __/ / __/ /   / /|_/ // ___/ __ \/ __ \
 / /___/ / / / /_/ / /_/ /_/ / /___/ /  / // /__/ /_/ / /_/ /
 \____/_/ /_/\__,_/\__/\____/_____/_/  /_(_)___/ .___/ .___/
                                              /_/   /_/

Welcome to ChatGLM.cpp! Ask whatever you want. Type 'clear' to clear context. Type 'stop' to exit.

Prompt  > 中國(guó)的首都在哪里
ChatGLM > 中國(guó)的首都是北京。
Prompt  > 如何使用python編寫腳本像樊,實(shí)現(xiàn)對(duì)sqlite數(shù)據(jù)庫(kù)的查詢操作
ChatGLM > 可以使用以下代碼段實(shí)現(xiàn)對(duì)SQLite數(shù)據(jù)庫(kù)的查詢操作:

```python
import sqlite3

# 連接到數(shù)據(jù)庫(kù)
conn = sqlite3.connect('database.db')

# 執(zhí)行查詢
cursor = conn.cursor()
cursor.execute('SELECT * FROM table_name')

# 輸出結(jié)果
for row in cursor:
    print(row)

# 關(guān)閉數(shù)據(jù)庫(kù)連接
conn.close()

在上面的代碼中尤莺,需要將 database.db 替換為您實(shí)際的數(shù)據(jù)庫(kù)文件名,table_name 替換為您要查詢的表的名稱生棍。然后颤霎,執(zhí)行以下代碼即可查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù):

# 查詢數(shù)據(jù)
for row in cursor:
    print(row)

如果需要進(jìn)行其他類型的操作,例如插入數(shù)據(jù)、刪除數(shù)據(jù)等友酱,可以修改上面的代碼晴音,并按照相應(yīng)的操作來進(jìn)行。同時(shí)缔杉,也需要注意在操作數(shù)據(jù)庫(kù)時(shí)锤躁,需要進(jìn)行 conn.close() 的操作,以釋放數(shù)據(jù)庫(kù)資源或详。
Prompt >



或者也可以這樣:

```toml
./build/bin/main -m chatglm-ggml.bin -p 你好
# 你好??系羞!我是人工智能助手 ChatGLM-6B,很高興見到你鸭叙,歡迎問我任何問題觉啊。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市沈贝,隨后出現(xiàn)的幾起案子杠人,更是在濱河造成了極大的恐慌,老刑警劉巖宋下,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嗡善,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡学歧,警方通過查閱死者的電腦和手機(jī)罩引,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來枝笨,“玉大人袁铐,你說我怎么就攤上這事『峄耄” “怎么了剔桨?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)徙融。 經(jīng)常有香客問我洒缀,道長(zhǎng),這世上最難降的妖魔是什么欺冀? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任树绩,我火速辦了婚禮,結(jié)果婚禮上隐轩,老公的妹妹穿的比我還像新娘饺饭。我一直安慰自己,他們只是感情好职车,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布砰奕。 她就那樣靜靜地躺著蛛芥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪军援。 梳的紋絲不亂的頭發(fā)上仅淑,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音胸哥,去河邊找鬼涯竟。 笑死,一個(gè)胖子當(dāng)著我的面吹牛空厌,可吹牛的內(nèi)容都是我干的庐船。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼嘲更,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼筐钟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起赋朦,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤篓冲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后宠哄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壹将,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年毛嫉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了诽俯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡承粤,死狀恐怖暴区,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辛臊,我是刑警寧澤仙粱,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站浪讳,受9級(jí)特大地震影響缰盏,放射性物質(zhì)發(fā)生泄漏涌萤。R本人自食惡果不足惜淹遵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望负溪。 院中可真熱鬧透揣,春花似錦、人聲如沸川抡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至侍咱,卻和暖如春耐床,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背楔脯。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工撩轰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人昧廷。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓堪嫂,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親木柬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子皆串,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容