本文聊天机器人为例,介绍如何使用Alibaba Cloud AI Containers(简称AC2)提供的AI容器镜像在Intel CPU上部署通义千问Qwen-7B-Chat。
背景信息
通义千问-7B(Qwen-7B)是阿里云研发的通义千问大模型系列的70亿参数规模模型。Qwen-7B是基于Transformer的大语言模型,在超大规模的预训练数据上进行训练得到。预训练数据类型多样,覆盖广泛,包括大量网络文本、专业书籍、代码等。同时,在Qwen-7B 的基础上,使用对齐机制打造了基于大语言模型的AI助手Qwen-7B-Chat。
步骤一:创建ECS实例
步骤二:创建Docker运行环境
安装Docker。
在Alibaba Cloud Linux 3上安装Docker可以参考安装Docker并使用(Linux)。
运行以下命令,确保Docker守护进程已经启用。
sudo systemctl status docker
运行以下命令,创建并运行PyTorch AI容器。
AC2提供了丰富的AI场景下的容器镜像,其中就包括针对Intel优化的PyTorch镜像,可以使用该镜像快速创建一个PyTorch运行环境。
sudo docker pull ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/pytorch:2.0.1-3.2304 sudo docker run -itd --name pytorch --net host -v $HOME/workspace:/workspace \ ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/pytorch:2.0.1-3.2304
步骤三:手动部署Qwen-7B-Chat
运行以下命令,进入容器环境。
sudo docker exec -it -w /workspace pytorch /bin/bash
后续命令需在容器环境中执行,如意外退出,请使用以上命令重新进入容器环境。您可以运行
cat /proc/1/cgroup | grep docker
命令查看当前环境是否为容器,如有回显信息则为容器环境。运行以下命令,安装配置软件。
yum install -y tmux git git-lfs wget
运行以下命令,启用Git LFS。
下载预训练模型需要Git LFS的支持。
git lfs install
下载源码与模型。
运行以下命令,创建一个tmux session。
tmux
说明下载预训练模型耗时较长,且成功率受网络情况影响较大,建议在tmux session中下载,以免ECS断开连接导致下载模型中断。
运行以下命令,下载Qwen-7B项目源码,以及预训练模型。
git clone https://github.com/QwenLM/Qwen.git git clone https://www.modelscope.cn/qwen/Qwen-7B-Chat.git qwen-7b-chat --depth=1
运行以下命令,查看当前目录。
ls -l
运行以下命令,部署运行环境。
AC2容器中,集成了众多的Python AI依赖组件,可以直接使用
yum
或dnf
安装Python运行依赖。yum install -y python3-{transformers{,-stream-generator},tiktoken,accelerate} python-einops
运行AI对话。
运行以下命令,修改模型加载参数。
在项目源码中提供了终端示例脚本,可以运行Qwen-7B-Chat模型实现本地聊天机器人。在运行脚本之前,需要修改模型加载参数,使用BF16精度加载,以利用CPU的AVX-512指令集进行加速。
cd /workspace/Qwen grep "torch.bfloat16" cli_demo.py 2>&1 >/dev/null || sed -i "57i\torch_dtype=torch.bfloat16," cli_demo.py
运行以下命令,启动聊天机器人。
cd /workspace/Qwen python3 cli_demo.py -c ../qwen-7b-chat --cpu-only
部署完成后可以通过在
User>
提示符处输入对话内容,就可以与Qwen-7B-Chat大模型进行实时对话。说明您可以运行
:exit
命令退出聊天机器人。