【ChatGLM】在免費(fèi)云Colab傻瓜式部署可微調(diào)語(yǔ)言模型及使用體驗(yàn)


摘要
????????本專欄將分享一個(gè)針對(duì)ChatGLM語(yǔ)言模型及其微調(diào)模型部署的Colab notebook,幫助感興趣的人有機(jī)會(huì)體驗(yàn)自己定制的語(yǔ)言模型。同時(shí)也會(huì)給出初步的使用體驗(yàn),和筆者認(rèn)為該模型的價(jià)值所在。
關(guān)鍵詞:ChatGLM、語(yǔ)言模型、Colab部署、使用心得
參考:
模型作者github:https://github.com/THUDM/ChatGLM-6B
WebUI風(fēng)格模塊作者github:https://github.com/Akegarasu/ChatGLM-webui


序言
ChatGLM是由清華大學(xué)訓(xùn)練并開源,以下是作者原話:
????????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)符合人類偏好的回答。
????????不過,由于 ChatGLM-6B 的規(guī)模較小,目前已知其具有相當(dāng)多的局限性,如事實(shí)性/數(shù)學(xué)邏輯錯(cuò)誤,可能生成有害/有偏見內(nèi)容,較弱的上下文能力,自我認(rèn)知混亂,以及對(duì)英文指示生成與中文指示完全矛盾的內(nèi)容。請(qǐng)大家在使用前了解這些問題,以免產(chǎn)生誤解。

A. 正文
首先Colab需要科學(xué)上網(wǎng)

打開Colab分享連接:
https://colab.research.google.com/github/WSH032/ChatGLM-webui/blob/main/Colab_ChatGLM.ipynb
按照notebook內(nèi)的指導(dǎo)操作就行!傻瓜式操作!
(一)安裝依賴,如果準(zhǔn)備用微調(diào)模型就掛載谷歌硬盤,如果用CPU模型就按教程操作
(二)選擇一種模型使用方法:
1.秋葉方法:這個(gè)用到了[參考2]中秋葉的WebUI項(xiàng)目,這個(gè)在本地部署時(shí)候很好用。但是在Colab環(huán)境中,因?yàn)槟_本運(yùn)行環(huán)境的原因,檢測(cè)不到在Colab中運(yùn)行,需要打開gradio的Share選項(xiàng),導(dǎo)致流量要經(jīng)過gradio的服務(wù)器,使得體驗(yàn)很差。

2.WSH方法:這個(gè)是按Colab風(fēng)格來寫的,使用了自帶的ipywidget的,在Colab中兼容較好(我猜的);但因?yàn)槭俏易约簩懙模?span id="s0sssss00s" class="color-pink-03">可能會(huì)有BUG。

3.官方流式法:這個(gè)是官方倉(cāng)庫(kù)中提供的方法,也是WebUI風(fēng)格的,但是功能沒秋葉方法多,但是流量可以不經(jīng)過gradio服務(wù)器,算是在1、2之間做了個(gè)折中。(現(xiàn)在好像不能用,我懶得改現(xiàn)在,用的人多再改)
(三)設(shè)置好參數(shù),運(yùn)行代碼塊即可使用(有夠傻瓜式吧)

(二)模型選擇及參數(shù):
Colab的CPU不好,免費(fèi)用戶給的RAM也不多,性能主要受限于此(只要你能載入模型就沒什么限制了)。
如果你選擇CPU模型運(yùn)行,只能載入int4-qe模型
如果你是免費(fèi)用戶,只能載入int4和int4-qe模型;如果使用的是ptuning微調(diào)模型,只能使用4量化等級(jí)訓(xùn)練而來的模型。
如果你是Colab Pro,無(wú)限制
至于其中的推理精度,無(wú)限制隨便選。這個(gè)主要影響顯存,Colab給的顯存(15g)是足夠的。
Colab的顯存,基本對(duì)最大對(duì)話輪數(shù)無(wú)限制。

(三)使用體驗(yàn):
1、速度:
CPU推理速度極慢,3分鐘29個(gè)字,除了嘗鮮,你不會(huì)想用的。
GPU現(xiàn)在免費(fèi)用戶分到的一般是T4,網(wǎng)上說性能和1080、2060~2070差不多,實(shí)測(cè)下來只要啟動(dòng)流式聊天,你一邊看它能一邊說,速度和ChatGPT在正常流量壓力下的速度差不多。
2、邏輯、功能:
不如ChatGPT等大模型。
上下文長(zhǎng)對(duì)話能力較差,有時(shí)候莫名其妙就重復(fù)一句話。
有時(shí)候會(huì)出現(xiàn)中英文混雜
邏輯復(fù)雜度較差

(四)心得:
ChatGLM這種模型模型的意義,不在于對(duì)標(biāo)ChatGPT,而在于個(gè)人化、定制化、本地可部署。
首先作者明確說了,這個(gè)模型的參數(shù)相比大模型較少,這客觀上決定了它的邏輯復(fù)雜度肯定比不過大模型。
但是也正是基于這個(gè)特點(diǎn),他可以實(shí)現(xiàn)個(gè)人電腦本地部署,理論上6g顯存就可以部署。你要是會(huì)用API,就可以弄到手機(jī)上用。
還有一個(gè)最重要的優(yōu)點(diǎn),他可以實(shí)現(xiàn)較低門檻的本地微調(diào)。如果你去github上看其他大模型項(xiàng)目,就會(huì)發(fā)現(xiàn)大模型一旦微調(diào),動(dòng)則就是8張A100、3090起步,個(gè)人根本不可能實(shí)現(xiàn)。
我目前想到的對(duì)下游群體一大作用就是,可以通過微信與家人的聊天記錄進(jìn)行訓(xùn)練。

(五)建議
Colab版的是給你嘗鮮用的(除非你是Colab Pro)。因?yàn)镃olab每天只會(huì)分配4個(gè)小時(shí)GPU使用時(shí)間。
如果你有8g及以上的顯存,就在本地部署吧。但是注意,本地部署環(huán)境配置和依賴安裝很麻煩,我建議你用[參考2]的秋葉包。
如果你會(huì)弄API那種,并且算力足夠,你可以電腦部署自己微調(diào)的模型,手機(jī)使用
如果你沒算力,或者你不用微調(diào)模型,建議你直接去買ChatGPT的API tokens,自己跑模型電費(fèi)都不夠tokens的錢,ChatGLM最大的意義在于個(gè)人定制!

結(jié)尾
????????感謝每一位社區(qū)貢獻(xiàn)者,一起來到AI的盛夏吧
????????下一篇專欄是關(guān)于官方給出的對(duì)ChatGLM進(jìn)行ptuning微調(diào)
? ? ? ? 最后感謝你的閱讀,覺得有用不妨三連下吧
????????

by Happy_WSH