news 2026/4/23 16:22:21

LLMOps – 使用 BentoML 服务 Llama-3 模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LLMOps – 使用 BentoML 服务 Llama-3 模型

原文:towardsdatascience.com/llmops-serve-a-llama-3-model-with-bentoml-4d580a7a007f

引言

我经常看到数据科学家对 LLM(大型语言模型)的发展感兴趣,无论是从模型架构、训练技术还是数据收集的角度。然而,我注意到,很多时候,除了理论方面,很多人在以用户实际使用的方式提供服务这些模型时存在困难。在这篇简短的教程中,我想以一种非常简单的方式展示如何使用BentoML来提供服务 LLM,特别是 llama-3。

BentoML 是机器学习模型服务的一个端到端解决方案。它使数据科学团队能够开发生产就绪的模型服务端点,并在每个阶段都采用 DevOps 最佳实践和性能优化。

我们需要 GPU

正如你所知,在深度学习中,拥有合适的硬件至关重要。特别是对于像 LLM 这样的大型模型,这一点变得更加重要。不幸的是,我没有任何 GPU 😔 因此,我依赖外部提供商,所以我租用他们的一台机器在那里工作。我选择在这篇文章中使用Runpod是因为我了解他们的服务,我认为这是一个合理的价格来跟随这个教程。但如果你有可用的 GPU 或想使用任何其他提供商,请随意跳过这部分。

首先,确保你有一个 Runpod 账户。接下来,我们需要创建一个密钥对,我们可以用它通过SSH 连接来认证 Runpod。我有一个 MacOS,所以我使用了以下教程来生成密钥。但对于 Linux 和 Windows,程序应该不会有太大差异。

在 macOS 中手动生成你的 SSH 密钥

你现在应该有一个公钥和一个私钥。确保不要在任何地方分享你的私钥!在设置中,Runpod 会要求你输入公钥以便你可以进行认证,所以请继续将其复制到相应的插槽,如图所示。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c3ddc6340e0777602c58789ec2f2a972.png

现在我们已经准备好创建一个 pod,即我们可以用来编码的虚拟机。点击“+Deploy”按钮。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c0072a5675f14832de11f5d7532cc602.png

Runpod 会要求你指定想要使用哪种类型的 GPU。价格取决于你需要的 GPU 的性能。我们的教程只是一个示例,所以我们没有对延迟或吞吐量有极端的需求。在这种情况下,我选择了 RTX 4090。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1470042e6b158a4c34028f2d0b07fa30.png

你可以进一步修改模型,并将磁盘大小增加到 40GB。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e0eec3c2ed57fa8a1d9664bdbb34a6cb.png

如果你点击 “connect” 按钮,Runpod 将显示你可以从 bash 使用以连接到为你远程提供的机器的命令。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e275755b235745ddffb1566fb02b9833.png

在我们开始工作之前,我们还需要做一件事。上面显示的命令指定了一个 IP 地址和端口。现在你需要进入终端并访问你保存 SSH 密钥的 .ssh 文件夹。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/ca4fe6871bd5cfc4b0ab459ee5ebd37d.png

使用 “vim config” 命令编辑 “config” 文件。像我的情况一样,在你的文件中添加一个条目。我命名为 “bentoml”,并添加了 IP 地址、端口以及我的私钥所在路径,这样当尝试连接到该主机时,电脑将自动知道在哪里找到连接的密钥。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3a8c25e45115e20625aebe4ea7a70521.png

虽然从 VSCode连接而不是使用 CLI 会更好,但不是吗?只需遵循几个简单的步骤。打开 VSCode 并点击底部左边的蓝色箭头,如图所示。现在在下拉菜单中点击 “connect to host”。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1631ac8f8e7c4815a4bb5289d26a3590.png

现在 VSCode 将知道哪些主机可用,因为我们首先在配置文件中输入了它们,实际上,它将识别bentoml作为主机。点击它。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a5256fac43abdcdff5db169de45c7be1.png

现在,你已经进入了 Runpod 虚拟机!打开/workspace文件夹,你就可以开始工作了。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1eca994411a942aec2099808a396644f.png

使用 BentoML 提供

使用 Runpod 设置开发环境可能是本教程中最复杂的一部分,因为 BentoML 使得提供 llama-3 非常容易。

首先,使用 CLI 我们可以克隆 BentoML 团队开发的仓库。

git clone https://github.com/bentoml/BentoVLLM.git

在仓库中,我们将找到不同模型的几个示例。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/92c8b1d3a3f1b78471889c85b44cd180.png

