自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

折騰ChatGLM的幾個避坑小技巧

人工智能
你可以通過網(wǎng)頁與ChatGLM對話了,不過這一切只是折騰的開始。只有你能夠把你的微調(diào)模型訓(xùn)練出來了,那么你的ChatGLM的入坑之旅才會真正開始。玩這種東西還是需要大量的精力和金錢的,入坑要慎重。

我昨天說從數(shù)據(jù)技術(shù)嘉年華回來后就部署了一套ChatGLM,準備研究利用大語言模型訓(xùn)練數(shù)據(jù)庫運維知識庫,很多朋友不大相信,說老白你都這把年紀了,還能自己去折騰這些東西?為了打消這些朋友的疑慮,我今天把這兩天折騰ChatGLM的過程分享給大家,也為有興趣折騰一下ChatGLM的朋友講一下避坑的一些技巧。

ChatGLM-6B是基于清華大學 KEG 實驗室與智譜 AI 于2023年聯(lián)合訓(xùn)練的語言模型 GLM 開發(fā)而成,是一個大型的語言模型,其針對用戶的問題和要求提供適當?shù)拇饛?fù)和支持。上面的回答是ChatGLM自己回答的,GLM-6B是一個開源的62億參數(shù)的預(yù)訓(xùn)練模型,其特點是可以在比較小的硬件環(huán)境下本地運行。這一特性可以讓基于大語言模型的應(yīng)用可以走進千家萬戶。KEG實驗室的目的是要讓更大的GLM-130B模型(1300億參數(shù),與GPT-3.5相當)能夠在一個8路RTX 3090的低端環(huán)境中完成訓(xùn)練。

圖片

如果這個目標真的能實現(xiàn),那么對想基于大語言模型做一些應(yīng)用的人來說絕對是一個福音。目前的ChatGLP-6B的FP16模型大約13G多一點,INT-4量化模型不到4GB,完全可以在一塊6GB顯存的RTX 3060TI上運行。

圖片

在部署前我不太了解這些情況,因此買了一塊不上不下的12GB的RTX 3060,于是完成安裝部署后仍然無法運行FP16的模型。早知道在自己家里做測試驗證,直接買塊價格更便宜的3060TI就可以了。而如果要運行無損的FP16模型,就必須上24GB顯存的3090了。

圖片

如果你僅僅是想在自己的機器上測試一下ChatGLP-6B的能力,那么你可能不需要直接去下載THUDM/ChatGLM-6B模型,在huggingface上有一些打包好的量化模型可以下載。模型下載速度很慢,你可以直接下載int4的量化模型。

我這次安裝是在一臺I7 8核的PC機上完成的,顯卡為12G顯存的RTX 3060,因為這臺電腦是我的工作電腦,因此我把ChatGLM安裝在了WSL子系統(tǒng)上。在WINDOWS WSL 子系統(tǒng)上安裝ChatGLM比直接在LINUX環(huán)境中安裝要復(fù)雜一些。其中最大的坑是顯卡驅(qū)動的安裝。直接在Linux上部署ChatGLM的時候,需要直接安裝NVIDIA的驅(qū)動程序,通過modprobe來激活網(wǎng)卡驅(qū)動就可以了。而在WSL上安裝則大有不同。

圖片

ChatGLM可以在github上下載,在網(wǎng)站上也有一些簡單的文檔,甚至包含一個在WINDOWS WSL上部署ChatGLM的文檔。只不過如果你是這方面的小白,完全按照這個文檔去部署,會遇到無數(shù)的坑。

圖片

Requriements.txt文檔里列出了ChatGLM使用的主要開源組件的清單與版本號,其核心是transformers,需要版本4.27.1,實際上要求沒有這么嚴格,略低一點也沒太大問題,不過安全起見還是用相同的版本為好。Icetk是做Token處理的,cpm_kernels是中文處理模型與cuda的核心調(diào)用,protobuf是結(jié)構(gòu)化數(shù)據(jù)存儲的。Gradio是用于利用Python快速生成AI應(yīng)用的框架。Torch就不用我多做介紹了。

ChatGLM可以在沒有GPU的環(huán)境中使用,利用CPU和32GB的物理內(nèi)存來運行,不過運行速度很慢,僅僅能夠用來做個演示驗證而已。要想玩ChatGLM最好還是配備一塊GPU。

在WSL上安裝ChatGLM最大的坑是顯卡驅(qū)動,在Git上ChatGLM的文檔十分不友好,對于不太了解這個項目或者沒有做過此類部署的人來說,文檔實在太坑。實際上軟件部署并不麻煩,而顯卡驅(qū)動就十分有技巧性。

