在GPU的实例上部署vLLM镜像后,可以帮助您快速且方便地构建大语言模型(例如Llama模型、ChatGLM模型、百川Baichuan模型或通义千问Qwen模型)的推理环境,主要应用在智能对话系统、文本分类或分析等自然语言处理业务场景,您无需深入了解底层硬件,也无需额外配置即可开箱即用。本文为您介绍如何在GPU实例上使用vLLM容器镜像来快速构建大语言模型的推理服务。
vLLM是一个开源的大语言模型的推理框架,与HuggingFace模型无缝集成,将vLLM打包成vLLM镜像后,可以快速且方便地构建大语言模型推理服务,更多信息,请参见vLLM。
准备工作
获取vLLM容器镜像详细信息,以便您在GPU实例上部署该容器镜像时使用。例如,创建GPU实例时需要提前了解容器镜像适用的GPU实例类型,拉取容器镜像时需要提前获取镜像地址等信息。
登录容器镜像服务控制台。
在左侧导航栏,单击制品中心。
在仓库名称搜索框,搜索
vllm
,并选择目标镜像egs/vllm
。vLLM容器镜像大概每3个月内更新一次。镜像列表详情如下所示:
镜像名称
组件信息
镜像地址
适用的GPU实例
vLLM
vLLM:0.4.0.post1
Python:3.10
PyTorch:2.1.2
CUDA:12.1.1
cuDNN:8.9.0.131
基础镜像:Ubuntu 22.04
egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.4.0.post1-pytorch2.1.2-cuda12.1.1-cudnn8-ubuntu22.04
vLLM镜像仅支持以下GPU实例规格族选择,更多信息,请参见GPU计算型(gn系列)。
gn6e、ebmgn6e
gn7i、ebmgn7i、ebmgn7ix
gn7e、ebmgn7e、ebmgn7ex
vLLM
vLLM:0.5.4
Python:3.10
PyTorch:2.4.0
CUDA:12.4.1
基础镜像:Ubuntu 22.04
egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.5.4-pytorch2.4.0-cuda12.4.1-ubuntu22.04
操作步骤
本操作以Ubuntu 20.04操作系统的gn7i实例规格为例。
创建GPU实例并安装Tesla驱动。
具体操作,请参见创建GPU实例。
在GPU实例上使用vLLM容器镜像,需要提前在该实例上安装Tesla驱动且驱动版本应为535或更高,建议您通过ECS控制台购买GPU实例时,同步选中安装GPU驱动。
说明GPU实例创建完成后,会同时自动安装Tesla驱动、CUDA、cuDNN库等,相比手动安装方式更快捷。
远程连接GPU实例。
具体操作,请参见通过密码或密钥认证登录Linux实例。
执行以下命令,安装Docker环境。
sudo apt-get update sudo apt-get -y install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io
执行以下命令,检查Docker是否安装成功。
docker -v
如下图回显信息所示,表示Docker已安装成功。
执行以下命令,安装nvidia-container-toolkit。
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update sudo apt-get install -y nvidia-container-toolkit
设置Docker开机自启动并重启Docker服务。
sudo systemctl enable docker sudo systemctl restart docker
执行以下命令,查看Docker是否已启动。
sudo systemctl status docker
如下图回显所示,表示Docker已启动。
执行以下命令,拉取vLLM镜像。
说明拉取vLLM镜像大约需要30分钟左右,请您耐心等待。
sudo docker pull <vLLM镜像地址>
请将代码中的
<vLLM镜像地址>
替换为您在准备工作中获取的vLLM镜像地址,示例如下:sudo docker pull egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.4.0.post1-pytorch2.1.2-cuda12.1.1-cudnn8-ubuntu22.04
执行以下命令,运行vLLM容器。
sudo docker run -d -t --net=host --gpus all \ --privileged \ --ipc=host \ --name vllm \ -v /root:/root \ egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm:0.4.0.post1-pytorch2.1.2-cuda12.1.1-cudnn8-ubuntu22.04
测试验证
本测试以Llama-2-7b模型为例,展示使用vLLM的推理效果。
执行以下命令,下载modelscope格式的Llama-2-7b模型。
sudo su cd /root git-lfs clone https://www.modelscope.cn/shakechen/Llama-2-7b-hf.git
执行以下命令,进入vLLM容器。
docker exec -it vllm bash
执行以下命令,测试vLLM的推理效果。
python3 /workspace/demo/vllm_demo.py
例如可以快速地处理对话问答任务,推理示例如下: