本文介绍如何使用阿里云第八代Intel实例,基于IPEX-LLM单机部署千问Qwen-72B-Chat语言模型进行AI对话。
背景信息
创建ECS实例
前往实例创建页。
-
按照界面提示完成参数配置,创建一台ECS实例。
需要注意的参数如下,其他参数的配置,请参见自定义购买实例。
-
实例:Qwen-72B-Chat大概需要70 GiB内存,为了保证模型运行的稳定,建议选择192 GiB内存或以上的实例规格,本文以ecs.c8i.24xlarge为例。
-
镜像:Alibaba Cloud Linux 3.2104 LTS 64位。
-
公网IP:选中分配公网IPv4地址,带宽计费模式选择按使用流量,带宽峰值设置为100 Mbps。以加快模型下载速度。

-
数据盘:Qwen-72B-Chat的运行需要下载多个模型文件,会占用大量存储空间,为了保证模型顺利运行,建议数据盘设置为300 GiB。
-
-
添加安全组规则。
在ECS实例安全组的入方向添加安全组规则并放行22、443、7860端口(用于访问WebUI服务)。具体操作,请参见添加安全组规则。
-
创建完成后,在ECS实例页面,获取公网IP地址。
说明公网IP地址用于进行AI对话时访问WebUI服务。

部署Qwen-72B-Chat
步骤一:配置运行环境
-
远程连接ECS实例。
具体操作,请参见使用Workbench登录Linux实例。
-
安装Docker。
具体操作,请参见安装并使用Docker和Docker Compose。
-
执行以下命令,从
docker hub中下载ipex-llm-serving-cpu镜像。说明ipex-llm-serving-cpu镜像中已包含运行千问所需的环境,启动容器后可直接使用。
sudo docker pull intelanalytics/ipex-llm-serving-cpu:2.2.0-SNAPSHOT
-
执行以下命令,查看并验证
ipex-llm-serving-cpu镜像是否下载成功。sudo docker images若在系统返回信息中,存在如下镜像,则表示
ipex-llm-serving-cpu镜像下载成功。
步骤二:下载Qwen-72B-Chat预训练模型
-
执行以下命令,安装
tmux命令。sudo yum install tmux -y -
执行以下命令,创建一个
tmux session窗口。tmux重要下载预训练模型耗时较长,且成功率受网络情况影响较大,建议在
tmux session中下载,以免ECS断开连接导致下载模型中断。 -
执行以下任意命令,下载Qwen-72B-Chat预训练模型。
重要-
使用Git方式下载会产生较大的中间文件,为了节约数据盘空间,建议您使用Python脚本下载。
-
通过公网下载Qwen-72B-Chat预训练模型,因模型数据较大,使用100 Mbps带宽下载时间大约为3小时,请耐心等待。
使用Python脚本下载
-
执行以下命令,下载
miniconda安装包。wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -
执行以下命令,安装
miniconda。bash Miniconda3-latest-Linux-x86_64.sh -
执行以下命令,激活
miniconda。source ~/.bashrc若命令行首部出现
(base)标识,则表示miniconda激活成功。
-
执行以下命令,安装
pip命令。sudo yum install -y python3-pip依次执行以下命令,升级
pip工具、setuptools和wheel库。sudo pip3 install --upgrade pip sudo pip3 install --upgrade setuptools wheel -
miniconda安装成功后,在conda环境中安装modelscope。pip3 install modelscope -
执行Python脚本,下载Qwen-72B-Chat预训练模型。
-
执行以下命令,创建Python脚本文件
test.py。sudo vim test.py -
按i键进入编辑模式,添加以下内容。
from modelscope import snapshot_download model_dir = snapshot_download('qwen/Qwen-72B-Chat') print(model_dir) -
按
Esc键退出编辑模式,然后输入:wq保存并退出。 -
执行以下命令,运行Python脚本文件
test.py。python3 test.py
-
使用Git下载
-
执行以下命令,安装
Git命令。sudo yum install git -y -
下载并安装Git LFS,以确保通过
Git命令可下载大型文件。curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash sudo yum install -y git-lfs -
执行以下命令,验证Git LFS是否安装成功。
git lfs version若系统返回Git LFS的版本信息,则表示成功安装。
-
执行以下命令,下载Qwen-72B-Chat预训练模型。
sudo git clone https://www.modelscope.cn/qwen/Qwen-72B-Chat.git Qwen-72b-chat
-
-
执行以下命令,查看Qwen-72B-Chat预训练模型所在目录路径。
ls -l
步骤三:启动并进入IPEX-LLM Docker容器
-
编写Docker容器启动脚本文件。
-
执行以下命令,新建并编辑
start-container.sh脚本文件。sudo vim start-container.sh -
按
i键进入编辑模式,添加以下信息。export MODEL_PATH=[YOUR_MODEL_PATH] sudo docker run -itd \ --net=host \ --privileged \ --cpuset-cpus="0-47" \ --cpuset-mems="0" \ --name="qwen-llm" \ --shm-size="16g" \ -v $MODEL_PATH:/models \ -e ENABLE_PERF_OUTPUT="true" \ intelanalytics/ipex-llm-serving-cpu:2.2.0-SNAPSHOT说明参数说明如下:
-
MODEL_PATH:请您根据实际情况,将[YOUR_MODEL_PATH]替换为上述步骤二中3.查询到Qwen-72B-Chat预训练模型的绝对路径。 -
$MODEL_PATH:启动Docker容器时会将Host的模型挂载到容器的/models目录下。 -
cpuset-cpus:指定使用的CPU核心。 -
cpuset-mems:指定使用的NUMA内存节点编号。
您可以使用
lscpu命令来查询CPU核心数量和NUMA内存节点编号。 -
-
按
Esc键退出编辑模式,然后输入:wq保存并退出。
-
-
执行以下命令,启动Docker容器。
sudo bash start-container.sh -
执行以下命令,查看Docker容器启动情况。
sudo docker ps -a若系统返回以下信息,则表示Docker容器启动成功。

-
执行以下命令,进入Docker容器。
sudo docker exec -it qwen-llm bash
步骤四:基于IPEX-LLM与Qwen-72B-Chat进行AI对话
-
依次执行以下命令,完成优化操作。
说明在进行AI对话前,您需要对部分环境变量进行设置以在Intel CPU上实现优化效果,并对线程进行优化。
source ipex-llm-init -t export OMP_NUM_THREADS=[使用的cpu核心数] #本示例使用cpu核心数为48,请根据实际情况,将[使用的cpu核心数]替换为合适的cpu核心数。 -
与Qwen-72B-Chat进行AI对话。
在实例内部进行AI对话
依次执行以下命令,进入终端与Qwen-72B-Chat进行AI对话。
cd /llm/portable-zip python3 chat.py --model-path /models/Qwen-72B-Chat说明Qwen-72B-Chat预训练模型会在加载时自动转换为
int4格式。
在浏览器进行AI对话
-
执行如下命令,开启WebUI服务。
python3 -m fastchat.serve.controller & python3 -m bigdl.llm.serving.model_worker --model-path /models/Qwen-72B-Chat --device cpu & python3 -m fastchat.serve.gradio_web_server说明在加载
model worker时,系统会自动将模型量化为int4格式,无需进行手动转换。
-
在浏览器地址栏输入
http://<ECS公网IP地址>:7860,进入Web页面。 -
在页面对话框中,输入对话内容,即可开始AI对话。

-




