保姆级指导0基础如何快速搭建“对话机器人”类ChatGPT

参考了CDSN上的文章,但发现不work, 不是这里有问题,就是那里有问题,查阅了大量的资料,做了无数次试验,终于整理出来了一个完整的教程,保可用,保真~~~~~如果各位遇到什么问题,也可以私信我

我把每个环节遇到的坑,都填平了,如果按我的操作,免去了大家查各种问题的富贵时间。祝你也能一次性来到人机对话的界面:

不多废话了,直接说,如何使用腾讯云上的机器,自建一个简单的类似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确认

登录服务器后,在安装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)

参考:https://zhuanlan.zhihu.com/p/672526561

三、下载与配置模型

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

相关推荐
2301_819287121 小时前
ce第六次作业
linux·运维·服务器·网络
武汉联从信息1 小时前
如何使用linux日志管理工具来管理oracle osb服务器日志文件?
linux·运维·服务器
天天进步20151 小时前
STUN服务器实现NAT穿透
运维·服务器
月如琉璃1 小时前
1.gitlab 服务器搭建流程
服务器·gitlab
Kika写代码2 小时前
【微信小程序】页面跳转基础 | 我的咖啡店-综合实训
服务器·微信小程序·小程序
州周2 小时前
Ftp目录整个下载
linux·服务器·数据库
冷曦_sole2 小时前
linux-19 根文件系统(一)
linux·运维·服务器
AI大模型学徒3 小时前
Linux(二)_清理空间
linux·运维·服务器
花鱼白羊3 小时前
TCP Vegas拥塞控制算法——baseRtt 和 minRtt的区别
服务器·网络协议·tcp/ip
PyAIGCMaster3 小时前
文本模式下成功。ubuntu P104成功。
服务器·数据库·ubuntu