bentoml/OpenLLM · 上手攻略

  • 仓库:bentoml/OpenLLM
  • 链接:https://github.com/bentoml/OpenLLM
  • 分类:AI 推理 · LLM 部署
  • 作者:Jay
  • 更新:2026-07-15

是什么

OpenLLM 是一个开源的 LLM 推理服务框架,让你用一条命令把任何开源大模型(Llama 3.3、Qwen2.5、Mistral、DeepSeek 等)启动为 OpenAI 兼容的 HTTP API,并自带一个 Web Chat UI。它基于 BentoML 构建,支持 Docker 部署和 BentoCloud 云端托管,适合需要自托管 LLM API 但不想写推理工程代码的团队。

解决什么问题

开源大模型越来越多,但把它们部署成稳定的生产级 API 并不简单: - 需要处理模型加载、量化、批量推理、流式输出 - 需要与现有应用(LangChain、LlamaIndex、OpenAI SDK)兼容 - 需要 GPU 管理和多模型切换

OpenLLM 的目标是:一条命令起一个模型服务,不需要写 Dockerfile 或推理代码。

快速安装

pip 安装(推荐)

pip install openllm
# 或
pip3 install openllm

hello 验证(不需要模型)

openllm hello

这个命令会验证安装是否正常,不需要下载任何模型权重。

核心用法

启动一个模型服务

# 启动 Llama 3.2 1B(需要 Hugging Face token)
export HF_TOKEN="your_huggingface_token_here"
openllm serve llama3.2:1b

服务启动后监听 http://localhost:3000,提供 OpenAI 兼容 API。

⚠️ OpenLLM 不存储模型权重,受限模型(如 Meta Llama)需要 HuggingFace token 和单独申请访问权限。

内置支持的模型(部分)

模型 参数量 所需显存 启动命令
deepseek r1-671b 671B 80G×16 openllm serve deepseek:r1-671b
llama3.3 70B 80G×2 openllm serve llama3.3:70b
qwen2.5 7B 24G openllm serve qwen2.5:7b
qwen2.5-coder 3B 24G openllm serve qwen2.5-coder:3b
mistral 8B-2410 24G openllm serve mistral:8b-2410
phi4 14B 80G openllm serve phi4:14b
gemma2 2B 12G openllm serve gemma2:2b
gemma3 3B 12G openllm serve gemma3:3b

📋 完整模型列表见 openllm-models

OpenAI Python SDK 调用

from openai import OpenAI

client = OpenAI(
    base_url='http://localhost:3000/v1',
    api_key='na'   # 本地部署无需真实 key
)

chat_completion = client.chat.completions.create(
    model="meta-llama/Llama-3.2-1B-Instruct",
    messages=[
        {"role": "user", "content": "Explain superconductors like I'm five years old"}
    ],
    stream=True,
)

for chunk in chat_completion:
    print(chunk.choices[0].delta.content or "", end="")

LlamaIndex 调用

from llama_index.llms.openai import OpenAI

llm = OpenAI(
    api_base="http://localhost:3000/v1",
    model="meta-llama/Llama-3.2-1B-Instruct",
    api_key="dummy"
)

Web Chat UI

服务启动后访问 http://localhost:3000/chat 即可在浏览器中与模型对话。

CLI 交互模式

# 直接在终端对话
openllm run llama3.2:1b

模型仓库管理

# 列出所有可用模型
openllm model list

# 同步最新模型列表
openllm repo update

# 查看指定模型详情
openllm model get llama3.2:1b

Docker 部署

# 构建 Bento
openllm build --model llama3.2:1b

# 用 BentoML 启动容器
bentoml serve .

云端部署(BentoCloud)

# 登录 BentoCloud
bentoml auth login

# 部署
openllm serve deepseek:r1-671b --platform bentoml

添加自定义模型仓库

# 添加自己的模型仓库
openllm repo add <repo-name> <repo-url>

目前仅支持公开仓库。

典型适用场景

场景 适合度
快速原型 AI 应用 ✅✅✅ 一条命令起服务
现有 OpenAI 应用切换到开源模型 ✅✅✅ 兼容 OpenAI API
私有化部署 LLM ✅✅ 自托管,不依赖第三方
多模型对比评测 ✅ 快速切换不同模型
生产级高并发推理 ⚠️ 需要额外优化(vLLM backend 等)

坑与注意

  1. 不存储权重:首次启动需要联网下载模型,首次可能很慢
  2. 受限模型需要权限:Llama、DeepSeek 等受限模型需在 HuggingFace 单独申请访问
  3. 显存要求高:大模型(70B+)需要多卡 GPU,单卡无法加载
  4. 基础推理优化:OpenLLM 默认使用基础推理后端,大流量场景性能不如 vLLM/TGI
  5. API Key 认证简单:本地部署使用 'na''dummy' 作为 key,生产环境需自行加一层认证
  6. 模型名称映射:API 调用时的 model 参数需与 HuggingFace 模型 ID 对应

与同类对比

工具 核心能力 私有化 OpenAI 兼容 性能 成熟度
OpenLLM 一键起服务 中等
Ollama 本地模型运行 ✅(部分) 中等
vLLM 高性能推理 最高
text-generation-webui Web UI ✅(扩展) 中等
BentoML 通用推理框架 视情况
Ollama + OpenAI proxy 本地代理 中等

一句话推荐结论

OpenLLM 是自托管开源 LLM API 最简单的入门方案之一——一条命令就能把任意开源模型跑起来并暴露 OpenAI 兼容接口,对快速原型和私有化部署场景非常友好;但如果追求高吞吐量的生产推理,建议在其上叠加 vLLM 等推理优化层。