如何使用腾讯云GPU云服务器自建一个简单的类似ChatGPT、Kimi的会话机器人

如何使用腾讯云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

相关推荐
JFSJFX13 分钟前
手机短信误删怎么办?这4种恢复办法亲测有效,轻松找回短信
运维·服务器
AI-Ming1 小时前
程序员转行学习 AI 大模型: 踩坑记录:服务器内存不够,程序被killed
服务器·人工智能·python·gpt·深度学习·学习·agi
熵减纪元1 小时前
亚马逊下场抢人形机器人了:Sprout 被收编,家庭陪伴赛道开始热起来
机器人
路由侠内网穿透2 小时前
本地部署开源工作空间工具 AFFiNE 并实现外部访问
运维·服务器·数据库·物联网·开源
zzzsde2 小时前
【Linux】Ext文件系统(1)
linux·运维·服务器
爱学习的小囧2 小时前
ESXi 8.0 无法选择分区方式 小白级详细解决办法
运维·服务器·网络·虚拟化·esxi8.0
极客老王说Agent2 小时前
别被OpenClaw的30万Star晃了眼!AI产业逻辑重写后,打工人更该看清谁在“真干活”
人工智能·ai·chatgpt
Bruce20489982 小时前
OpenClaw 零基础全解析(小白友好版)
人工智能·chatgpt
徐子元竟然被占了!!2 小时前
批处理脚本-命令
服务器
齐齐大魔王3 小时前
linux-核心工具
linux·运维·服务器