Qwen-7B是阿里云研发的通义千问大模型系列的70亿参数规模模型,基于Transformer的大语言模型,在超大规模的预训练数据上进行训练得到。同时在Qwen-7B的基础上,使用对齐机制打造了基于大语言模型的AI助手Qwen-7B-Chat。本文就以阿里云云服务器第八代Intel实例c8i为例,为大家介绍一下阿里云基于xFasterTransformer框架部署Qwen-7B-Chat语言模型,仅供参考。
本文涉及的阿里云服务:
阿里云八代实例(g8i/c8i/r8i/hfc8i/hfg8i/hfr8i)采用Intel®Xeon®Emerald Rapids或者Intel®Xeon®Sapphire Rapids,该实例支持使用新的AMX(Advanced Matrix Extensions)指令来加速AI任务。相比于上一代实例,八代实例在Intel®AMX的加持下,推理和训练性能大幅提升。
阿里云云服务器性能卓越、稳定可靠,且支持弹性扩展,目前提供百余款高性能的实例规格可选,包括通用型(g系列)、计算型(c系列)、内存型(r系列)、通用算力型(U实例)、大数据型(d系列)、本地SSD型(i系列)等,本文选择的是八代实例,如g8i/c8i/r8i/hfc8i/hfg8i/hfr8i,用户可以根据需要选择合适的实例方案。
《点击进入官网选购》
一、创建阿里云云服务器实例
1、进入阿里云官网,注册并完成登录操作。
2、点击“产品”>“云服务器”,点击“立即购买”,进入云服务器购买页面。
3、按照界面提示完成参数配置,创建一台云服务器实例。
- 实例:Qwen-7B-Chat运行大概需要16 GiB内存以上,为了保证模型运行的稳定,实例规格至少需要选择ecs.c8i.4xlarge(32 GiB内存)。
- 镜像:Alibaba Cloud Linux 3.2104 LTS 64位。
- 公网IP:选中分配公网IPv4地址,带宽计费模式选择按使用流量,带宽峰值设置为100 Mbps。以加快模型下载速度。
- 系统盘:Qwen-7B-Chat模型数据下载、转换和运行过程中需要占用60 GiB的存储空间,为了保证模型顺利运行,建议系统盘设置为100 GiB。
4、添加安全组规则。
在云服务器实例安全组的入方向添加安全组规则并放行22端口和7860端口(22端口用于访问SSH服务,7860端口用于访问WebUI页面)。
二、安装模型所需环境
xFasterTransformer是由Intel官方开源的推理框架,为大语言模型(LLM)在CPU X86平台上的部署提供了一种深度优化的解决方案,支持多CPU节点之间的分布式部署方案,使得超大模型在CPU上的部署成为可能。此外,xFasterTransformer提供了C++和Python两种API接口,涵盖了从上层到底层的接口调用,易于用户使用并将xFasterTransformer集成到自有业务框架中。
1、远程连接云服务器实例。详情可参考:《阿里云服务器三种远程连接的方法》
2、安装并启动Docker。
执行以下命令安装Docker社区版本。
#添加Docker软件包源
sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
#Alibaba Cloud Linux3专用的dnf源兼容插件
sudo dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
#安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件
sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#启动Docker
sudo systemctl start docker
#设置Docker守护进程在系统启动时自动启动
sudo systemctl enable docker
通过查看Docker版本命令,验证Docker是否安装成功。
sudo docker -v
如下图回显信息所示,表示Docker已安装成功。
3、获取并运行Intel xFasterTransformer容器。
sudo docker pull registry.openanolis.cn/openanolis/xfastertransformer:1.7.3-23
sudo docker run -it --name xFT -h xFT --privileged --shm-size=16g --network host -v /mnt:/mnt -w /mnt/xFasterTransformer registry.openanolis.cn/openanolis/xfastertransformer:1.7.3-23
当出现类似如下信息时,表示已获取并成功运行xFasterTransformer容器。
注:后续操作都需要在容器中运行,如果退出了容器,可以通过以下命令启动并再次进入容器的Shell环境。
sudo docker start xFT
sudo docker exec -it xFT bash
4、更新xFasterTransformer脚本代码。
xFasterTransformer镜像中已包含对应版本的脚本代码,可以更新升级到最新的测试脚本。
yum update -y
yum install -y git
cd /root/xFasterTransformer
git pull
三、安装Qwen-7B-Chat模型
1、在容器中安装依赖软件。
yum update -y
yum install -y wget git git-lfs vim tmux
2、启用Git LFS。
下载预训练模型需要Git LFS的支持。
git lfs install
3、创建并进入模型数据目录。
mkdir /mnt/data
cd /mnt/data
4、创建一个tmux session。
tmux
5、下载Qwen-7B-Chat预训练模型。
git clone https://www.modelscope.cn/qwen/Qwen-7B-Chat.git /mnt/data/qwen-7b-chat
注:在执行git clone命令后,Git将通过Git LFS开始下载仓库及其所有大文件。这个过程可能需要几分钟到几小时不等,具体取决于模型大小和网络条件,请您耐心等待。
当出现如下信息时,表示预训练模型已下载成功。
6、转换模型数据。
由于下载的模型数据是HuggingFace格式,需要转换成xFasterTransformer格式。生成的模型文件夹为/mnt/data/qwen-7b-chat-xft。
python -c 'import xfastertransformer as xft; xft.QwenConvert().convert("/mnt/data/qwen-7b-chat")'
当出现如下信息时,表示模型转换成功。
四、运行Qwen-7B-Chat模型
在Web页面中进行对话
1、在容器中,依次执行以下命令,安装WebUI相关依赖软件。
cd /root/xFasterTransformer/examples/web_demo
pip install -r requirements.txt
2、执行以下命令,升级gradio以避免与fastapi的冲突。
pip install --upgrade gradio
3、执行以下命令,启动WebUI。
OMP_NUM_THREADS=$(($(lscpu | grep "^CPU(s):" | awk '{print $NF}') / 2)) GRADIO_SERVER_NAME="0.0.0.0" numactl -C $(seq -s, 0 2 $(($(lscpu | grep "^CPU(s):" | awk '{print $NF}') - 2))) -m 0 python Qwen.py -t /mnt/data/qwen-7b-chat -m /mnt/data/qwen-7b-chat-xft -d bf16
当出现如下信息时,表示WebUI服务启动成功。
4、在浏览器地址栏输入http://<ECS公网IP地址>:7860,进入Web页面。
5、在页面对话框中,输入对话内容,然后单击Submit,即可进行AI对话。
在实例终端进行对话
执行以下命令,启动AI对话程序。
cd /root/xFasterTransformer/examples/pytorch
OMP_NUM_THREADS=$(($(lscpu | grep "^CPU(s):" | awk '{print $NF}') / 2)) LD_PRELOAD=libiomp5.so numactl -C $(seq -s, 0 2 $(($(lscpu | grep "^CPU(s):" | awk '{print $NF}') - 2))) -m 0 python demo.py -t /mnt/data/qwen-7b-chat -m /mnt/data/qwen-7b-chat-xft -d bf16 --chat true
相关推荐: