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 等) |
坑与注意
- 不存储权重:首次启动需要联网下载模型,首次可能很慢
- 受限模型需要权限:Llama、DeepSeek 等受限模型需在 HuggingFace 单独申请访问
- 显存要求高:大模型(70B+)需要多卡 GPU,单卡无法加载
- 基础推理优化:OpenLLM 默认使用基础推理后端,大流量场景性能不如 vLLM/TGI
- API Key 认证简单:本地部署使用
'na'或'dummy'作为 key,生产环境需自行加一层认证 - 模型名称映射:API 调用时的
model参数需与 HuggingFace 模型 ID 对应
与同类对比
| 工具 | 核心能力 | 私有化 | OpenAI 兼容 | 性能 | 成熟度 |
|---|---|---|---|---|---|
| OpenLLM | 一键起服务 | ✅ | ✅ | 中等 | 高 |
| Ollama | 本地模型运行 | ✅ | ✅(部分) | 中等 | 高 |
| vLLM | 高性能推理 | ✅ | ❌ | 最高 | 高 |
| text-generation-webui | Web UI | ✅ | ✅(扩展) | 中等 | 高 |
| BentoML | 通用推理框架 | ✅ | 视情况 | 高 | 高 |
| Ollama + OpenAI proxy | 本地代理 | ✅ | ✅ | 中等 | 高 |
一句话推荐结论
OpenLLM 是自托管开源 LLM API 最简单的入门方案之一——一条命令就能把任意开源模型跑起来并暴露 OpenAI 兼容接口,对快速原型和私有化部署场景非常友好;但如果追求高吞吐量的生产推理,建议在其上叠加 vLLM 等推理优化层。