🦾 OpenLLM:轻松自托管大模型
OpenLLM 允许开发者通过一条命令运行任何开源大模型(如 Llama 3.1、Qwen2、Phi3 以及更多)或自定义模型,并以OpenAI 兼容 API的形式提供服务。它具有内置的聊天界面、先进的推理后端,并简化了使用 Docker、Kubernetes 和 BentoCloud 创建企业级云部署的工作流程。
了解 OpenLLM 的设计理念。
快速开始
运行以下命令以安装 OpenLLM 并进行交互探索。
pip install openllm # 或 pip3 install openllm
openllm hello
支持的模型
OpenLLM 支持广泛的先进开源大模型。你也可以添加一个模型库来运行自定义模型。
模型 | 参数数量 | 量化 | 所需 GPU | 启动服务器命令 |
---|---|---|---|---|
Llama 3.1 | 8B | - | 24G | openllm serve llama3.1:8b |
Llama 3.1 | 8B | AWQ 4bit | 12G | openllm serve llama3.1:8b-4bit |
Llama 3.1 | 70B | AWQ 4bit | 80G | openllm serve llama3.1:70b-4bit |
Llama 2 | 7B | - | 16G | openllm serve llama2:7b |
Llama 2 | 7B | AWQ 4bit | 12G | openllm serve llama2:7b-4bit |
Mistral | 7B | - | 24G | openllm serve mistral:7b |
Qwen2 | 1.5B | - | 12G | openllm serve qwen2:1.5b |
Gemma | 7B | - | 24G | openllm serve gemma:7b |
Phi3 | 3.8B | - | 12G | openllm serve phi3:3.8b |
...
完整模型列表请参见 OpenLLM 模型库。
启动 LLM 服务器
要在本地启动 LLM 服务器,请使用 openllm serve
命令并指定模型版本。
openllm serve llama3:8b
服务器将在 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')
# 使用以下函数获取可用模型
# model_list = client.models.list()
# print(model_list)
chat_completion = client.chat.completions.create(
model="meta-llama/Meta-Llama-3-8B-Instruct",
messages=[
{
"role": "user",
"content": "用简单的方式解释超导体"
}
],
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/Meta-Llama-3-8B-Instruct", api_key="dummy")
...
聊天界面
OpenLLM 在启动的 LLM 服务器上提供 /chat
端点的聊天界面,访问地址为 http://localhost:3000/chat。
在 CLI 中与模型聊天
要在 CLI 中开始聊天对话,请使用 openllm run
命令并指定模型版本。
openllm run llama3:8b
模型库
OpenLLM 中的模型库表示可运行的大模型目录。OpenLLM 提供了一个默认的模型库,其中包含最新的开源大模型,如 Llama 3、Mistral 和 Qwen2,托管在 此 GitHub 库中。要查看默认和添加的库中的所有可用模型,请使用:
openllm model list
要确保本地的模型列表与所有连接库的最新更新同步,请运行:
openllm repo update
要查看模型的信息,请运行:
openllm model get llama3:8b
向默认模型库添加模型
你可以通过添加其他用户可使用的新模型来为默认模型库做贡献。这涉及到创建并提交一个 LLM 的 Bento。更多信息,请查看此示例 PR。
设置自定义库
你可以将自己的模型库添加到 OpenLLM 中,以包含自定义模型。为此,请遵循默认 OpenLLM 模型库的格式,在 bentos
目录中存储自定义大模型。你需要使用 BentoML 构建 Bentos并将它们提交到你的模型库中。
首先,按照 BentoML 提供的指南在 bentos
目录中准备你的自定义模型。查看默认模型库中的示例,并阅读开发者指南了解详情。
然后,将你的自定义模型库注册到 OpenLLM: