场景简介
在本实验场景中,将使用Alibaba Cloud AI Containers(AC2)容器镜像服务,通过Docker容器镜像部署Qwen系列大语言模型。本实验场景基于第八代Intel实例,使用Alibaba Cloud Linux 3作为实验系统,使能Intel最新的 AI 加速指令集,提供完整的容器生态支持。
本实验场景无需深奥的AI背景知识,只要了解基本的Linux基础知识,能够使用命令行,就可以轻松完成本实验,体验大语言模型的对话能力,感受AIGC的魅力。
使用AI容器镜像的过程中,有任何疑问和建议,您可以加入钉钉群(群号33605007047)反馈,并获取技术支持。
背景知识
本场景主要涉及以下云产品和服务:
云服务器ECS
云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。一台云服务器ECS实例等同于一台虚拟服务器,内含CPU、内存、操作系统、网络配置、磁盘等基础的组件。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。
Alibaba Cloud Linux
Alibaba Cloud Linux是阿里云研发的稳定、安全、高性能的服务器操作系统,是目前阿里云上部署规模最大的操作系统之一,可以为用户应用部署在Web服务、云原生应用、大数据、数据库、AI等场景中提供系统软件维护、安全加固、性能优化、多架构支持、内核热补丁等操作系统服务。
阿里云AI容器镜像
阿里云AI容器镜像(Alibaba Cloud AI Containers 简称 AC2)是阿里云提供的对面向AI场景的系列容器镜像,通过提供开箱即用的AI应用环境,包括内置CUDA AI库、AI框架PyTorch,并结合阿里云基础设施进行性能优化、兼容性保障、稳定性保障,让用户可以在阿里云上全容器场景下有更好的使用体验。
前提条件
云起实验室将在您的账号下开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。
重要
本实验预计产生费用4.61/时,0.8元/G公网流量。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
进入实操前,请确保阿里云账号满足以下条件:
创建实验资源
在实验页面,勾选我已阅读并同意《阿里云云起实践平台服务协议》和我已授权阿里云云起实践平台创建、读取及释放实操相关资源后,单击开始实操。
创建资源需要5分钟左右的时间,请您耐心等待。
在云产品资源列表,您可以查看本场景涉及的云产品资源信息。

安全设置
资源创建完成后,为了保护您阿里云主账号上资源的安全,请您重置云服务器ECS的登录密码、设置安全组端口。
重置云服务器ECS的登录密码。
在云产品资源列表的ECS云服务器区域,单击管理。

在实例详情页签的基本信息区域,单击重置密码。

在重置实例密码对话框中,设置新密码和确认密码,重置密码的方式选择在线重置密码,配置SSH密码登录策略选择开启,单击确认修改。

返回如下结果,表示ECS实例root用户的登录密码重置成功。

设置安全组端口。
在云产品资源列表的安全组区域,单击管理。

在访问规则区域的入方向中,添加SSH(22)、HTTP(80)、HTTPS(443)和8000端口。

准备系统环境
首先需要添加系统组件,后续需要下载大模型与运行脚本。
在云产品资源列表的ECS云服务器区域,单击远程连接。

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

执行如下命令,安装Git等必备软件。
sudo dnf install -y git git-lfs wget
执行如下命令,安装Git LFS。
安装Docker
使用AC2需要首先设置Docker运行环境。在Alibaba Cloud Linux 3上可以通过以下步骤安装Docker。
执行如下命令,添加docker-ce软件源,并安装软件源兼容插件。
sudo dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo dnf install -y --repo alinux3-plus dnf-plugin-releasever-adapter
执行如下命令,安装Docker-CE。
sudo dnf install -y docker-ce
执行如下命令,检查Docker是否安装成功。
返回类似信息如下。

执行如下命令,启动Docker服务。
sudo systemctl start docker
执行如下命令,检查Docker服务运行情况。
sudo systemctl status docker
返回类似信息如下,表示Docker已正常启动,并设置开机自启。
说明
查看Docker服务运行情况后,您可使用Ctrl+C退出查看。

下载Qwen大模型与运行脚本
由于Qwen运行环境镜像中并不包含大模型权重与运行脚本,您需要预先下载到本地。
执行如下命令,下载Qwen-1.8B-Chat模型。
说明
模型下载耗时较长,终端可能会无响应,等待下载完毕即可恢复。
git clone https://www.modelscope.cn/qwen/Qwen-1_8B-Chat.git ~/Qwen-1_8B-Chat
执行如下命令,下载Qwen大模型运行脚本。
说明
脚本通过GitHub托管,若下载失败,请重新执行命令。
wget -O ~/qwen_web_demo.py https://raw.githubusercontent.com/QwenLM/Qwen/8c53f58a673f976f923fc71340b2220293b8052f/web_demo.py
执行如下命令,修改运行脚本,使用BF16精度加载模型,使用Intel AMX加速指令集。
grep "torch.bfloat16" qwen_web_demo.py 2>&1 >/dev/null || sed -i "54i\torch_dtype=torch.bfloat16," qwen_web_demo.py
创建大模型容器
Qwen系列镜像是Alibaba Cloud AI Containers(AC2)容器镜像服务推出的开箱即用大模型镜像。其中包含了运行Qwen系列大模型所需的所有依赖,包括Python运行环境、深度学习框架、模型权重文件以及依赖库。确保Qwen系列大模型能够高效、稳定地在不同环境下部署和服务。
下面将快速拉取AC2 Qwen运行环境镜像,并创建容器。
执行如下命令,拉取Qwen镜像。
sudo docker pull ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/qwen:runtime-pytorch2.2.0.1-alinux3.2304
执行如下命令,创建容器,并挂载本地模型文件以及运行脚本。该命令会以分离运行模式创建一个名为qwen的容器,并将本地模型目录与运行脚本挂载到容器中。
sudo docker run -itd --name qwen --net host \
-v $HOME/Qwen-1_8B-Chat:/models/Qwen-1_8B-Chat \
-v $HOME/qwen_web_demo.py:/app.py \
ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/qwen:runtime-pytorch2.2.0.1-alinux3.2304
进入容器运行脚本
接下来将进入容器环境,并运行大模型脚本。
执行如下命令,进入容器环境。
执行如下命令,执行运行脚本,指定模型路径以及监听主机名。
export GRADIO_ANALYTICS_ENABLED=False
python3 /app.py -c /models/Qwen-1_8B-Chat/ --server-name 0.0.0.0
返回如下结果,表示您已成功运行脚本。

与Qwen大模型对话
部署完毕后,在本机浏览器地址栏中,输入http://ECS实例公网IP:8000
访问服务。
成功部署后可以通过网页Demo与大模型进行对话。您可以在Input输入框中输入您想问的问题,比如“你好,你是谁?”,然后单击Submit (发送),大模型会实时回答输入的问题。
