阿里云云服务器部署Qwen-7B-Chat模型教程

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已安装成功。

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容器。

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开始下载仓库及其所有大文件。这个过程可能需要几分钟到几小时不等,具体取决于模型大小和网络条件,请您耐心等待。

当出现如下信息时,表示预训练模型已下载成功。

Qwen-7B-Chat模型

 

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模型

 

四、运行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服务启动成功。

运行Qwen-7B-Chat模型

 

 

4、在浏览器地址栏输入http://<ECS公网IP地址>:7860,进入Web页面。

运行Qwen-7B-Chat模型

5、在页面对话框中,输入对话内容,然后单击Submit,即可进行AI对话。

运行Qwen-7B-Chat模型

在实例终端进行对话

执行以下命令,启动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

运行Qwen-7B-Chat模型

相关推荐:

在阿里云云服务器上部署OpenManus教程

阿里云快速部署DeepSeek个人站点方案

使用教程

亚马逊Amazon SageMaker JumpStart部署Yi-1.5 9B模型

2025-4-16 10:21:11

使用教程

使用华为云Flexus云服务快速构建DeepSeek联网助手

2025-4-18 17:34:50

相关推荐