OpenLLM 让开发者能够通过一条命令,将任何开源大语言模型(Llama 3.3、Qwen2.5、Phi3 及更多)或自定义模型作为 OpenAI 兼容的 API 运行。它具备内置聊天界面、先进的推理后端,并简化了使用 Docker、Kubernetes 和 BentoCloud 创建企业级云部署的工作流。
了解 OpenLLM 的设计理念。
运行以下命令安装 OpenLLM 并交互式地探索其功能。
pip install openllm # 或 pip3 install openllm
openllm hello
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 服务器,使用 openllm serve 命令并指定模型版本。
[!NOTE]
OpenLLM 不存储模型权重。对于需要授权的模型,需要提供 Hugging Face 令牌 (HF_TOKEN)。
- 在此处创建您的 Hugging Face 令牌。
- 申请访问需要授权的模型,例如 meta-llama/Llama-3.2-1B-Instruct。
- 通过运行以下命令将令牌设置为环境变量:
bash export HF_TOKEN=<your token>
openllm serve llama3.2:1b
服务器将在 http://localhost:3000 上可访问,提供 OpenAI 兼容的 API 进行交互。您可以使用支持 OpenAI 兼容 API 的各种框架和工具调用这些端点。通常,您可能需要指定以下内容:
以下是一些示例:
from openai import OpenAI
client = OpenAI(base_url='http://localhost:3000/v1', api_key='na')
# 使用以下函数获取可用模型
# 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="")
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")
...
OpenLLM 为启动的 LLM 服务器提供了一个聊天界面,位于 /chat 端点,地址为 http://localhost:3000/chat。
要在命令行界面中开始聊天对话,使用 openllm run 命令并指定模型版本。
openllm run llama3:8b
OpenLLM 中的模型仓库代表您可以运行的可用 LLM 目录。OpenLLM 提供了一个默认模型仓库,其中包含最新的开源 LLM,如 Llama 3、Mistral 和 Qwen2,托管在此 GitHub 仓库。要查看默认仓库和任何已添加仓库中的所有可用模型,请使用:
openllm model list
要确保您的本地模型列表与所有已连接仓库的最新更新同步,请运行:
openllm repo update
要查看模型的详细信息,请运行:
openllm model get llama3.2:1b
您可以通过添加其他人可以使用的新模型来为默认模型仓库做贡献。这涉及到创建并提交该 LLM 的 Bento。更多信息,请查看此示例拉取请求。
您可以向 OpenLLM 添加包含自定义模型的自己的仓库。为此,请遵循默认 OpenLLM 模型仓库的格式,使用一个 bentos 目录来存储自定义 LLM。您需要使用 BentoML 构建您的 Bento 并将其提交到您的模型仓库。
首先,按照 BentoML 构建 Bento 的指南,在 bentos 目录中准备您的自定义模型。查看默认模型仓库作为示例,并阅读开发者指南了解详情。
然后,向 OpenLLM 注册您的自定义模型仓库:
openllm repo add <repo-name> <repo-url>
注意:目前,OpenLLM 仅支持添加公共仓库。
OpenLLM 通过 BentoML(统一的模型服务框架)和 BentoCloud(面向企业 AI 团队的 AI 推理平台)支持 LLM 云部署。BentoCloud 提供完全托管的、针对 LLM 推理优化的基础设施,具备自动扩缩容、模型编排、可观测性等众多功能,让您可以在云端运行任何 AI 模型。
免费注册 BentoCloud 并登录。然后,运行 openllm deploy 将模型部署到 BentoCloud:
openllm deploy llama3.2:1b --env HF_TOKEN
[!NOTE]
如果您要部署需要授权的模型,请确保在环境变量中设置 HF_TOKEN。
部署完成后,您可以在 BentoCloud 控制台上运行模型推理:
OpenLLM 由 BentoML 团队积极维护。欢迎联系我们,并加入我们,共同致力于让 LLM 更易于访问和使用 👉 加入我们的 Slack 社区!
作为一个开源项目,我们欢迎各种形式的贡献,例如新功能、错误修复和文档改进。以下是一些参与贡献的方式:
本项目使用了以下开源项目:
我们感谢这些项目的开发者和贡献者们的辛勤工作和奉献。