Alpaca大語(yǔ)言模型是基于Meta LLaMA架構(gòu)深度優(yōu)化的開(kāi)源對(duì)話(huà)系統(tǒng),通過(guò)指令精調(diào)(Instruction Tuning)與增量預(yù)訓(xùn)練(Continued Pre-training)技術(shù)深度融合,繼承了LLaMA強(qiáng)大的通用生成能力。本指南系統(tǒng)性闡述基于阿里云GN7i GPU實(shí)例(配備N(xiāo)VIDIA A10 Tensor Core GPU)的端到端部署方案,涵蓋從驅(qū)動(dòng)自動(dòng)安裝、Chinese-ALPACA-13B模型量化部署,到安全組配置的最佳實(shí)踐,為開(kāi)發(fā)者提供開(kāi)箱即用的個(gè)人版“對(duì)話(huà)大模型”搭建教程。
一、創(chuàng)建并配置阿里云ECS實(shí)例
阿里云官網(wǎng)地址:點(diǎn)擊訪(fǎng)問(wèn)
1、在ECS實(shí)例創(chuàng)建頁(yè)面,創(chuàng)建ECS實(shí)例。
實(shí)例規(guī)格:選擇實(shí)例規(guī)格為ecs.gn7i-c16g1.4xlarge。
鏡像:公共鏡像Ubuntu 22.04,并選中安裝GPU驅(qū)動(dòng),選擇CUDA 版本12.1.1/Driver 版本535.154.05/CUDNN 版本8.9.7.29。
系統(tǒng)盤(pán):不小于200 GiB。
公網(wǎng)IP:選中分配公網(wǎng)IPv4地址,帶寬計(jì)費(fèi)方式選擇按使用流量,帶寬峰值選擇100 Mbps,以加快模型下載速度。
2、添加安全組規(guī)則
在ECS實(shí)例安全組的入方向添加安全組規(guī)則并放行7860端口。
查看驅(qū)動(dòng)以及CUDA庫(kù)是否安裝成功。
使用root用戶(hù)遠(yuǎn)程登錄ECS實(shí)例。首次登錄ECS實(shí)例時(shí),系統(tǒng)會(huì)自動(dòng)安裝驅(qū)動(dòng)。當(dāng)顯示如下圖所示的回顯信息時(shí),表示驅(qū)動(dòng)以及CUDA庫(kù)已安裝成功。
注意:系統(tǒng)自動(dòng)安裝驅(qū)動(dòng)以及CUDA庫(kù)時(shí),請(qǐng)不要手動(dòng)操作或者重啟實(shí)例,否則可能會(huì)導(dǎo)致驅(qū)動(dòng)或者CUDA庫(kù)安裝失敗。等到安裝驅(qū)動(dòng)以及CUDA庫(kù)完成以后,系統(tǒng)會(huì)自動(dòng)重啟。
如果創(chuàng)建完ECS實(shí)例后,沒(méi)有立即遠(yuǎn)程登錄ECS實(shí)例,可能看不到類(lèi)似下圖的回顯信息。
再次使用root用戶(hù)遠(yuǎn)程登錄ECS實(shí)例。
執(zhí)行以下命令,查看GPU驅(qū)動(dòng)的版本。
nvidia-smi
回顯信息類(lèi)似下圖所示。
執(zhí)行以下命令,查看CUDA庫(kù)的版本。
nvcc -V
回顯信息如下圖所示。
二、配置軟件
1、安裝Python 3.11并升級(jí)pip
分別執(zhí)行以命令,安裝Python 3.11。
apt-get update apt-get upgrade apt install -y python-is-python3 # 將默認(rèn)Python改成Python3 apt install -y software-properties-common # 安裝software-properties-common軟件包 add-apt-repository ppa:deadsnakes/ppa # 添加PPA存儲(chǔ)庫(kù) apt -y install python3.11 # 安裝Python 3.11 update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 # 設(shè)置默認(rèn)Python為Python 3.11
2、執(zhí)行如下命令,查看Python版本
python --version
當(dāng)回顯如下所示時(shí),表示已安裝Python 3.11.9。
分別執(zhí)行以命令,升級(jí)pip。
wget https://bootstrap.pypa.io/get-pip.py python3.11 get-pip.py
執(zhí)行以下命令,安裝Git和Git LFS軟件。
apt install -y git git-lfs python3.11-distutils
3、依次執(zhí)行以下命令,安裝模型所需要的Python包。
sudo apt-get install pkg-config cmake sudo apt-get install python3.11-dev pip install git+https://github.com/huggingface/transformers pip install sentencepiece==0.1.97 -i https://mirrors.aliyun.com/pypi/simple pip install peft==0.10.0 -i https://mirrors.aliyun.com/pypi/simple
注意:從GitHub上下載Transformers庫(kù),由于網(wǎng)絡(luò)原因偶爾可能會(huì)不成功,建議多嘗試幾次。
4、在PyTorch環(huán)境下驗(yàn)證GPU是否正常工作
執(zhí)行以下命令,進(jìn)入Python運(yùn)行環(huán)境。
python
執(zhí)行以下命令,驗(yàn)證GPU是否正常工作。
import torch torch.cuda.is_available()
返回True,表示GPU正常工作。
執(zhí)行以下命令,退出Python。
quit()
三、下載與配置模型
依次執(zhí)行以下命令,下載tmux并創(chuàng)建一個(gè)tmux session。
apt install -y tmux tmux
注意:下載模型耗時(shí)較長(zhǎng),建議在tmux session中下載,以免ECS斷開(kāi)連接導(dǎo)致下載中斷。
執(zhí)行以下命令,下載Chinese-LLaMA-Alpaca模型。
git clone https://github.com/ymcui/Chinese-LLaMA-Alpaca.git
執(zhí)行以下命令,下載chinese-alpaca-lora-13b模型。
git clone https://www.modelscope.cn/ChineseAlpacaGroup/chinese-alpaca-lora-13b.git
依次執(zhí)行以下命令,下載llama-13b-hf。
llama-13b-hf是預(yù)訓(xùn)練的llama 13b模型,已經(jīng)轉(zhuǎn)換成了Huggingface的模型格式。下載llama-13b-hf大約有40 GiB的數(shù)據(jù),預(yù)估下載時(shí)間約30分鐘,請(qǐng)耐心等待。
注意:LLaMA是第三方提供的Huggingface格式的預(yù)訓(xùn)練模型數(shù)據(jù)。Meta官方發(fā)布的LLaMA模型禁止商用,并且官方暫時(shí)還沒(méi)有正式開(kāi)源模型權(quán)重。這里使用這個(gè)下載鏈接只為做演示使用,不承擔(dān)任何法律責(zé)任。
pip install -U huggingface_hub pip install -U hf-transfer export HF_ENDPOINT=https://hf-mirror.com export HF_HUB_ENABLE_HF_TRANSFER=1 huggingface-cli download --resume-download --local-dir-use-symlinks False yahma/llama-13b-hf --local-dir llama-13b-hf
依次執(zhí)行以下命令,合并代碼。
cd Chinese-LLaMA-Alpaca/ python 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
命令行中需要用–output_dir命令指定一個(gè)輸出目錄,本示例中輸出目錄為/root/Chinese-LLaMA-Alpaca/llama_with_lora_hf 。轉(zhuǎn)換需要一段時(shí)間,需要耐心等待。
執(zhí)行以下命令,查看轉(zhuǎn)換完成后的文件。
ls -lh llama_with_lora_hf image
四、部署WebUI
執(zhí)行以下命令,在/root目錄或者工作目錄,下載WebUI并且進(jìn)行代碼部署。
cd git clone https://github.com/oobabooga/text-generation-webui.git
執(zhí)行以下命令,安裝代碼及依賴(lài)庫(kù)。
注意:安裝代碼及依賴(lài)庫(kù)涉及從GitHub下載代碼,可能會(huì)因?yàn)榫W(wǎng)絡(luò)原因運(yùn)行失敗,請(qǐng)多試幾次。
cd text-generation-webui/ pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple pip install datasets gradio rich bitsandbytes -i https://mirrors.aliyun.com/pypi/simple/
執(zhí)行以下命令,在models目錄下面生成一個(gè)軟鏈接,指向合并后模型數(shù)據(jù)的目錄。
ln -s /root/Chinese-LLaMA-Alpaca/llama_with_lora_hf/ models/llama_with_lora_hf
參數(shù)說(shuō)明如下:
- /root/Chinese-LLaMA-Alpaca/llama_with_lora_hf/:指的是合并模型存放的目錄,可以從合并代碼步驟獲?。?/li>
- models/llama_with_lora_hf:指的是模型名稱(chēng),可以修改成其他名稱(chēng)。
五、驗(yàn)證結(jié)果
完成以上操作后,已經(jīng)成功完成了WebUI部署和個(gè)人版對(duì)話(huà)大模型的搭建。可以在WebUI頁(yè)面進(jìn)行驗(yàn)證。
執(zhí)行以下命令,運(yùn)行WebUI。
cd text-generation-webui/ python server.py --model llama_with_lora_hf --listen --chat --load-in-8bit
參數(shù)說(shuō)明如下:
- –model:指定的是步驟3生成的軟鏈接的名稱(chēng),不需要帶前面的model/目錄名。本示例軟鏈接的名稱(chēng)為llama_with_lora_hf;
- –listen:用于設(shè)置WebUI監(jiān)聽(tīng)所有外部IP(不配置–listen默認(rèn)只能監(jiān)聽(tīng)本地IP),以實(shí)現(xiàn)從實(shí)例外訪(fǎng)問(wèn)WebUI。默認(rèn)監(jiān)聽(tīng)端口是7860,可通過(guò)–listen-port來(lái)指定其他監(jiān)聽(tīng)端口;
- –chat:用于指定默認(rèn)的運(yùn)行模式,本文示例為對(duì)話(huà)模式(可按需嘗試其他模式);
- –load-in-8bit:用于指定以8 bit模式加載模型。正常加載13B模型需要26 GB以上顯存,A10顯卡只有24 GB,所以需要以8bit模式加載,模型占用顯存大約為15 GB。
當(dāng)顯示如下圖所示的回顯信息時(shí),表示運(yùn)行WebUI成功。
在ECS實(shí)例頁(yè)面,獲取ECS實(shí)例的公網(wǎng)IP地址。
在瀏覽器中輸入http://<ECS實(shí)例公網(wǎng)IP地址>:7860,即可訪(fǎng)問(wèn)個(gè)人版對(duì)話(huà)大模型。
可以輸入相應(yīng)的問(wèn)題和AI機(jī)器人進(jìn)行對(duì)話(huà)。
-
廣告合作
-
QQ群號(hào):4114653