Docker Model Runner 集成 vLLM 实现高吞吐量推理

6 分钟阅读
Docker 团队

扩展 Docker Model Runner 的功能

今天,我们很高兴地宣布 Docker Model Runner 现已集成 vLLM 推理引擎和 safetensors 模型,让您能够使用熟悉的 Docker 工具实现高吞吐量的 AI 推理。

当我们首次推出 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) 与 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 模型:

现已推出:支持 Nvidia 的 x86_64 架构

我们的初步版本已针对运行 Nvidia GPU 的 x86_64 系统进行了优化。我们的团队致力于在此平台上打造稳如磐石的体验,我们相信您会感受到其中的差异。

下一步是什么?

此次发布仅仅是个开始。我们的 vLLM 路线图聚焦于两个关键领域:扩展平台访问权限和持续的性能调优。

  • WSL2/Docker Desktop 兼容性:我们深知无缝的“内部循环”对于开发者至关重要。我们正积极致力于通过 WSL2 将 vLLM 后端引入 Windows。这将允许您在 Windows 的 Nvidia 机器上,使用与 Linux 环境完全相同的工作流,在 Docker Desktop 中构建、测试和原型设计高吞吐量的 AI 应用。
  • DGX Spark 兼容性:我们正在针对不同类型的硬件优化 Docker Model Runner。我们正致力于增加对 Nvidia DGX 系统的兼容性。
  • 性能优化:我们也在积极跟踪改进领域。虽然 vLLM 提供了极高的吞吐量,但我们认识到其启动时间目前比 llama.cpp 慢。这是我们在未来增强功能中重点优化的领域,旨在缩短“首个 Token 时间”,以加快开发周期。

感谢您在我们成长过程中的支持与耐心。

如何参与

Docker Model Runner 的力量源于其社区,且始终有成长的空间。我们需要您的帮助,让这个项目变得更好。若想参与其中,您可以:

  • Star 仓库:通过为 Docker Model Runner 仓库 加星,表达您的支持并帮助我们提高可见度。
  • 贡献您的想法:有新功能或 Bug 修复的想法吗?创建一个 Issue 进行讨论。或者 Fork 仓库、进行修改并提交 Pull Request。我们期待看到您的创意!
  • 传播信息:告诉您的朋友、同事以及任何可能对使用 Docker 运行 AI 模型感兴趣的人。

我们对 Docker Model Runner 的这个新篇章感到无比兴奋,迫不及待地想看到我们能共同构建什么。让我们开始吧!