0 寫在前面
我們首先來看一下ChatGLM2-6B
模型的requirements
:
protobuf
transformers==4.30.2
cpm_kernels
torch>=2.0
gradio
mdtex2html
sentencepiece
accelerate
sse-starlette
streamlit>=1.24.0
可以看到,要求torch>=2.0
,這就產(chǎn)生了一個問題:torch
與cuda
版本的匹配問題。本地機器中CUDA=10.0
,于是在費了半天時間配置好ChatGLM2-6B
所需環(huán)境,從github
和huggingface
下載好了ChatGLM2-6B
模型,但是在run
的過程中報錯Torch not compiled with CUDA enabled
,于是不得不卸載并重新安裝CUDA
。因此提醒各位看官,在配置前,請一定檢查torch和cuda版本是否匹配**。torch2.0
所需的版本為cuda 11.x
,其中cuda 11.7
和cuda 11.8
都是可以的。
所以我們先從CUDA卸載與安裝說起,如果不存在cuda版本匹配問題,可以略過此步。
1 CUDA卸載與安裝
1.1 cuda版本查看
查看本機所支持的最高版本:cmd
->nvidia-smi
,其中紅色框中的是本機支持的最高版本的cuda
查看本機當前版本:cmd
->nvcc --version
,可以看到,當前版本為cuda_11.8
(這是升級更新以后的結(jié)果)
1.2 cuda卸載
用windows的控制面板進行卸載,搜索cuda(右上角),把和cuda相關(guān)的都卸載掉,注意只卸載cuda
相關(guān)程序,NVIDIA
相關(guān)的驅(qū)動等,如果拿不準,建議不要動,維持原狀。
1.3 cuda安裝:
cuda
官網(wǎng)下載地址:https://developer.nvidia.com/cuda-downloads
這里我選擇11
->exe(local)
,如果想要查看下載所有歷史版本,可以點擊Archive of Previous CUDA Releases
以管理員身份運行cuda_11.8.0_522.06_windows.exe
,過程中可以選擇自定義安裝
,由于我只卸載了cuda
,因此也只安裝cuda
,其他的幾個選項勾選掉了。安裝路徑為C:\Program Files\NVIDIA GPU Computing Toolkit
安裝過程大約10分鐘左右,中途出現(xiàn)了以下問題,原因是安裝過程中需要在系統(tǒng)環(huán)境變量path
變量中寫入以下路徑,但由于我的path
變量超限,寫不進去,于是安裝程序提示讓在安裝完成后手動在path
變量中寫入這兩個路徑。
由此引發(fā)另一個問題:path
變量超限問題,關(guān)于這個問題,網(wǎng)上有說修改注冊表的,有說直接在注冊表中的path
中寫入路徑的,最后采用的是這個方法,親測有效。
環(huán)境變量問題解決掉后,重啟電腦,打開cmd
測試一下,如果cmd
->nvidia-smi
和cmd
->nvidia-smi
可用并且顯示相關(guān)信息,說明cuda
升級更新成功!
2 ChatGLM2-6B下載
B站有一個官網(wǎng)的教程可參考:視頻教程
從github
上把項目拖下來,然后在項目所在路徑下面,創(chuàng)建虛擬環(huán)境venv
,在該環(huán)境下安裝項目所需的依賴requirements.txt
,這兩步怎么做,可以參考我以前的教程Anaconda3安裝配置/創(chuàng)建刪除虛擬環(huán)境/在特定虛擬環(huán)境下安裝庫,以及這里
值得注意的是:torch的安裝
,建議用官網(wǎng)給的命令:https://pytorch.org/get-started/pytorch-2.0/#faqs,以避免不必要的麻煩。
即:pip3 install numpy --pre torch torchvision torchaudio --force-reinstall --index-url https://download.pytorch.org/whl/nightly/cu118
文件有2.7GB大小,下載略慢,如下圖。
項目路徑D:\Code\ChatGLM2-6B
,文件結(jié)構(gòu)如下,其中THUDM
文件夾和venv
文件夾是自己創(chuàng)建的,THUMD
用于存放從預訓練模型。
3 從Huggingface下載預訓練模型
下載預訓練模型,有3種方式:
3.1. 方式1:代碼直接調(diào)用
方式1:代碼直接調(diào)用,前提是可以(科學上網(wǎng))訪問Huggingface
3.2. 方式2:手動從Huggingface上下載
Huggingface上的項目地址:https://huggingface.co/THUDM/chatglm2-6b
Huggingface上面,項目的完整目錄如圖
3.3. 方式3:從清華云盤下載
從清華云盤將所有下面的文件下載下來,放進D:\Code\ChatGLM2-6B\THUDM\chatglm2-6b
這個目錄,THUDM\chatglm2-6b
這個目錄是自己創(chuàng)建的。
這還不夠,需要從Huggingface項目地址中,將其余的一些配置文件下載補全,一起放進D:\Code\ChatGLM2-6B\THUDM\chatglm2-6b
這個目錄。(為什么一部分從清華云盤下,一部分從huggingface下??因為內(nèi)網(wǎng)從huggingface下載的速度非常非常慢,所以幾個大的1G以上的文件從清華云盤下載了,但清華云盤上沒有給所需的配置文件如config.json
,導致模型跑不起來,所以一些小的幾個KB的配置文件從huggingface下載了,嗯…就這么回事)。
3.4 檢查目錄結(jié)構(gòu)
檢查一下自己的存放預訓練模型的文件夾結(jié)構(gòu),如下:
4 運行與測試ChatGLM2-6B
在pycharm中打開該項目,寫了一個很簡單的測試腳本Test.py
,向它提問晚上睡不著該咋辦
,運行項目后,ChatGLM2-6B給出答案,在這個過程中,加載模型的checkpoints
需要約半分鐘時間,模型推理需要約半分鐘時間才能給出答案(臺式機,一張NVIDIA GeForce RTX 2080Ti顯卡,16GB內(nèi)存)
再測試一個,向它提問:飛機是怎么裝配的
,回答如下
Chatglm2-6B的微調(diào)
5. 寫在后面
安裝過程中的bug
總結(jié)如下:文章來源:http://www.zghlxwxcb.cn/news/detail-737063.html
cannot import name 'deprecated' from 'typing_extensions'
-
cannot import name 'Doc' from 'typing_extensions'
以上兩個bug
是由于ChatGLM2-6B
項目需要typing_extensions>4.8.0
,按要求安裝即可:pip install typing_extensions==4.8
在微調(diào)過程中報錯 -
AttributeError: 'ChatGLMForConditionalGeneration' object has no attribute 'enable_input_require_grads'
,解決方案,升級transformers
pip install transformers==4.27.1
-----------------------------------------------------------------The End!---------------------------------------------------------------------------------文章來源地址http://www.zghlxwxcb.cn/news/detail-737063.html
到了這里,關(guān)于ChatGLM2-6B下載與部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!