30 秒看懂
2023 年 6 月,Matthew Berman 演示安装 OpenLLM、为 OPT 和 Falcon 提供服务、测试生成与元数据端点以及打包模型。示例区分了 API 正常运行与模型回答质量。命令和功能可用性反映的是 2023 年演示的版本。
- 1在隔离环境中安装Berman 创建 Conda 环境,安装 OpenLLM 并检查 CLI。
- 2启动并测试本地服务器OPT 服务器通过浏览器界面提供生成和元数据端点。
- 3从 Python 调用模型一个简短的客户端向本地 HTTP 服务器发送查询;其质量不佳的回答说明了模型的局限。
- 4尝试 Falcon可选依赖使 Falcon 示例能够运行,其元数据端点标识出 Falcon 7B。
- 5构建 Bento演示展示了打包命令和模型变体的选择方式。
要点建议
- OpenLLM 为支持的开放模型提供服务器和 API 接口。
- 单独的 Python 环境有助于管理依赖。
- 即使 API 成功响应,模型仍可能给出质量不佳的答案。
- 不同模型系列可能需要额外的依赖。
- 打包模型是迈向部署的一步,但不等于完整的生产环境配置。
- 演示中的命令和计划功能属于历史信息,可能与当前版本不同。
按章节阅读整理后的全文
OpenLLM 与支持的模型
Berman 介绍该项目,并描述其 2023 年的集成和部署计划。
在这期 2023 年 6 月的教程中,我介绍 OpenLLM,这是一个旨在简化开放模型服务和应用构建的开源项目。它提供简单的 API,支持多个模型系列,并提供集成及部署选项。本教程中的命令和功能状态反映的是当时展示的版本,现在可能已经改变。
代码仓库列出的支持系列包括 StableLM、Falcon、Dolly、FLAN、ChatGLM 和 StarCoder。它介绍了 API 测试、与 BentoML 和 Hugging Face 生态的集成,以及打包服务器或通过 BentoCloud 部署的方法。微调被描述为即将推出,而不是我在此演示的功能。
安装并启动服务器
他创建 Conda 环境、安装软件包,并启动 OPT 服务器。
我首先创建一个名为 `ol`、使用 Python 3.11.3 的独立 Conda 环境,然后激活它,并通过 `pip install openllm` 安装 OpenLLM。隔离环境有助于避免依赖冲突。我运行 `openllm -h`,确认命令可用并查看其选项。
我使用 `openllm start opt` 启动默认的 OPT 示例。本地服务器运行后,我在 `localhost:3000` 打开它的文档界面。界面提供生成和元数据端点,也允许我不编写独立客户端就发送请求。
测试 API 和 Python 客户端
浏览器和简短 Python 脚本调用本地模型。返回内容展示了小模型的局限。
为了测试生成,我选择端点,在 JSON 请求内容中输入一个要求讲笑话的提示并执行。页面显示响应状态码及生成设置,例如最大新 token 数、最小长度和提前停止。服务器日志显示请求已经到达。

生成的回答不太连贯,我将其归因于示例中使用的小模型。API 调用成功说明服务调用链可以工作,但不能证明模型回答准确或有用。
接下来,我编写一个简短 Python 脚本,导入 `openllm`,为本地服务器创建 HTTP 客户端,发送查询并打印响应。演示中出现了关于 JSON 编码器的 BentoML 警告,但请求成功返回。它对“further”和“farther”的解释仍然不合逻辑,说明连通性与输出质量是两回事。

安装 Falcon 并打包模型
Berman 添加模型专用依赖、启动 Falcon,并演示打包和模型选择。
演示中的版本通过可选软件包支持额外模型。我打开第二个终端,激活同一环境,并使用 `pip install openllm[falcon]` 安装 Falcon 扩展。我提到首次尝试时缺少依赖;OpenLLM 报告了这些依赖,我分别安装后重新尝试。
我用 `openllm start falcon` 启动 Falcon 服务器。控制台提到了 einops、xformers 和 safetensors 等依赖,元数据端点将模型标识为 Falcon 7B。具体依赖和安装过程取决于模型及软件版本。

在部署方面,我演示了 `openllm build falcon`,为模型创建 Bento 软件包。我还解释,可以在启动服务器时通过模型 ID 选择特定变体。教程展示的是打包命令,而不是完整的生产部署。
最后,我介绍 Hugging Face agents 集成并讨论 LangChain 支持。视频将部分集成和微调描述为即将推出,因此在假定 2023 年的功能状态或命令仍然适用之前,应查阅项目的当前文档。
同频道的其他文章
34:21EN → 简体中文
25:50EN → 简体中文
32:20EN → 简体中文
1:03:37EN → 简体中文
0:53EN → 简体中文
0:22EN → 简体中文