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.pngRunpod 会要求你指定想要使用哪种类型的 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.txtamp;amp;pip install-f-Upydantic2.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) | 网站

相关新闻

基于扩展卡尔曼滤波的锂电池SOC估算与仿真研究

基于扩展卡尔曼滤波的锂电池SOC估算与仿真研究

锂电池SOC估算EKF估计SOC仿真扩展卡尔曼滤波 锂电池的SOC(State of Charge)估计就像给手机电池标剩余电量,但汽车和储能系统里这事儿复杂得多。传统库仑计数法误差会累积,这时候就得请出扩展卡尔曼滤波(EKF&#xff0…

2026/7/6 20:45:12 阅读更多 →
SpringBoot3 配置文件使用全解析:从基础到实战,解锁灵活配置新姿势

SpringBoot3 配置文件使用全解析:从基础到实战,解锁灵活配置新姿势

SpringBoot 的核心优势之一便是“约定大于配置”,无需繁琐的 XML 配置,仅通过简单的配置文件就能完成项目的个性化定制。而 SpringBoot3 作为新一代主流版本,在配置文件的支持上延续了简洁性,同时优化了部分特性、新增了一些实用功…

2026/7/4 5:32:04 阅读更多 →
均衡监考安排VBA教务管理系统|免激活不限设备,一单三版适配多场景,原创开发

均衡监考安排VBA教务管理系统|免激活不限设备,一单三版适配多场景,原创开发

温馨提示:文末有联系方式产品核心优势 均衡监考安排VBA教务管理系统是一款基于Microsoft Excel深度开发的轻量级教务辅助工具。 采用纯VBA编码实现智能算法,自动平衡教师监考频次、学科分布与时间间隔,大幅提升排考效率与公平性。全平台兼容&…

2026/7/6 1:07:07 阅读更多 →

最新新闻

Git+GitHub新手实操手册:5步闭环搞定日常开发

Git+GitHub新手实操手册:5步闭环搞定日常开发

1. 这不是“又一个Git教程”——它是一份能让你三天后还在用的实操手册 你点开这个标题,大概率正卡在某个具体场景里:刚被同事甩来一个仓库链接,却连怎么把代码下载到自己电脑上都搞不清;或者写了半天功能,想提交却发现…

2026/7/6 20:43:49 阅读更多 →
CodeRed CMS未来路线图:即将推出的功能与改进指南 [特殊字符]

CodeRed CMS未来路线图:即将推出的功能与改进指南 [特殊字符]

CodeRed CMS未来路线图:即将推出的功能与改进指南 🚀 【免费下载链接】coderedcms Wagtail CodeRed Extensions enabling rapid development of marketing-focused websites. 项目地址: https://gitcode.com/gh_mirrors/co/coderedcms CodeRed C…

2026/7/6 20:41:48 阅读更多 →
OpenCV 4.9 与 Ultralytics YOLO 集成:Python 实现 5 行代码实时视频目标检测

OpenCV 4.9 与 Ultralytics YOLO 集成:Python 实现 5 行代码实时视频目标检测

OpenCV 4.9 与 Ultralytics YOLO 集成实战:5行代码构建实时视频分析系统1. 环境准备与工具链配置在开始构建实时视频分析系统之前,我们需要确保开发环境配置正确。以下是推荐的开发环境配置:Python环境要求:Python 3.8或更高版本&…

2026/7/6 20:41:48 阅读更多 →
如何利用deepTools与Python集成实现测序数据的自动化批量处理

如何利用deepTools与Python集成实现测序数据的自动化批量处理

如何利用deepTools与Python集成实现测序数据的自动化批量处理 【免费下载链接】deepTools Tools to process and analyze deep sequencing data. 项目地址: https://gitcode.com/gh_mirrors/de/deepTools 在高通量测序数据分析领域,高效处理海量数据是研究人…

2026/7/6 20:41:48 阅读更多 →
终极OnionOS使用指南:为Miyoo Mini/Mini+打造完美复古游戏体验

终极OnionOS使用指南:为Miyoo Mini/Mini+打造完美复古游戏体验

终极OnionOS使用指南:为Miyoo Mini/Mini打造完美复古游戏体验 【免费下载链接】Onion OS overhaul for Miyoo Mini and Mini 项目地址: https://gitcode.com/gh_mirrors/on/Onion OnionOS是一款专为Miyoo Mini和Mini掌机设计的增强型操作系统,通过…

2026/7/6 20:33:46 阅读更多 →
SRN-Deblur技术原理揭秘:Scale-recurrent Network如何实现高效图像去模糊

SRN-Deblur技术原理揭秘:Scale-recurrent Network如何实现高效图像去模糊

SRN-Deblur技术原理揭秘:Scale-recurrent Network如何实现高效图像去模糊 【免费下载链接】SRN-Deblur Repository for Scale-recurrent Network for Deep Image Deblurring 项目地址: https://gitcode.com/gh_mirrors/sr/SRN-Deblur SRN-Deblur是一个基于Sc…

2026/7/6 20:31:46 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