Docker Model Runner 集成 vLLM 实现高吞吐量推理
扩展 Docker Model Runner 的能力
今天,我们激动地宣布,Docker Model Runner 现已集成 vLLM 推理引擎和 safetensors 模型,让您能够使用已有的 Docker 工具实现高吞吐量的人工智能推理。
当我们最初推出 Docker Model Runner 时,我们的目标是让开发者能够使用 Docker 简单地运行和实验大型语言模型 (LLM)。从第一天起,我们就将其设计为可集成多个推理引擎,从 llama.cpp 开始,以便于在任何地方轻松运行模型。
现在,我们正在这一征程上迈出下一步。通过集成 vLLM,您可以将 AI 工作负载从低端扩展到高端 Nvidia 硬件,而无需离开您的 Docker 工作流。
为什么选择 vLLM?
vLLM 是一款高吞吐量的开源推理引擎,旨在高效地、大规模地服务于大型语言模型。由于其在吞吐量、延迟和内存效率方面的卓越表现,它在业界被广泛用于部署生产级别的 LLM。
以下是 vLLM 的突出优势:
- 优化的性能:使用 PagedAttention,这是一种先进的注意力算法,可最大限度地减少内存开销并最大化 GPU 利用率。
- 可扩展的服务:原生支持批处理请求和流式输出,非常适合交互式和高流量的 AI 服务。
- 模型灵活性:与流行的开源权重模型(如 GPT-OSS、Qwen3、Mistral、Llama 3 等)以及其他 safetensors 格式的模型无缝协作。
通过将 vLLM 引入 Docker Model Runner,我们正在弥合快速本地实验与稳健生产推理之间的差距。
vLLM 如何工作
使用 Docker Model Runner 运行 vLLM 模型非常简单,只需安装后端并运行您的模型,无需特殊设置。
安装带有 vLLM 后端的 Docker Model Runner
docker model install-runner --backend vllm --gpu cuda
安装完成后,您就可以立即开始使用
docker model run ai/smollm2-vllm "Can you read me?"
Sure, I am ready to read you.
或通过 API 访问
curl --location 'https://:12434/v1/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
"model": "ai/smollm2-vllm",
"messages": [
{
"role": "user",
"content": "Can you read me?"
}
]
}'
请注意,HTTP 请求或 CLI 命令中没有提及 vLLM。
这是因为 Docker Model Runner 会根据您使用的模型自动将请求路由到正确的推理引擎,确保无论您使用 llama.cpp 还是 vLLM 都能获得无缝的体验。
为何需要多个推理引擎?
直到现在,开发者不得不在简单性和性能之间做出选择。您要么可以轻松地运行模型(使用像 Docker Model Runner 搭配 llama.cpp 这样的简化便携工具),要么可以实现最大吞吐量(使用像 vLLM 这样的框架)。
现在,Docker Model Runner 两者兼得。
您可以:
- 使用 llama.cpp 在本地进行原型设计。
- 使用 vLLM 扩展到生产环境。
始终使用相同且一致的 Docker 命令、CI/CD 工作流和部署环境。
这种灵活性使 Docker Model Runner 成为行业首创——没有其他工具能让您在单个、可移植、容器化的工作流中切换多个推理引擎。
通过将这些引擎统一到一个界面下,Docker 正在使 AI 真正实现可移植,从笔记本电脑到集群,无所不包。
Safetensors (vLLM) vs. GGUF (llama.cpp):选择正确的格式
随着 vLLM 的加入,Docker Model Runner 现在兼容两种最主流的开源模型格式:Safetensors 和 GGUF。虽然 Model Runner 简化了引擎设置的复杂性,但了解这些格式之间的差异有助于为您的基础设施选择合适的工具。
- GGUF (GPT-Generated Unified Format):作为 llama.cpp 的原生格式,GGUF 专为高可移植性和量化而设计。它非常适合在内存带宽有限的商用硬件上运行模型。它将模型架构和权重打包到单个文件中。
- Safetensors:作为 vLLM 的原生格式和现代高端推理的标准,safetensors 专为高吞吐量性能而构建。
Docker Model Runner 会智能地路由您的请求:如果您拉取一个 GGUF 模型,它会使用 llama.cpp;如果您拉取一个 safetensors 模型,它会利用 vLLM 的强大功能。借助 Docker Model Runner,这两种格式都可以作为 OCI 镜像推送到任何 OCI 镜像仓库或从中拉取。
Docker Hub 上兼容 vLLM 的模型
vLLM 模型采用 safetensors 格式。Docker Hub 上一些早期的 safetensors 模型包括:
现已可用:x86_64 搭配 Nvidia
我们的初始版本针对运行 x86_64 架构和 Nvidia GPU 的系统进行了优化并已可用。我们的团队致力于在该平台上创造坚如磐石的体验,我们相信您会感受到其中的不同。
未来计划
这次发布仅仅是个开始。我们的 vLLM 路线图专注于两个关键领域:扩展平台支持和持续的性能调优。
- WSL2/Docker Desktop 兼容性:我们知道,一个无缝的“内部循环”对开发者至关重要。我们正在积极努力通过 WSL2 将 vLLM 后端引入 Windows。这将使您能够使用与 Linux 环境中相同的工作流,在 Docker Desktop 上构建、测试和原型化高吞吐量 AI 应用程序,首先从 Nvidia Windows 机器开始。
- DGX Spark 兼容性:我们正在为不同类型的硬件优化 Docker Model Runner。我们正在努力增加对 Nvidia DGX 系统的兼容性。
- 性能优化:我们也在积极寻找可以改进的领域。虽然 vLLM 提供了惊人的吞吐量,但我们认识到其启动时间目前比 llama.cpp 慢。这是我们希望在未来的增强功能中优化的一个关键领域,以改善“首个令牌生成时间”,从而加快快速开发周期。
感谢您在我们成长过程中的支持和耐心。
您如何参与
Docker Model Runner 的力量在于其社区,并且总有成长的空间。我们需要您的帮助,使这个项目尽善尽美。要参与进来,您可以:
- 为代码仓库点赞 (Star):通过为 Docker Model Runner 代码仓库点赞来表示您的支持,并帮助我们获得更多关注。
- 贡献您的想法:有关于新功能或错误修复的想法吗?创建一个 issue 来进行讨论。或者 fork 代码仓库,进行修改,然后提交一个 pull request。我们期待看到您的想法!
- 广而告之:告诉您的朋友、同事以及任何可能对使用 Docker 运行 AI 模型感兴趣的人。
我们对 Docker Model Runner 的新篇章感到无比兴奋,并迫不及待地想看看我们能共同创造出什么。让我们开始行动吧!