如何使用GPU云服務(wù)器自建一個簡單的類似ChatGPT、Kimi的會話機(jī)器人

如何使用GPU云服務(wù)器自建一個簡單的類似ChatGPT、Kimi的會話機(jī)器人

一、選擇云服務(wù)器

1.申請?jiān)品?wù)器

建議云服務(wù)器使用按量付費(fèi),按小時算還是非常便宜的。

硬件配置:

系統(tǒng):ubuntu,20.04

系統(tǒng)盤:150G

GPU:12核44G,1 * NVIDIA A10(32G),硬盤150G,1*NVIDIA A10(24G)

軟件版本:

由于A10的驅(qū)動,cuda均未安裝,為了省事,直接申請了另一臺,初始化完成后,打成鏡像,然后再為A10重裝就可以了,這樣最省事。當(dāng)然也可以手動安裝。

使用的V100的鏡像,初始化條件選擇如下


配置安全組,出全放開,入至少放開22和8760。

后付費(fèi)要注意:要滿足余額不低于要凍結(jié)金額。

2.GPU確認(rèn)

登錄GPU服務(wù)器后,在安裝V100的鏡像時,可以看到顯卡驅(qū)動在安裝。(早了晚了可能都會錯過這個頁面)


等待顯卡驅(qū)動安裝完成后(會有一段時間),做下顯卡確認(rèn)

nvidia-smi

用于確認(rèn)cuda版本。

安裝cuda toolkit

sudo apt install nvidia-cuda-toolkit #時間有點(diǎn)久

如上面所述,然后制作為鏡像,再導(dǎo)入到我們的A10當(dāng)中。(重裝系統(tǒng))

二、安裝并配置Python環(huán)境

1.安裝python3.10

sudo apt-get update

sudo apt-get upgrade #需等待

sudo apt install -y software-properties-common

sudo add-apt-repository ppa:deadsnakes/ppa

sudo apt -y install python3.10

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1

#驗(yàn)證安裝成功,均返回Python 3.10.13

python3.10 --version

python3 --version

#升級pip

wget https://bootstrap.pypa.io/get-pip.py

python3.10 get-pip.py

2.安裝Git和Git LFS軟件

sudo apt install -y git git-lfs python3.10-distutils

3.安裝模型所需要的Python包

在此之前,先把pip工具設(shè)置好。

看兩處pip的版本是否一致:

第一種方式:pip show pip

第二種方式:python3.10 -m pip --version

若不一樣,則:

然后修改兩個文件:sudo vim /usr/bin/pip 以及sudo vim /usr/bin/pip3,將每個文件里面的兩個版本號位置,修改為新的,最后再用pip show pip驗(yàn)證下。

#需等待,可能要不停地試,直到成功

pip install git+https://github.com/huggingface/transformers

#1.如果上面pip工具沒設(shè)置好,可能會有如下報錯:

回到上面處理吧,也可以參考:https://zhuanlan.zhihu.com/p/664770225

#2.如果報128,則看 https://zhuanlan.zhihu.com/p/648289974

下載到本地再上傳 或者等網(wǎng)絡(luò)環(huán)境好的時候下載。

繼續(xù)執(zhí)行:

pip install sentencepiece==0.1.97 -i https://pypi.tuna.tsinghua.edu.cn/simple

#需等待,非常漫長

pip install peft==0.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

4.驗(yàn)證:在PyTorch環(huán)境下驗(yàn)證GPU是否正常工作

python3.10

import torch

#返回值為true,表示正常工作

torch.cuda.is_available()

quit()

有可能會報cuda與python版本不匹配的問題:需要選擇正確版本的CUDA和PyTorch安裝(windows)

三、下載與配置模型

1.下載Chinese-LLaMA-Alpaca模型

git clone https://github.com/ymcui/Chinese-LLaMA-Alpaca.git

本地已下載:Chinese-LLaMA-Alpaca-main.zip

修改代碼:Chinese-LLaMA-Alpaca/scripts/merge_llama_with_chinese_lora.py文件,dType類型 由float16全部換為bfloat16

全部修改為:

torch_dtype=torch.bfloat16

否則,在最終運(yùn)行時,會報錯:RuntimeError: probability tensor contains either inf, nan or element < 0

2.下載chinese-alpaca-lora-13b模型

git-lfs clone https://huggingface.co/ziqingyang/chinese-alpaca-lora-13b

大概率會失敗,解決辦法是把該文件夾下載到本地,然后再上傳到服務(wù)上

//如果需要文件進(jìn)行下載,可以聯(lián)系我:lucky_shisheng

scp -r chinese-alpaca-lora-13b ubuntu@106.52.198.183:~

修改代碼:chinese-alpaca-lora-13b中的adapter_config.json

去掉兩行:

“enable_lora”: null,

“merge_weights”: false,

否則,在最終運(yùn)行時,會報錯:TypeError: init() got an unexpected keyword argument ‘enable_lora’

3.下載 llama-13b-hf模型

git-lfs clone https://huggingface.co/decapoda-research/llama-13b-hf

大概也會失敗,解決辦法是用wget直接下載,或者是像上面一樣,下載到本地后,再上傳上去。

//如果需要文件進(jìn)行下載,可以聯(lián)系我:lucky_shisheng

scp -r llama-13b-hf ubuntu@106.52.198.183:~

4.合并代碼

合并代碼,生成新模型

cd Chinese-LLaMA-Alpaca/

python3.10 scripts/merge_llama_with_chinese_lora.py --base_model ~/llama-13b-hf/ --lora_model ~/chinese-alpaca-lora-13b/ --output_type huggingface --output_dir ./llama_with_lora_hf

在這里,指定了base model和lora_model,輸出路徑為./llama_with_lora_hf

如果出現(xiàn)被kill,則是資源內(nèi)存不足,需要換臺機(jī)器來做。

合并完成后,可以確認(rèn)一下轉(zhuǎn)換完成后的文件內(nèi)容,大概25G

ls -lh llama_with_lora_hf

四、部署WebUI

1.下載WebUI

#需要多試幾次

cd~

git clone https://github.com/oobabooga/text-generation-webui.git

備份:text-generation-webui-main.zip

2.安裝代碼及依賴庫

cd text-generation-webui/

#非常耗時

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

3.模型軟鏈接生成到models下面

ln -s /home/ubuntu/Chinese-LLaMA-Alpaca/llama_with_lora_hf/ models/llama_with_lora_hf

五、最終對話界面生成

驗(yàn)證結(jié)果

python3.10 server.py --model llama_with_lora_hf --listen --chat --load-in-8bit

人機(jī)界面:

控制臺:

若提示GPU內(nèi)存不足,可以換個命令試一下:

python3.10 server.py --model llama_with_lora_hf --listen --chat --load-in-4bit

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容