在这种情况下,我们将特别使用 llama3–8b-instruct。因此,我们进入那个文件夹。

cd BentoVLLM/cd llama3-8b-instruct/

我们需要安装所有必要的依赖。

pip install-r requirements.txt&&pip install-f-U"pydantic>=2.0"

实际的代码位于service.py文件中。然而,我们只需要调用以下命令来提供模型。

bentoml serve.

当模型提供时,将为你打开一个 IP 地址以查看本地的 API。如果你将路径 “/docs” 添加到 IP 地址中,你将找到包含所有方法的 swagger。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/c571e1f5217ee7367542dc378d2f91f9.png

你可以看到主要的 API 是/generate,你可以在其中输入提示和系统提示,并等待模型的输出。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/200542a1870eedee3f383fc97498637c.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e78357a4baefd20bcfc899a3751fa399.png

当然,除了 swagger,如果你想要开发自己的自定义前端,你也可以从代码中使用 API!

结论

在这篇文章中,我们看到了如何使用 SSH 连接连接到远程机器。在本教程中我们使用了 Runpod,但所有提供商都遵循类似的步骤。直接从 VSCode 通过 SSH 连接非常实用,这样我们就可以从我们最喜欢的 IDE 中编写代码和可视化文件,而在这篇文章中,我们看到了如何通过在配置文件上注册主机数据来简单步骤地完成这一操作。讽刺的是,llama-3 的托管是这个简单教程中最快的一部分,因为多亏了 bento,我们只需要调用一个命令就可以让模型运行并可通过 swagger 使用。

关注我的Medium以获取更多关于 BentoML 的深入教程 😁

💼 领英 ️| 🐦 X (Twitter) | 💻 网站

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 16:03:14

从零开始构建 LLMs 和 Transformers:解码器

原文:towardsdatascience.com/llms-and-transformers-from-scratch-the-decoder-d533008629c5 本文由 Rafael Nardi 共同撰写。 引言 在本文中,我们深入探讨 Transformer 架构中的解码器组件,重点关注其与编码器的异同。解码器的独特特征是…

作者头像 李华
网站建设 2026/4/22 14:58:11

Java泛型:T、E、K、V、?,你还在傻傻分不清?

在Java后端开发中&#xff0c;你一定在写集合类或工具类时&#xff0c;见过 T、E、K、V、? 这样的泛型通配符。但你是否有过以下疑惑&#xff1a; • T、E、K、V 到底有什么区别&#xff1f;为什么大家都用这些字母&#xff1f; • List<?> 和 List 有什么不同&#x…

作者头像 李华
网站建设 2026/4/18 20:51:56

AutoCAD智能线长统计插件:支持缩放、自定义分组与Excel导出的LISP工具

温馨提示&#xff1a;文末有联系方式 插件核心功能&#xff1a;精准智能的线长批量统计 本AutoCAD插件专为工程制图人员设计&#xff0c;可自动识别并汇总图纸中所有具备长度属性的图元&#xff08;如直线、多段线、样条曲线、圆弧等&#xff09;&#xff0c;实现毫秒级全图线长…

作者头像 李华
网站建设 2026/4/23 13:13:15

OpenCSG月度更新2026.1

2026 年 1 月&#xff0c;OpenCSG&#xff08;开放传神&#xff09;围绕产品迭代、市场落地、生态建设与社区运营四大核心方向稳步推进&#xff0c;各项工作取得丰硕成果。产品层面&#xff0c;平台功能持续打磨升级&#xff0c;AgenticHub v0.3、CSGHub v1.15.0-ce 两大核心版…

作者头像 李华
网站建设 2026/4/23 13:12:59

解决算力瓶颈,给多模态瘦身!Token压缩完整图谱与选型指南

北京大学等联合团队深入剖析了多模态大模型Token压缩技术的全貌&#xff0c;从视觉编码器、投影器到语言模型的全链路优化策略&#xff0c;并揭示高效多模态智能的未来演进路径。给多模态大模型瘦身已成为解决算力瓶颈的关键。Token压缩技术通过剔除视觉冗余&#xff0c;在保留…

作者头像 李华
网站建设 2026/4/23 13:16:30

什么是Context Engineering?一文读懂AI黑话之“上下文工程”

自从ChatGPT横空出世以来&#xff0c;AI“黑话”层出不穷&#xff0c;什么RAG、Agent、MCP、A2A... 现在又来了个Context Engineering&#xff08;上下文工程&#xff09;&#xff0c;是不是有点懵&#xff0c;别担心&#xff0c;这篇文章会一一给你解答。 你好&#xff0c;我是…

作者头像 李华