首頁 科技週邊 人工智慧 折騰ChatGLM的幾個避坑小技巧

折騰ChatGLM的幾個避坑小技巧

May 02, 2023 pm 01:58 PM
chatglm 避坑 微調模型

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

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

折騰ChatGLM的幾個避坑小技巧

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

折騰ChatGLM的幾個避坑小技巧

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

折騰ChatGLM的幾個避坑小技巧

如果你只是想在自己的機器上測試一下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的幾個避坑小技巧

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

折騰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自帶的兼容性驅動,因此從官網上下載最新驅動並安裝一定不要省略。

#

折騰ChatGLM的幾個避坑小技巧

安裝完WIN的驅動程式後就可以直接在WSL里安裝cuda tools了,安裝完畢後,運行nvidia-smi如果能夠看到上面的介面,那麼恭喜你,你已經成功地避開了第一個坑。實際上在安裝cuda tools時候還會遇到幾個小坑。那就是你的系統中必須安裝合適版本的gcc,gcc-dev和make等編譯相關的工具,如果缺少這些元件,cuda tools的安裝會失敗。

折騰ChatGLM的幾個避坑小技巧

上面就是坑人的前期準備,實際上避開英偉達驅動這個坑,後面的安裝還是很順利的。在系統的選擇上,我還是建議選擇Debian相容的Ubuntu,新版的Ubuntu的aptitude十分智能,能夠幫你解決大量軟體的版本相容問題,實現部分軟體的自動降版本。

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

折騰ChatGLM的幾個避坑小技巧

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

折騰ChatGLM的幾個避坑小技巧

預設的web_demo.py是使用FP16的預訓練模型的,13GB多的模型肯定無法裝載到12GB現存的,因此你需要對這個程式碼做一個小小的調整。

折騰ChatGLM的幾個避坑小技巧

你可以改為quantize(4)來裝載INT4量化模型,或是改為quantize(8)來裝載INT8量化模型。這樣你的顯示卡記憶體就夠用了,而且可以支援你做各種對話了。

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

至此,你可以透過網頁與ChatGLM對話了,但這一切只是折騰的開始。只有你能夠把你的微調模型訓練出來了,那麼你的ChatGLM的入坑之旅才會真正開始。玩這種東西還是需要大量的精力和金錢的,入坑要慎重。

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

以上是折騰ChatGLM的幾個避坑小技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1669
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
如何使用AGNO框架構建多模式AI代理? 如何使用AGNO框架構建多模式AI代理? Apr 23, 2025 am 11:30 AM

在從事代理AI時,開發人員經常發現自己在速度,靈活性和資源效率之間進行權衡。我一直在探索代理AI框架,並遇到了Agno(以前是Phi-

如何在SQL中添加列? - 分析Vidhya 如何在SQL中添加列? - 分析Vidhya Apr 17, 2025 am 11:43 AM

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

超越駱駝戲:大型語言模型的4個新基準 超越駱駝戲:大型語言模型的4個新基準 Apr 14, 2025 am 11:09 AM

陷入困境的基準:駱駝案例研究 2025年4月上旬,梅塔(Meta)揭開了其Llama 4套件的模特,擁有令人印象深刻的性能指標,使他們對GPT-4O和Claude 3.5 Sonnet等競爭對手的良好定位。倫斯的中心

OpenAI以GPT-4.1的重點轉移,將編碼和成本效率優先考慮 OpenAI以GPT-4.1的重點轉移,將編碼和成本效率優先考慮 Apr 16, 2025 am 11:37 AM

該版本包括三種不同的型號,GPT-4.1,GPT-4.1 MINI和GPT-4.1 NANO,標誌著向大語言模型景觀內的特定任務優化邁進。這些模型並未立即替換諸如

多動症遊戲,健康工具和AI聊天機器人如何改變全球健康 多動症遊戲,健康工具和AI聊天機器人如何改變全球健康 Apr 14, 2025 am 11:27 AM

視頻遊戲可以緩解焦慮,建立焦點或支持多動症的孩子嗎? 隨著醫療保健在全球範圍內挑戰,尤其是在青年中的挑戰,創新者正在轉向一種不太可能的工具:視頻遊戲。現在是世界上最大的娛樂印度河之一

Andrew Ng的新簡短課程 Andrew Ng的新簡短課程 Apr 15, 2025 am 11:32 AM

解鎖嵌入模型的力量:深入研究安德魯·NG的新課程 想像一個未來,機器可以完全準確地理解和回答您的問題。 這不是科幻小說;多虧了AI的進步,它已成為R

火箭發射模擬和分析使用Rocketpy -Analytics Vidhya 火箭發射模擬和分析使用Rocketpy -Analytics Vidhya Apr 19, 2025 am 11:12 AM

模擬火箭發射的火箭發射:綜合指南 本文指導您使用強大的Python庫Rocketpy模擬高功率火箭發射。 我們將介紹從定義火箭組件到分析模擬的所有內容

Google揭示了下一個2025年雲上最全面的代理策略 Google揭示了下一個2025年雲上最全面的代理策略 Apr 15, 2025 am 11:14 AM

雙子座是Google AI策略的基礎 雙子座是Google AI代理策略的基石,它利用其先進的多模式功能來處理和生成跨文本,圖像,音頻,視頻和代碼的響應。由DeepM開發

See all articles