vLLM Docker镜像是基于vLLM项目构建的容器化解决方案,专注于大语言模型(LLM)的高效推理与服务部署。vLLM项目起源于加州大学伯克利分校Sky Computing实验室,现为PyTorch基金会托管项目,以高性能、低资源消耗、易用性为核心优势,通过创新的内存管理和计算优化技术,实现LLM服务的高吞吐量和低延迟。
主要用途:
/v1/completions、/v1/chat/completions),便于现有系统集成。适用于需要处理大量并发请求的场景(如聊天机器人、智能客服),通过连续批处理和PagedAttention实现高GPU利用率。
通过量化技术(如INT4/INT8)和内存优化,在显存有限的硬件(如消费级GPU)中运行大模型。
支持多模态模型(如LLaVA)和混合专家模型(如Mixtral),满足复杂任务需求(如图文理解、多领域知识融合)。
可在NVIDIA GPU(主流场景)、AMD GPU/CPU(低成本替代方案)、Intel x86架构(边缘设备)等环境中部署,降低硬件依赖。
提供简洁的接口和配置方式,便于快速验证模型性能、测试新量化方案或推理优化技术。
通过docker run直接启动vLLM服务,示例如下(以Llama-2-7b模型为例):
bashdocker run -it --gpus all \ -p 8000:8000 \ -e MODEL_PATH="meta-llama/Llama-2-7b-hf" \ vllm/vllm:latest \ serve \ --model ${MODEL_PATH} \ --port 8000 \ --host 0.0.0.0 \ --max-num-seqs 256 \ --quantization awq # 可选,如使用量化模型
--gpus all:启用所有GPU(仅NVIDIA环境)。-p 8000:8000:映射容器端口8000到主机,用于API访问。MODEL_PATH:指定模型路径,支持Hugging Face Hub模型ID(自动下载)或本地路径(需通过-v挂载)。serve:启动vLLM API服务模式。--model:模型路径或Hugging Face Hub ID。--port/--host:API服务端口和绑定地址。--max-num-seqs:最大并发序列数(控制批处理大小)。--quantization:量化方式(如awq、gptq、int4、int8,需模型支持)。若模型存储在本地路径/path/to/local/model,通过-v挂载到容器中:
bashdocker run -it --gpus all \ -p 8000:8000 \ -v /path/to/local/model:/app/model \ vllm/vllm:latest \ serve \ --model /app/model \ --port 8000 \ --host 0.0.0.0
创建docker-compose.yml文件,定义服务配置(以多GPU分布式推理为例):
yamlversion: '3.8' services: vllm-service: image: vllm/vllm:latest runtime: nvidia # 或使用deploy.resources.device_requests(Docker 23.0+) ports: - "8000:8000" environment: - MODEL_PATH=mistralai/Mixtral-8x7B-Instruct-v0.1 - CUDA_VISIBLE_DEVICES=0,1 # 指定使用GPU 0和1(分布式推理) command: > serve --model ${MODEL_PATH} --port 8000 --host 0.0.0.0 --tensor-parallel-size 2 # 张量并行度(需与GPU数量匹配) --max-batch-size 64 --quantization gptq --streaming # 启用流式输出 volumes: - ./cache:/root/.cache/huggingface/hub # 挂载模型缓存目录,避免重复下载 restart: unless-stopped
启动服务:
bashdocker-compose up -d
| 参数名 | 说明 | 示例值 |
|---|---|---|
--model | 模型路径(Hugging Face Hub ID或本地路径) | meta-llama/Llama-2-7b-hf |
--port | API服务端口 | 8000 |
--host | 绑定地址(0.0.0.0表示允许外部访问) | 0.0.0.0 |
--quantization | 量化方式(需模型支持) | awq、gptq、int4、fp8 |
--tensor-parallel-size | 张量并行度(分布式推理时GPU数量) | 2(使用2张GPU) |
--max-batch-size | 最大批处理大小(控制GPU内存占用) | 64 |
--max-num-seqs | 最大并发序列数 | 256 |
--streaming | 启用流式输出(SSE) | (无需值,添加即启用) |
--openai-api-compatible | 启用OpenAI兼容API(支持/v1/completions等端点) | (无需值,添加即启用) |
| 环境变量名 | 说明 | 示例值 |
|---|---|---|
CUDA_VISIBLE_DEVICES | 指定可用GPU(逗号分隔ID) | 0,1(仅使用GPU 0和1) |
MODEL_PATH | 模型路径(可替代--model参数,通过环境变量传递) | /app/model |
HUGGINGFACE_HUB_CACHE | Hugging Face模型缓存目录(避免重复下载) | /root/.cache/huggingface/hub |
服务启动后,可通过HTTP请求验证API是否正常工作(以OpenAI兼容API为例):
bashcurl http://localhost:8000/v1/completions \ -H "Content-Type: application/json" \ -d '{ "model": "meta-llama/Llama-2-7b-hf", "prompt": "Hello, world!", "max_tokens": 50 }'
若返回包含生成文本的JSON响应,表明服务部署成功。
-v ./cache:/root/.cache/huggingface/hub),或提前通过huggingface-cli download下载模型到本地后挂载。--quantization int4/awq)、减小--max-batch-size或--max-num-seqs,或使用分布式推理(--tensor-parallel-size)拆分模型到多GPU。vllm/vllm:amd-latest),并通过HIP_VISIBLE_DEVICES指定设备,启动命令中无需--gpus参数。--streaming参数,且客户端支持SSE(如使用curl -N或浏览器EventSource API)。来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429