因為是在WSL subsystem上部署,因此LINUX只是一個仿真系統(tǒng),并不是完整的LINUX,因此英偉達的顯卡驅(qū)動只需要在WINDOWS上安裝,不需要在WSL里激活。不過在WSL的LINUX虛擬環(huán)境中還是需要安裝CUDA TOOLS。WINDOWS上的英偉達驅(qū)動一定要安裝官網(wǎng)上的最新驅(qū)動,而不能使用WIN10/11自帶的兼容性驅(qū)動,因此從官網(wǎng)上下載最新驅(qū)動并安裝一定不要省略。

圖片

安裝完WIN的驅(qū)動后就可以直接在WSL里安裝cuda tools了,安裝完畢后,運行nvidia-smi如果能夠看到上面的界面,那么恭喜你,你已經(jīng)成功地避開了第一個坑。實際上在安裝cuda tools時候還會遇到幾個小坑。那就是你的系統(tǒng)中必須安裝合適版本的gcc,gcc-dev和make等編譯相關(guān)的工具,如果缺少這些組件,cuda tools的安裝會失敗。

圖片

上面就是坑人的前期準備,實際上避開英偉達驅(qū)動這個坑,后面的安裝還是很順利的。在系統(tǒng)的選擇上,我還是建議選擇Debian兼容的Ubuntu,新版的Ubuntu的aptitude十分智能,能夠幫你解決大量軟件的版本兼容問題,實現(xiàn)部分軟件的自動降版本。

下面的安裝過程完全按照安裝指南就可以順利完成了,要注意的是替換/etc/apt/sources.list里面的安裝源的工作最好按照指南完成,一方面安裝速度會快很多,另外一方面也避免出現(xiàn)軟件版本兼容性的問題。當然不替換也不一定會影響后面的安裝過程。

圖片

如果你順利地通過了前面的各道關(guān)卡,那么你就進入到了最后一步,啟動web_demo了。執(zhí)行python3 web_demo.py可以啟動一個WEB對話的例子。這時候如果你是個窮人,只有一張12GB顯存的3060,那么你就一定會看到上面的報錯了,哪怕你把PYTORCH_CUDA_ALLOC_CONF設(shè)置為最小的21,也無法避開這個報錯。這時候你就不能偷懶了,必須簡單地改寫一下python腳本。

圖片

默認的web_demo.py是使用FP16的預(yù)訓(xùn)練模型的,13GB多的模型肯定無法裝載到12GB現(xiàn)存里的,因此你需要對這個代碼做一個小的調(diào)整。

圖片

你可以改為quantize(4)來裝載INT4量化模型,或者改為quantize(8)來裝載INT8量化模型。這樣你的顯卡內(nèi)存就夠用了,而且可以支持你做各種對話了。

要注意的是,web_demo.py啟動后,模型的下載工作才真正開始,因此要下載13GB的模型,需要相當長的時間,你可以把這項工作放到半夜做,或者你直接用迅雷等下載工具預(yù)先從hugging face上下載模型。如果你對模型一無所知,不太會安裝下載的模型,你也可以修改代碼中的模型名稱,THUDM/chatglm-6b-int4,直接從網(wǎng)上下載只有不到4GB的INT4量化模型,這樣會快很多,反正你的破顯卡也跑不起FP16的模型。

至此,你可以通過網(wǎng)頁與ChatGLM對話了,不過這一切只是折騰的開始。只有你能夠把你的微調(diào)模型訓(xùn)練出來了,那么你的ChatGLM的入坑之旅才會真正開始。玩這種東西還是需要大量的精力和金錢的,入坑要慎重。

最后我還是十分感謝清華大學KEG實驗室的朋友,他們的工作讓更多的人可以低成本地使用大語言模型。

責任編輯:武曉燕 來源: 白鱔的洞穴
相關(guān)推薦

2015-02-04 10:32:57

Objective-CSwift

2011-01-19 09:07:20

Thunderbird

2022-11-16 09:04:36

SQL查詢SELECT

2016-12-28 13:19:08

Android開發(fā)坑和小技巧

2018-03-26 20:00:32

深度學習

2020-06-19 11:20:17

開發(fā)避坑支付寶

2022-08-18 10:01:35

Jmeter技巧

2022-06-07 23:28:05

線程安全后端

2011-06-13 17:36:43

外鏈

2011-07-05 14:59:17

java

2009-06-17 15:38:57

java軟件安裝

2022-03-21 21:05:40

TypeScript語言API

2018-11-13 15:50:41

干貨Java源碼

2018-01-20 20:46:33

2024-04-24 13:45:00

2024-04-03 12:30:00

C++開發(fā)

2020-06-12 11:03:22

Python開發(fā)工具

2021-02-26 00:46:11

CIO數(shù)據(jù)決策數(shù)字化轉(zhuǎn)型

2022-04-27 20:52:48

JSChrome元素

2020-12-16 10:00:59

Serverless數(shù)字化云原生
點贊
收藏

51CTO技術(shù)棧公眾號