使用vllm docker容器部署大语言模型

说明

最近deepseek比较火,我在一台4卡4090的服务器上尝试部署了一下,记录下部署步骤。

安装过程

安卓docker和nvidia-container-toolkit

安装19.03版本以上的docker-ce即可。安装步骤参考清华docker源上的安装步骤:Docker CE 软件仓库

为了在docker中使用够显卡,需要安卓nvidia-container-toolkit。在线安装请参考英伟达的官方教程:Installing the NVIDIA Container Toolkit

但是如果你没科学上网,大概率无法下载nvidia-container-toolkit,因此也有离线安装的方法,大体思路就是在一个能连外网的服务器上先把包下好,再复制到要安装的服务器上。幸好有好心人已经传了一份到百度云盘上,现在下来安装即可,请参考: CentOS Docker NVIDIA环境离线安装。这篇文章提供的下载链接地址是:http://link.zhihu.com/?target=https%3A//pan.baidu.com/s/1zbVZCPQ833jCBYi7rsDwXA%3Fpwd%3Db0td

下载vllm的docker镜像

请到https://hub.docker.com/搜索最新的vllm镜像。比如我下载镜像的命令为:

shell 复制代码
docker pull vllm/vllm-openai:v0.7.2

因为防火墙的原因,很多人无法下载,请加上docker镜像网站的前缀来下载:

复制代码
docker pull docker.1ms.run/vllm/vllm-openai:v0.7.2

下载模型

下载模型可参考我之前的一篇博客:如何下载huggingface模型到本地

如果被墙阻挡了,请先设置huggingface的镜像再下载:

shell 复制代码
# 临时生效
export HF_ENDPOINT=https://hf-mirror.com
# 永久生效
echo export HF_ENDPOINT=https://hf-mirror.com >> ~/.bashrc

假设"deepseek-ai/DeepSeek-R1-Distill-Qwen-32B"被下载到了/mnt/llm_deploy/目录下,则模型的绝对路径是/mnt/llm_deploy/DeepSeek-R1-Distill-Qwen-32B,后面部署会用到这个目录

启动vllm服务

如果一切准备就绪,则可以启动vllm容器来启动服务:

shell 复制代码
docker run --runtime nvidia --gpus all \
     -v /mnt/llm_deploy/:/home/llm_deploy \
     -p 9000:8000 \
     --ipc=host \
     -d \
     --name vllm_deepseek_qwen32b \
     docker.1ms.run/vllm/vllm-openai:v0.7.2 \
     --model /home/llm_deploy/DeepSeek-R1-Distill-Qwen-32B \
     --tensor-parallel-size 4 \
     --max_model_len 60000

上面映射了目录/mnt/llm_deploy/到容器内部的/home/llm_deploy,则容器内看到的模型目录是/home/llm_deploy/DeepSeek-R1-Distill-Qwen-32B。所以后面--model后跟的就是这个路径。

外部端口9000映射到内部的8000端口,因为内部默认使用8000这个端口。

其他命令选项和直接启动vllm服务类似,可酌情添加。

简单测试

使用命令行简单测试,端口是9000,接口是openai api的接口风格。

shell 复制代码
curl http://localhost:9000/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "/home/llm_deploy/DeepSeek-R1-Distill-Qwen-32B",
        "messages": [
            {"role": "user", "content": "你是谁?"}
        ]
    }'
相关推荐
收获不止数据库2 小时前
达梦9发布会归来:AI 时代,我们需要一款什么样的数据库?
数据库·人工智能·ai·语言模型·数据分析
皮皮冰燃4 小时前
docker-18-WSL中安装docker并部署flask服务
docker·容器·flask
少年白char5 小时前
整理上万首音乐后的完整工作流:下载、刮削、播放与避坑指南
docker·nas·musictag·音乐刮削·音乐标签
木雷坞10 小时前
K8s GPU 推理服务 ImagePullBackOff 排查与预热
云原生·容器·kubernetes·gpu算力
萧行之12 小时前
Docker部署Loki+Grafana+Vector实现全服务器日志监控(含N8N/SSH/Fail2ban监控)
服务器·docker·grafana
人工智能培训13 小时前
工程科研中的AI应用:结构力学分析技巧
人工智能·深度学习·机器学习·docker·容器
计算机安禾13 小时前
【Linux从入门到精通】第35篇:容器化技术预备——Docker安装与基本概念
linux·运维·docker
子木HAPPY阳VIP14 小时前
信创UOS,Docker 完整操作部署(Dockerfile部署方式)&排错整合
linux·运维·redis·nginx·docker·容器·tomcat
AOwhisky14 小时前
Kubernetes调度与服务暴露:从“定时任务”到“服务发现”的完全指南
linux·运维·云原生·容器·kubernetes·服务发现
Cyber4K14 小时前
【Kubernetes专项】温故而知新,重温技术原理(6)
云原生·容器·kubernetes