Files
2026-07-13 10:47:48 +00:00

10 KiB
Raw Permalink Blame History

Note

本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。

🦾 OpenLLM:轻松自托管 LLM

License: Apache-2.0 Releases CI X Community

OpenLLM 让开发者只需一条命令,即可将任意开源 LLMLlama 3.3、Qwen2.5、Phi3 及更多)或自定义模型作为兼容 OpenAI 的 API 运行。它提供内置聊天 UI、最先进的推理后端,以及通过 Docker、Kubernetes 和 BentoCloud 创建企业级云部署的简化工作流。

了解 OpenLLM 的设计理念.

快速开始

运行以下命令安装 OpenLLM 并交互式探索。

pip install openllm  # or pip3 install openllm
openllm hello

hello

支持的模型

OpenLLM 支持广泛的最先进开源 LLM。你也可以添加模型仓库以运行自定义模型 并在 OpenLLM 中使用。

模型 参数量 所需 GPU 启动服务
deepseek r1-671b 80Gx16 openllm serve deepseek:r1-671b
gemma2 2b 12G openllm serve gemma2:2b
gemma3 3b 12G openllm serve gemma3:3b
jamba1.5 mini-ff0a 80Gx2 openllm serve jamba1.5:mini-ff0a
llama3.1 8b 24G openllm serve llama3.1:8b
llama3.2 1b 24G openllm serve llama3.2:1b
llama3.3 70b 80Gx2 openllm serve llama3.3:70b
llama4 17b16e 80Gx8 openllm serve llama4:17b16e
mistral 8b-2410 24G openllm serve mistral:8b-2410
mistral-large 123b-2407 80Gx4 openllm serve mistral-large:123b-2407
phi4 14b 80G openllm serve phi4:14b
pixtral 12b-2409 80G openllm serve pixtral:12b-2409
qwen2.5 7b 24G openllm serve qwen2.5:7b
qwen2.5-coder 3b 24G openllm serve qwen2.5-coder:3b
qwq 32b 80G openllm serve qwq:32b

完整模型列表请参阅 OpenLLM 模型仓库.

启动 LLM 服务

要在本地启动 LLM 服务,请使用 openllm serve 命令并指定模型版本。

Note

OpenLLM 不存储模型权重。访问受限(gated)模型需要 Hugging Face 令牌(HF_TOKEN)。

  1. 此处. 创建你的 Hugging Face 令牌
  2. 申请受限模型的访问权限,例如 meta-llama/Llama-3.2-1B-Instruct.
  3. 通过运行以下命令将令牌设置为环境变量:
    export HF_TOKEN=<your token>
    
openllm serve llama3.2:1b

服务将在 http://localhost:3000, 处可用,提供兼容 OpenAI 的 API 用于交互。你可以使用支持兼容 OpenAI API 的不同框架和工具调用端点。通常,你可能需要指定以下内容:

  • API 主机地址:默认情况下,LLM 托管于 http://localhost:3000.
  • 模型名称: 名称可能因你使用的工具而异。
  • API 密钥:用于客户端身份验证的 API 密钥。此项为可选。

以下是一些示例:

OpenAI Python 客户端
from openai import OpenAI

client = OpenAI(base_url='http://localhost:3000/v1', api_key='na')

# Use the following func to get the available models
# model_list = client.models.list()
# print(model_list)

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_bese="http://localhost:3000/v1", model="meta-llama/Llama-3.2-1B-Instruct", api_key="dummy")
...

聊天 UI

OpenLLM 在 /chat 端点为 http://localhost:3000/chat. 上启动的 LLM 服务提供聊天 UI。

openllm_ui

在 CLI 中与模型对话

要在 CLI 中开始聊天对话,请使用 openllm run 命令并指定模型版本。

openllm run llama3:8b

模型仓库

OpenLLM 中的模型仓库表示你可运行的可用 LLM 目录。OpenLLM 提供默认模型仓库,包含 Llama 3、Mistral 和 Qwen2 等最新开源 LLM,托管于此 GitHub 仓库. 要查看默认仓库及任何已添加仓库中的所有可用模型,请运行:

openllm model list

为确保本地模型列表与所有已连接仓库的最新更新同步,请运行:

openllm repo update

要查看模型信息,请运行:

openllm model get llama3.2:1b

向默认模型仓库添加模型

你可以通过添加他人可使用的新模型来为默认模型仓库做贡献。这涉及创建并提交 LLM 的 Bento。更多信息请参阅此示例拉取请求.

设置自定义仓库

你可以将包含自定义模型的自有仓库添加到 OpenLLM。为此,请遵循默认 OpenLLM 模型仓库的格式,使用 bentos 目录存储自定义 LLM。你需要使用 BentoML 构建 Bentos 并将其提交到你的模型仓库。

首先,按照 BentoML 构建 Bentos 指南. 在 bentos 目录中准备自定义模型。可参考默认模型仓库 示例,并阅读开发者指南 了解详情。

接下来,在 OpenLLM 中注册你的自定义模型仓库:

openllm repo add <repo-name> <repo-url>

注意:目前,OpenLLM 仅支持添加公开仓库。

部署到 BentoCloud

OpenLLM 支持通过 BentoML(统一模型服务框架)和 BentoCloud(面向企业 AI 团队的 AI 推理平台)进行 LLM 云端部署。BentoCloud 提供针对 LLM 推理优化的全托管基础设施,具备自动扩缩容、模型编排、可观测性等众多功能,让你能够在云端运行任意 AI 模型。

注册 BentoCloud 免费账号,并登录. 然后运行 openllm deploy 将模型部署到 BentoCloud

openllm deploy llama3.2:1b --env HF_TOKEN

Note

如果你正在部署受限(gated)模型,请确保在环境变量中设置 HF_TOKEN。

部署完成后,你可以在 BentoCloud 控制台运行模型推理:

bentocloud_ui

社区

OpenLLM 由 BentoML 团队积极维护。欢迎与我们联系,加入我们一起让 LLM 更易获取、更易使用的努力 👉 加入我们的 Slack 社区!

贡献

作为开源项目,我们欢迎各类贡献,例如新功能、缺陷修复和文档改进。以下是一些贡献方式:

致谢

本项目使用了以下开源项目:

我们感谢这些项目的开发者和贡献者所付出的辛勤工作与奉献。