如何使用腾讯云GPU云服务器自建一个简单的类似ChatGPT、Kimi的会话机器人
一、选择云服务器
1.申请云服务器
建议云服务器使用按量付费,按小时算还是非常便宜的。
硬件配置:
系统:ubuntu,20.04
系统盘:150G
GPU:12核44G,1 * NVIDIA A10(32G),硬盘150G,1*NVIDIA A10(24G)
软件版本:
由于A10的驱动,cuda均未安装,为了省事,直接申请了另一台,初始化完成后,打成镜像,然后再为A10重装就可以了,这样最省事。当然也可以手动安装。
使用的V100的镜像,初始化条件选择如下
配置安全组,出全放开,入至少放开22和8760。
后付费要注意:要满足余额不低于要冻结金额。
2.GPU确认
登录GPU服务器后,在安装V100的镜像时,可以看到显卡驱动在安装。(早了晚了可能都会错过这个页面)
等待显卡驱动安装完成后(会有一段时间),做下显卡确认
nvidia-smi
用于确认cuda版本。
安装cuda toolkit
sudo apt install nvidia-cuda-toolkit #时间有点久
如上面所述,然后制作为镜像,再导入到我们的A10当中。(重装系统)
二、安装并配置Python环境
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
#验证安装成功,均返回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工具设置好。
看两处pip的版本是否一致:
第一种方式:pip show pip
第二种方式:python3.10 -m pip --version
若不一样,则:
然后修改两个文件:sudo vim /usr/bin/pip 以及sudo vim /usr/bin/pip3,将每个文件里面的两个版本号位置,修改为新的,最后再用pip show pip验证下。
#需等待,可能要不停地试,直到成功
pip install git+https://github.com/huggingface/transformers
#1.如果上面pip工具没设置好,可能会有如下报错:
回到上面处理吧,也可以参考:https://zhuanlan.zhihu.com/p/664770225
#2.如果报128,则看 https://zhuanlan.zhihu.com/p/648289974
下载到本地再上传 或者等网络环境好的时候下载。
继续执行:
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.验证:在PyTorch环境下验证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
否则,在最终运行时,会报错: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
大概率会失败,解决办法是把该文件夹下载到本地,然后再上传到服务上
//如果需要文件进行下载,可以联系我: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,
否则,在最终运行时,会报错: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直接下载,或者是像上面一样,下载到本地后,再上传上去。
//如果需要文件进行下载,可以联系我: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
如果出现被kill,则是资源内存不足,需要换台机器来做。
合并完成后,可以确认一下转换完成后的文件内容,大概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
五、最终对话界面生成
验证结果
python3.10 server.py --model llama_with_lora_hf --listen --chat --load-in-8bit
人机界面:
控制台:
若提示GPU内存不足,可以换个命令试一下:
python3.10 server.py --model llama_with_lora_hf --listen --chat --load-in-4bit