> 技术文档 > 开源模型应用落地-从源代码构建和运行vLLM-以满足您更高的需求_vllm docker镜像

开源模型应用落地-从源代码构建和运行vLLM-以满足您更高的需求_vllm docker镜像


一、前言

通过vLLM源码构建Docker镜像有诸多显著的好处。首先,源码构建能够确保我们使用的是最新的功能,避免版本不一致带来的问题。其次,自定义构建过程使能够根据特定需求优化镜像,比如去除不必要的依赖或者添加自定义配置,从而提高镜像的性能和安全性。此外,Docker容器化的特性使得部署更加灵活,简化了环境隔离与管理,开发人员可以在任何支持Docker的平台上快速复现相同的运行环境,确保开发和生产的一致性。最后,借助Docker的版本控制和可复制性,可以更轻松地追踪和回滚到先前的镜像版本,这在进行调试和测试时尤为重要。


二、术语

2.1. Docker

是一个开源的容器化平台,允许开发者将应用及其依赖打包成轻量级、可移植的容器。这些容器可以在任何支持 Docker 的环境中运行,从而确保应用在不同环境中的一致性。Docker 提供了简化的开发、测试和部署流程,使得应用的交付更加高效和灵活,同时也支持微服务架构的实现。通过隔离和资源管理,Docker 使得应用的扩展和维护变得更加便捷。

2.2. hub.docker.com

是 Docker 官方的容器镜像库和共享平台,用户可以在此存储、分享和管理 Docker 镜像。它提供了一个简单易用的界面,开发者可以通过该平台上传自己的镜像,或从中拉取公共镜像以用于项目开发。

2.3. vLLM

vLLM是一个开源的大模型推理加速框架,通过PagedAttention高效地管理attention中缓存的张量,实现了比HuggingFace Transformers高14-24倍的吞吐量。


三、前提条件

3.1. 基础环境及前置条件

1)操作系统:centos7

2)Tesla V100-SXM2-32GB CUDA Version: 12.2

3.2. Docker安装

1. 更新系统,确保你的系统是最新的:

sudo yum update -y

执行结果:
Last metadata expiration check: 2:32:22 ago on Sun 06 Oct 2024 09:48:43 AM CST.
Dependencies resolved.
Nothing to do.
Complete!

2. 安装必要的依赖:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

执行结果:
Installed:
device-mapper-event-8:1.02.177-10.el8.x86_64 device-mapper-event-libs-8:1.02.177-10.el8.x86_64 device-mapper-persistent-data-0.9.0-4.el8.x86_64 libaio-0.3.112-1.el8.x86_64 lvm2-8:2.03.12-10.el8.x86_64
lvm2-libs-8:2.03.12-10.el8.x86_64

Complete!

3. 设置Docker仓库:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

执行结果:

Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo

4. 安装 Docker:

sudo yum install -y docker-ce docker-ce-cli containerd.io

5. 启动Docker服务,并设置为开机自启:

sudo systemctl start dockersudo systemctl enable docker

6. 验证 Docker 安装:

sudo docker run hello-world

如果看到 \"Hello from Docker!\" 的消息,说明 Docker 安装成功。

7. (可选)将用户添加到Docker组:
如果你希望以非 root 用户身份运行 Docker 命令,可以将用户添加到 Docker 组:

sudo usermod -aG docker $USER

添加后,注销并重新登录,或者运行 `newgrp docker` 使更改生效。

3.3. 下载vLLM源码

Tags · vllm-project/vllm · GitHubA high-throughput and memory-efficient inference and serving engine for LLMs - Tags · vllm-project/vllm