我昨天說從資料科技嘉年華回來後就部署了一套ChatGLM,準備研究利用大語言模型訓練資料庫維運知識庫,很多朋友不大相信,說老白你都這把年紀了,還能自己去折騰這些東西?為了打消這些朋友的疑慮,我今天把這兩天折騰ChatGLM的過程分享給大家,也為有興趣折騰一下ChatGLM的朋友講一下避坑的一些技巧。
ChatGLM-6B是基於清華大學KEG 實驗室與智譜AI 於2023年聯合訓練的語言模型GLM 開發而成,是一個大型的語言模型,其針對用戶的問題和要求提供適當的答覆和支持。上面的答案是ChatGLM自己回答的,GLM-6B是一個開源的62億參數的預訓練模型,其特點是可以在比較小的硬體環境下本地運行。這項特性可以讓基於大語言模型的應用可以走進千家萬戶。 KEG實驗室的目的是要讓更大的GLM-130B模型(1300億參數,與GPT-3.5相當)能夠在一個8路RTX 3090的低階環境中完成訓練。
如果這個目標真的能實現,那麼對想基於大語言模型做一些應用的人來說絕對是個福音。目前的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子系統上。在WINDOWS WSL 子系統上安裝ChatGLM比直接在LINUX環境中安裝更複雜。其中最大的坑是顯示卡驅動的安裝。直接在Linux上部署ChatGLM的時候,需要直接安裝NVIDIA的驅動程序,透過modprobe來啟動網卡驅動就可以了。而在WSL上安裝則大有不同。
ChatGLM可以在github上下載,在網站上也有一些簡單的文檔,甚至包含一個在WINDOWS WSL上部署ChatGLM的文檔。只不過如果你是這方面的小白,完全按照這個文檔部署,會遇到無數的坑。
Requriements.txt文件裡列出了ChatGLM所使用的主要開源元件的清單與版本號,其核心是transformers,需要版本4.27. 1,實際上要求沒有這麼嚴格,略低一點也沒太大問題,不過安全起見還是用相同的版本為好。 Icetk是做Token處理的,cpm_kernels是中文處理模型與cuda的核心調用,protobuf是結構化資料儲存的。 Gradio是用來利用Python快速產生AI應用的框架。 Torch就不用我多做介紹了。
ChatGLM可以在沒有GPU的環境中使用,利用CPU和32GB的實體記憶體來運行,不過運行速度很慢,僅僅能夠用來做個演示驗證而已。想玩ChatGLM最好還是配備一塊GPU。
在WSL上安裝ChatGLM最大的坑是顯示卡驅動,在Git上ChatGLM的文檔十分不友好,對於不太了解這個項目或者沒有做過此類部署的人來說,文檔實在太坑。其實軟體部署並不麻煩,而顯示卡驅動就十分有技巧性。
因為是在WSL subsystem上部署,因此LINUX只是一個模擬系統,並不是完整的LINUX,因此英偉達的顯示卡驅動只需要在WINDOWS上安裝,不需要在WSL裡啟動。不過在WSL的LINUX虛擬環境中還是要安裝CUDA TOOLS。 WINDOWS上的英偉達驅動一定要安裝官網上的最新驅動,而不能使用WIN10/11自帶的兼容性驅動,因此從官網上下載最新驅動並安裝一定不要省略。
#安裝完WIN的驅動程式後就可以直接在WSL里安裝cuda tools了,安裝完畢後,運行nvidia-smi如果能夠看到上面的介面,那麼恭喜你,你已經成功地避開了第一個坑。實際上在安裝cuda tools時候還會遇到幾個小坑。那就是你的系統中必須安裝合適版本的gcc,gcc-dev和make等編譯相關的工具,如果缺少這些元件,cuda tools的安裝會失敗。
上面就是坑人的前期準備,實際上避開英偉達驅動這個坑,後面的安裝還是很順利的。在系統的選擇上,我還是建議選擇Debian相容的Ubuntu,新版的Ubuntu的aptitude十分智能,能夠幫你解決大量軟體的版本相容問題,實現部分軟體的自動降版本。
下面的安裝過程完全按照安裝指南就可以順利完成了,要注意的是替換/etc/apt/sources.list裡面的安裝源的工作最好按照指南完成,一方面安裝速度會快很多,另外一方面也避免軟體版本相容性的問題。當然不替換也不一定會影響後面的安裝過程。
如果你順利地通過了前面的各道關卡,那麼你就進入到了最後一步,啟動web_demo了。執行python3 web_demo.py可以啟動一個WEB對話的範例。這時候如果你是個窮人,只有一張12GB顯存的3060,那麼你就一定會看到上面的報錯了,哪怕你把PYTORCH_CUDA_ALLOC_CONF設定為最小的21,也無法避開這個報錯。這時候你就不能偷懶了,必須簡單改寫一下python腳本。
預設的web_demo.py是使用FP16的預訓練模型的,13GB多的模型肯定無法裝載到12GB現存的,因此你需要對這個程式碼做一個小小的調整。
你可以改為quantize(4)來裝載INT4量化模型,或是改為quantize(8)來裝載INT8量化模型。這樣你的顯示卡記憶體就夠用了,而且可以支援你做各種對話了。
要注意的是,web_demo.py啟動後,模型的下載工作才真正開始,因此要下載13GB的模型,需要相當長的時間,你可以把這項工作放到半夜做,或者你直接用迅雷等下載工具預先從hugging face下載模型。如果你對模型一無所知,不太會安裝下載的模型,你也可以修改程式碼中的模型名稱,THUDM/chatglm-6b-int4,直接從網路下載只有不到4GB的INT4量化模型,這樣會快很多,反正你的破顯卡也跑不起FP16的模型。
至此,你可以透過網頁與ChatGLM對話了,但這一切只是折騰的開始。只有你能夠把你的微調模型訓練出來了,那麼你的ChatGLM的入坑之旅才會真正開始。玩這種東西還是需要大量的精力和金錢的,入坑要慎重。
最後我還是十分感謝清華大學KEG實驗室的朋友,他們的工作讓更多的人可以低成本地使用大語言模型。
以上是折騰ChatGLM的幾個避坑小技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

介紹 恭喜!您經營一家成功的業務。通過您的網頁,社交媒體活動,網絡研討會,會議,免費資源和其他來源,您每天收集5000個電子郵件ID。下一個明顯的步驟是

介紹 在當今快節奏的軟件開發環境中,確保最佳應用程序性能至關重要。監視實時指標,例如響應時間,錯誤率和資源利用率可以幫助MAIN

“您有幾個用戶?”他扮演。 阿爾特曼回答說:“我認為我們上次說的是每週5億個活躍者,而且它正在迅速增長。” “你告訴我,就像在短短幾週內翻了一番,”安德森繼續說道。 “我說那個私人

介紹 Mistral發布了其第一個多模式模型,即Pixtral-12b-2409。該模型建立在Mistral的120億參數Nemo 12B之上。是什麼設置了該模型?現在可以拍攝圖像和Tex

想像一下,擁有一個由AI驅動的助手,不僅可以響應您的查詢,還可以自主收集信息,執行任務甚至處理多種類型的數據(TEXT,圖像和代碼)。聽起來有未來派?在這個a


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器