通过GPU云服务器生成个人版对话大模型
本实验介绍如何在阿里云GPU云服务器上基于Alpaca大模型快速搭建个人版“对话大模型”。
场景简介
阿里云不对第三方模型的合法性、安全性、准确性进行任何保证,阿里云不对由此引发的任何损害承担责任。
您应自觉遵守第三方模型的用户协议、使用规范和相关法律法规,并就使用第三方模型的合法性、合规性自行承担相关责任。
Alpaca大模型是一款基于LLaMA的大语言模型,它可以模拟自然语言进行对话交互,并协助用户完成写作、翻译、编写代码、生成脚本等一系列创作任务。同时,使用了中文数据进行二次预训练,提升了中文基础语义理解能力。
本实验基于阿里云GPU服务器和Alpaca大模型,指导您如何快速搭建个人版“对话大模型”。

背景知识
GPU云服务器
GPU云服务器(GPU Cloud Computing,GPU)是提供 GPU 算力的弹性计算服务,具有超强的计算能力,服务于深度学习、科学计算、图形可视化、视频处理多种应用场景。阿里云作为亚太第一的云服务提供商,随时为您提供触手可得的算力,有效缓解计算压力,提升您的业务效率,助您提高企业竞争力。
了解更多信息,详情请参见从0快速搭建个人版“对话大模型”。
前提条件
云起实验室将在您的账号下开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。
本实验预计两个小时产生费用20元,其中0.8元/G公网流量。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
进入实操前,请确保阿里云账号满足以下条件:
创建专有网络VPC和交换机
在实验室页面右侧的操作区中,勾选我已阅读并同意《阿里云云起实践平台服务协议》,单击开始实操。
前往专有网络管理控制台。
在左侧导航栏中,单击专有网络。

在专有网络页⾯,单击创建专有网络。

在创建专有网络页⾯,根据下方参数说明配置1个专有网络(VPC)和1台交换机,然后单击确定。更多关于创建专有网络和交换机信息,详情请参见创建和管理专有网络。
配置项
说明
专有网络
地域
本实验以华东1(杭州)为例。
名称
自定义名称。
IPv4网段
选择手动输入IPv4地址段。
输入IPv4网段
输入IPv4网段,建议您使用RFC私网地址作为专有网络的网段如
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16。交换机
名称
自定义名称。
可用区
选择杭州可用区J。
IPv4网段
使用默认的IPv4网段即可。


在创建专有网络页面,您可查看到创建的专有网络VPC和交换机的ID、实例名称等信息。

创建ECS实例
前往实例创建页。
在云服务器购买页面,参考如下说明配置参数,未提及的配置保持默认或按需修改,然后选中右侧的我已阅读并同意云服务器(按量付费)专属条款、镜像商品使用条款,单击确认下单。
参数
示例
付费类型
选择按量付费。
地域
本实验以华东1(杭州)为例。
网络及可用区
选择您创建的专有网络和交换机。
实例
选择ecs.gn7i-c16g1.4xlarge。
镜像
选择公共镜像Ubuntu 22.04,并选中安装GPU驱动,选择CUDA 版本12.4.1/Driver 版本550.90.07/CUDNN 版本9.2.0.82。
系统盘
不小于200 GiB
公网IP
开启分配公网IPv4地址。
带宽计费模式
选择按使用流量。
本教程以按使用流量为例,您可根据实际情况选择按固定带宽或按使用流量。
带宽峰值
带宽峰值设置为100 Mbps。以加快模型下载速度。
安全组
选择新建安全组。
安全组类型
选择普通安全组
开通IPv4端口/协议
保持默认即可。
登录凭证
为当前ECS实例设置登录密码,选择自定义密码。
登录密码
自定义设置登录密码。
确认密码
再次输入登录密码。





在创建成功对话框中,单击管理控制台。

在实例页面,等待状态变为运行中后,即可使用该云服务器ECS。

添加安全组规则。
在ECS实例安全组的入方向添加安全组规则并放行7860端口。
在实例页面,单击实例ID。

在实例详情页签,单击安全组。

在安全组页签,单击安全组ID。

在访问规则区域的入方向中,添加7860端口,单击保存,开放该端口后可以访问WebUI。
重要添加端口时,授权对象建议选择您的本机IP地址。

查看驱动以及CUDA库是否安装成功。
前往云服务器ECS控制台。
在左侧导航栏中,选择。

在实例页面,找到目标ECS实例,单击其右侧操作列下的远程连接。

在远程连接对话框中,单击通过Workbench远程连接区域下的立即登录。

在登录实例对话框中,输入用户自定义密码,单击确定。

首次登录ECS实例时,系统会自动安装驱动。当显示如下图所示的回显信息时,表示驱动以及CUDA库已安装成功。
重要系统自动安装驱动以及CUDA库时,请不要手动操作或者重启实例,否则可能会导致驱动或者CUDA库安装失败。等到安装驱动以及CUDA库完成以后,系统会自动重启。
如果创建完ECS实例后,没有立即远程登录ECS实例,可能看不到类似下图的回显信息。

执行以下命令,查看GPU驱动的版本。
nvidia-smi回显信息类似下图所示。

执行以下命令,查看CUDA库的版本。
nvcc -V回显信息如下图所示。

配置软件
安装Python 3.11并升级pip。
分别执行以下命令,安装Python 3.11。
apt-get update apt-get upgrade apt install -y python-is-python3 # 将默认Python改成Python3 apt install -y software-properties-common # 安装software-properties-common软件包 add-apt-repository ppa:deadsnakes/ppa # 添加PPA存储库 apt -y install python3.11 # 安装Python 3.11 update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 # 设置默认Python为Python 3.11执行如下命令,查看Python版本。
python --version当回显如下所示时,表示已安装Python 3.11.11。

