欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

macbook安裝環(huán)境chatglm2-6b的詳細過程

 更新時間:2023年07月11日 09:08:50   作者:淡淡的id  
這篇文章主要介紹了macbook安裝chatglm2-6b的過程詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1、前言

chatglm安裝環(huán)境還是比較簡單的,比起Stable diffusion安裝輕松不少。  

安裝分兩部分,一是github的源碼,二是Hugging Face上的模型代碼;安裝過程跟著官方的readme文檔就能順利安裝。以下安裝內容,絕大部分是官方readme內容

note1:執(zhí)行默認你在conda環(huán)境下運行,我就不累贅了

note2:默認認為你會把里面模型路徑改為你本地的路徑

2、環(huán)境

系統(tǒng):macOS Ventura(13.4.1)
芯片:m2
內存:16G
python版本:2.10.11
python虛擬環(huán)境:anconda

3、代碼下載

note:默認各位已經安裝好git、brew軟件

3.1、下載運行模型的代碼

  逐行運行如下命令,克隆(git clone)代碼、進入克隆好的目錄、安裝代碼的python依賴

git clone https://github.com/THUDM/ChatGLM2-6B
cd ChatGLM2-6B
pip install -r requirements.txt

3.2、安裝 Git Large File Storage

  使用brew包管理軟件git lfs,其他方式可參考前面的藍色超鏈接

brew install git-lfs

輸入如下命令,驗證是否安裝成功

git lfs install

輸出Git LFS initialized.即為安裝成功

3.3、下載模型

3.3.1、下載未量化模型

  在運行模型代碼以外目錄,終端使用以下命令,會下載不包含lfs文件模型文件

git clone https://github.com/THUDM/ChatGLM2-6B
cd ChatGLM2-6B
pip install -r requirements.txt

在這里插入圖片描述

這里假定你順利克隆,不能克隆,你懂的,你可以訪問網站THUDM/chatglm2-6b克隆完之后,是不包含lfs的實體文件的。此時需要,去chatglm2-6b清華網盤下載模型文件,將文件全部下載,并覆蓋到模型下面。

3.3.2、下載int4未量化模型

  在運行模型代碼以外目錄,終端使用以下命令,會下載不包含lfs文件模型文件

GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/THUDM/chatglm2-6b-int4

  克隆完之后,是不包含lfs的實體文件的。此時需要,去chatglm2-6b-int4清華網盤下載模型文件,將文件全部下載,并覆蓋到模型下面。

4、運行模型

4.1、安裝mps

curl -O https://mac.r-project.org/openmp/openmp-14.0.6-darwin20-Release.tar.gz
sudo tar fvxz openmp-14.0.6-darwin20-Release.tar.gz -C /

以下為項目FAQ引用

參考https://mac.r-project.org/openmp/假設: gcc(clang)是14.x版本,其他版本見R-Project提供的表格此時會安裝下面幾個文件:/usr/local/lib/libomp.dylib, /usr/local/include/ompt.h, /usr/local/include/omp.h, /usr/local/include/omp-tools.h。注意:如果你之前運行ChatGLM項目失敗過,最好清一下Hugging Face的緩存,i.e. 默認下是 rm -rf ${HOME}/.cache/huggingface/modules/transformers_modules/chatglm-6b-int4。由于使用了rm命令,請明確知道自己在刪除什么。

參考Accelerated PyTorch training on Mac,命令行輸入:

python
mps_device = torch.device("mps")
x = torch.ones(1, device=mps_device)
print (x)

進入python命令行,查看輸出是否為tensor([1.], device='mps:0')確認是否支持mps,驗證完畢關閉終端或者輸入quit()退出

4.2、修改運行模型代碼

  mac只能使用本地的文件運行,所以我們用前面下載的模型路徑,進行加載。加載模型的方式有多種,但是修改方式都是統(tǒng)一的,即修改tokenizer和model變量加載代碼。未修改前:

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).cuda()

模型修改后:

tokenizer = AutoTokenizer.from_pretrained("/Users/hui/data/chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("/Users/hui/data/chatglm2-6b", trust_remote_code=True).half().to('mps')

int4模型修改后【這里增加修復報錯的兩行代碼】:

import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'
tokenizer = AutoTokenizer.from_pretrained("/Users/hui/data/chatglm2-6b-int4", trust_remote_code=True)
model = AutoModel.from_pretrained("/Users/hui/data/chatglm2-6b-int4", trust_remote_code=True).float()

4.3、加載模型的demo種類

  按照readme描述,加載demo的方式有cli_demo.py、web_demo.py、web_demo2.py、api.py、openai_api.py這些方式運行模型并交互,你認真看項目會發(fā)現(xiàn),我列的文件名差不多就項目的全部文件了。  這里還未調通前,建議使用cli_demo.py來測試,因為這個加載方式是最容易發(fā)現(xiàn)錯誤的模式,調通后,建議改web_demo2.py來玩耍。加載模型項目的文件下,命令行運行:

python cli_demo.py

在這里插入圖片描述

  在用戶行,輸入問題,耐心等待輸出的ChatGLM行輸出答案,同時觀察到系統(tǒng)是基本都是使用虛擬內存進行運行的,此時你的系統(tǒng)會很卡。這里是使用half方法情況下的內存情況,如果把half方法去掉,那么虛擬內存會到16G,輸入問題的時候,你的8個cpu也會都使用率過半。

5、加載模型知識

  加載模型都是方式都是一樣,這里區(qū)別在于你加載模型在哪里運行,有cpu和gpu兩種方式。這里總結下文檔和網上看到一下方式。

5.1、gpu方式

  gpu方式其實就是使用cuda()方法,即加載代碼的結尾使用cuda(),使用gpu方式可以指定模型加載的進度,默認模型不指定的時候是16位浮點,可以在cuda()前面再用有參quantize()方法指定為8位或者4位。note:cuda肯定要求你是英偉達顯卡啦,英偉達的技術例:

# 按需修改,目前只支持 4/8 bit 量化
model = AutoModel.from_pretrained("THUDM/chatglm2-6b", trust_remote_code=True).quantize(8).cuda()

5.2、cpu方式

  cpu方式使用float()和to(‘mps’)進行指定,就不能使用quantize()指定了,會報錯,可以使用half()進行指定,我也是嘗鮮,所以不知道這個方法的用法,但是從表現(xiàn)來看,節(jié)省了一半以上的內存,但是只在to(‘mps’)上生效,float()加上沒有效果,還是使用了19G虛擬內存。例:

model = AutoModel.from_pretrained("/Users/hui/data/chatglm2-6b", trust_remote_code=True).half().to('mps')

5.3、使用壓縮向量模型

  官方提供4精度模型(即THUDM/chatglm2-6b-int4)運行,使用起來,的確快了不少,但是總體上來也是龜速。這個只是換了個小模型,同樣可以用gpu和cpu加載起來

6、遇到的報錯

報錯1:

AssertionError: Torch not compiled with CUDA enabled

這事因為用了cuda()方法加載模型,報錯意思是你的torch不是適配cuda編譯的,但也不用更換,因為我的是mac,只有m2芯片,沒有gpu,故不用折騰,使用上面提到的cpu方式加載即可

報錯2:

OMP: Error #15: Initializing libomp.dylib, but found libomp.dylib already initialized.

這種情況是在int4模型加載才會出現(xiàn),出現(xiàn)問題原因是系統(tǒng)中存在多個mps的環(huán)境。解決方式是加載時設置環(huán)境變量,加載前,加入如下代碼:

import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'

看意思就是允許多個動態(tài)庫加載

報錯3

Failed to load cpm_kernels:Unknown platform: darwin

THUDM/ChatGLM-6B/issues/6這里從issue回復看,沒用到相關功能,不用理會即可。實際只有int4模型才會提示,而且也不影響使用。

報錯4:

cannot import name 'COMMON_SAFE_ASCII_CHARACTERS' from 'charset_normalizer.constant'

是因為缺失了部分東西,重新安裝即可。運行如下命令安裝:

pip install chardet

報錯5:

AttributeError: 'NoneType' object has no attribute 'int4WeightExtractionHalf'

這個報錯int4模型下才會出現(xiàn),解決方式就是改為float()方式運行解決

參考博客:

1、MAC安裝ChatGLM-6B報錯:Unknown platform: darwin

2、Python—OMP: Error #15: Initializing libomp.dylib, but found libiomp5.dylib already initialized.

3、cannot import name ‘COMMON_SAFE_ASCII_CHARACTERS‘ from ‘charset_normalizer.constant‘ ,已解決!

到此這篇關于macbook安裝chatglm2-6b的文章就介紹到這了,更多相關macbook安裝chatglm2-6b內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論