分别执行以下命令,升级pip。
wget https://bootstrap.pypa.io/get-pip.py python3.11 get-pip.py
执行以下命令,安装Git和Git LFS软件。
apt install -y git git-lfs python3.11-distutils依次执行以下命令,安装模型所需要的Python包。
重要从GitHub上下载Transformers库,由于网络原因偶尔可能会不成功,建议您多尝试几次。
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在PyTorch环境下验证GPU是否正常工作。
执行以下命令,进入PyTorch环境。
python执行以下命令,验证GPU是否正常工作。
import torch torch.cuda.is_available()返回
True,表示GPU正常工作。
执行以下命令,退出Python。
quit()
下载与配置模型
依次执行以下命令,下载tmux并创建一个tmux session。
重要下载模型耗时较长,建议在tmux session中下载,以免ECS断开连接导致下载中断。
apt install -y tmux tmux执行以下命令,下载Chinese-LLaMA-Alpaca模型。
git clone https://github.com/ymcui/Chinese-LLaMA-Alpaca.git执行以下命令,下载chinese-alpaca-lora-13b模型。
git clone https://www.modelscope.cn/ChineseAlpacaGroup/chinese-alpaca-lora-13b.git依次执行以下命令,下载llama-13b-hf。
llama-13b-hf是预训练的llama 13b模型,已经转换成了Huggingface的模型格式。下载llama-13b-hf大约有40 GiB的数据,预估下载时间约30分钟,请您耐心等待。
重要LLaMA是第三方提供的Huggingface格式的预训练模型数据。Meta官方发布的LLaMA模型禁止商用,并且官方暂时还没有正式开源模型权重。这里使用这个下载链接只为做演示使用,不承担任何法律责任。
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依次执行以下命令,合并代码。
说明命令行中需要用--output_dir命令指定一个输出目录,本实验中输出目录为
/root/Chinese-LLaMA-Alpaca/llama_with_lora_hf。转换需要一段时间,需要耐心等待。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执行以下命令,查看转换完成后的文件。
ls -lh llama_with_lora_hf
部署WebUI
执行以下命令,在
/root目录或者您的工作目录,下载WebUI并且进行代码部署。cd git clone https://github.com/oobabooga/text-generation-webui.git执行以下命令,安装代码及依赖库。
说明安装代码及依赖库涉及从Github下载代码,可能会因为网络原因运行失败,请多试几次。
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/执行以下命令,在models目录下面生成一个软链接,指向合并后模型数据的目录。
ln -s /root/Chinese-LLaMA-Alpaca/llama_with_lora_hf/ models/llama_with_lora_hf参数说明如下:
/root/Chinese-LLaMA-Alpaca/llama_with_lora_hf/:指的是合并模型存放的目录,您可以从合并代码步骤获取。models/llama_with_lora_hf:指的是模型名称,您可以修改成其他名称。
验证结果
完成以上操作后,您已经成功完成了WebUI部署和个人版对话大模型的搭建。您可以在WebUI页面,进行验证。
执行以下命令,运行WebUI。
cd text-generation-webui/ python server.py --model llama_with_lora_hf --listen --chat --load-in-8bit参数说明如下:
--model:指定的是上一小节中生成的软链接的名称,不需要带前面的model/目录名。本实验软链接的名称为
llama_with_lora_hf。--listen:用于设置WebUI监听所有外部IP(不配置--listen默认只能监听本地IP),以实现从实例外访问WebUI。默认监听端口是7860,您可通过--listen-port来指定其他监听端口。
--chat:用于指定默认的运行模式,本文示例为对话模式(可按需尝试其他模式)。
--load-in-8bit:用于指定以8bit模式加载模型。正常加载13B模型需要26 GB以上显存,A10显卡只有24 GB,所以需要以8bit模式加载,模型占用显存大约为15 GB。
当显示如下图所示的回显信息时,表示运行WebUI成功。

在ECS实例页面,获取ECS实例的公网IP地址。

在浏览器中输入
http://<ECS实例公网IP地址>:7860,即可访问个人版对话大模型。您可以输入相应的问题和AI机器人进行对话。

清理及后续
在完成实验后,如果无需继续使用资源,请根据以下步骤,先删除相关资源后,再结束实操。
删除云服务器ECS。
进入云服务器ECS控制台。
在左侧导航栏中,选择。

在实例页面,找到目标ECS实例,选择其右侧操作列下的。

在释放对话框中,选择立即释放,单击下一步。

在释放对话框中,勾选我已知晓即将释放的资源与关联资源,并了解相关数据风险,单击确认。

删除安全组。
前往云服务器ECS控制台。
在左侧导航栏中,选择。

在安全组页面,找到目标安全组,单击其右侧操作列下的删除。

在删除安全组对话框中,单击确定。

删除VPC和交换机。
前往专有网络管理控制台。
在左侧导航栏中,单击交换机。

在单击交换机右侧的删除按钮。

在弹出的删除交换机对话框中,单击确定。

在左侧导航栏中,单击专有网络。

单击VPC右侧删除按钮。

在删除专有网络对话框中,单击确定。

删除相关资源后,选择不保留资源,单击结束实操。在结束实操对话框中,单击确定。

在完成实验后,如果需要继续使用资源,选择付费保留资源,单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。








































