LLMOps — 使用 BentoML 为 Llama-3 模型提供服务

news2024/12/23 12:40:49

使用 BentoML 和 Runpod 快速设置 LLM API

经常看到数据科学家对 LLM 的开发感兴趣,包括模型架构、训练技术或数据收集。然而,我注意到,很多时候,除了理论方面,许多人在以用户实际使用的方式提供这些模型时遇到了问题。在这个简短的教程中,我想以一种非常简单的方式展示如何使用BentoML 提供 LLM,特别是 llama-3 。

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

我们需要 GPU

如您所知,在深度学习中,拥有合适的硬件至关重要。特别是对于像 LLM 这样的非常大的模型,这一点变得更加重要。不幸的是,我没有任何 GPU 😔 这就是为什么我依赖外部提供商,所以我租了他们的一台机器并在那里工作。我选择在Runpod上撰写本文,因为我了解他们的服务,而且我认为遵循本教程的价格是可以承受的。但是,如果您有可用的 GPU 或想要使用任何其他提供商,请随意跳过此部分。

首先,确保您有一个 Runpod 帐户。接下来,我们需要创建一个加密密钥对,我们可以通过SSH 连接向 Runpod 进行身份验证。 我有一台 MacOS,所以我使用以下教程来生成密钥。但对于 Linux 和 Windows,过程应该没有太大区别。

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

添加图片注释,不超过 140 字(可选)

现在我们准备创建一个 pod,也就是一个可以用来编码的虚拟机。单击“ +Deploy ”按钮。

添加图片注释,不超过 140 字(可选)

Runpod 会要求您指定要使用的 GPU 类型。价格会根据您所需的 GPU 性能而变化。我们只是一个教程,因此我们在延迟或吞吐量方面没有极端需求。在这种情况下,我选择了 RTX 4090。

添加图片注释,不超过 140 字(可选)

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

添加图片注释,不超过 140 字(可选)

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

添加图片注释,不超过 140 字(可选)

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

添加图片注释,不超过 140 字(可选)

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

添加图片注释,不超过 140 字(可选)

但是,如果从 VSCode 连接而不是使用 CLI会更好,对吗?只需按照几个简单的步骤操作即可。打开 VSCode 并单击左下角的蓝色箭头,如图所示。现在在下拉菜单中单击“连接到主机”。

添加图片注释,不超过 140 字(可选)

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

添加图片注释,不超过 140 字(可选)

您现在位于 Runpod 虚拟机内!打开/workspace文件夹即可开始工作。

添加图片注释,不超过 140 字(可选)

使用 BentoML 提供服务

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

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

 
 

git克隆https://github.com/bentoml/BentoVLLM.git

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

添加图片注释,不超过 140 字(可选)

在本例中,我们将专门使用 llama3–8b-instruct。因此我们进入该文件夹。

 
 

cd BentoVLLM/ cd llama3-8b-instruct/

我们需要安装所有必要的要求。

 
 

pip 安装 -r 要求.txt && pip 安装 -f -U “pydantic>=2.0”

实际代码位于service.py文件中。 但是,我们只需调用以下命令即可为模型提供服务。

 
 

bentoml 发球。

当模型被服务时,IP 地址将向您开放,以便您在本地查看 API。如果您将路径“ /docs ”添加到 IP 地址,您将找到包含所有可用方法的 swagger。

添加图片注释,不超过 140 字(可选)

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

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

当然,除了 swagger 之外,您还可以使用代码中的 API,例如,如果您想开发自己的自定义前端!

结论

在本文中,我们了解了如何使用 SSH 连接连接到远程计算机。在本教程中,我们使用了 Runpod,但所有提供商都遵循类似的程序。 直接从 VSCode 通过 SSH 连接非常有用,这样我们就可以从我们最喜欢的 IDE 编写代码并可视化文件,我们在本文中看到了如何通过在配置文件上注册主机数据以简单的步骤完成此操作。

具有讽刺意味的是,llama-3 的服务是这个简单教程中最快的部分,因为多亏了 bento,我们只需要调用一个命令就可以运行模型并通过 swagger 使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2041288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单元训练07:矩阵键盘的基本操作-sbit写法

蓝桥杯 小蜜蜂 单元训练07:矩阵键盘的基本操作 sbit写法中加入了定时器使用。 #include "stc15f2k60s2.h"typedef unsigned char uint8_t;uint8_t timerCounter 0; uint8_t timerEnable 0;#define LED(X) \{ …

数据结构之排序(下)

片头 嗨!小伙伴们,咱们又见面啦,在上一篇数据结构之排序(上)中,我们学习了直接插入排序、冒泡排序和希尔排序,今天我们继续学习排序这一块,准备好了吗?Ready Go ! ! ! 一、选择排序 1.1 基本思…

测评各主流大模型对复杂文档处理的精确度,司马阅领先

司马阅一直在升级,这次升级后,我们将司马阅和主流的AI大模型再做一次测评。这次极端测评,主要pk各大模型对复杂文档处理的精确度。 我们选取的依然是这份专业的行业报告:《中国生成式AI开发者洞察》,共58页&#xff0…

js实现图片以鼠标为中心滚轮缩放-vue

功能背景 实现以鼠标在图中的位置为中心进行图片的滚轮缩放,现在是无论鼠标位置在哪都以图片中心进行缩放,这不符合预期; 关键点 缩放前鼠标在的位置是 A(clinetX,clientY) 点,缩放后鼠标的位置是 A’&a…

遇到 aspects 依赖引入失败问题

在引入 aspects 的相关依赖时&#xff0c;没有找到这个版本 <dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>6.0.0-M2</version> </dependency> 第一次尝试&#xff…

中国云计算技术(三)

目录 四、云视频监控技术&#xff08;一&#xff09;cVideo云视频监控系统&#xff08;二&#xff09;cVideo智能分析系统&#xff08;三&#xff09;cVideo云转码系统 四、云视频监控技术 随着云计算技术的飞速发展&#xff0c;许多传统行业纷纷向“云”上靠拢&#xff0c;视频…

【日记】朋友和他女朋友领证了(368 字)

正文 一定程度上感受到了驻场运维的水深火热&#xff0c;感觉成天到晚都在救火。今天下午就给人修了四五台机器…… 回想了一下&#xff0c;今天貌似还真没干什么。毕竟早上睁眼就是 8:35 了&#xff0c;给人吓得半死。 &#xff08;感觉 AI 也很智障&#xff0c;当初就是发现音…

0603定时器的输入捕获

定时器的输入捕获 最终程序现象&#xff1a; 1.输入捕获模式测频率 2.PWMI模式&#xff08;PWM输入模式&#xff09;测频率和占空比 输入捕获电路&#xff1a;左边这一部分。 右边的就是输出比较部分。 4个输入捕获和输出比较通道&#xff0c;共用4个CCR寄存器&#xff0c;另外…

uniapp 自定义全局弹窗

自定义全局弹窗可在js和.vue文件中调用&#xff0c;unipop样式不满足&#xff0c;需自定义样式。 效果图 目录结构 index.vue <template><view class"uni-popup" v-if"isShow"><view class"uni-popup__mask uni-center ani uni-cust…

10款企业网络准入控制系统排行榜|网络准入控制系统推荐

在当今数字化时代&#xff0c;企业网络的安全性对于维护业务连续性和保护敏感数据至关重要。网络准入控制系统&#xff08;NAC&#xff09;作为企业安全架构的核心组成部分&#xff0c;负责管理和控制所有试图接入企业网络的设备。我们列出了2024年企业网络准入控制系统的排行榜…

别急着买新手机:OPPO Reno13系列配置全解析,性价比爆表

在智能手机市场&#xff0c;OPPO Reno系列凭借其高性价比和出色的影像实力&#xff0c;一直是消费者关注的焦点。 随着科技的不断进步&#xff0c;OPPO也在不断推陈出新&#xff0c;满足用户对高性能手机的需求。最近&#xff0c;OPPO Reno13系列的曝光&#xff0c;预示着OPPO…

【高性能高易用】物联网AI开发套件----Qualcomm® RB3 Gen 2 开发套件

Qualcomm RB3 Gen 2 开发套件 专为高性能计算、高易用性而设计的物联网开发套件 Qualcomm RB3 Gen 2 开发套件拥有先进的功能和强大的性能&#xff0c;包括强大的AI运算&#xff0c;12 TOPS 算力和计算机图形处理能力&#xff0c;可轻松创造涵盖机器人、企业、工业和自动化等…

谷歌账号登录的时候提示被停用,原因是什么,账号还有救吗?该如何处理?

今日早上&#xff0c;有个久违的朋友找到我说&#xff0c;要恢复账号。 他的情况是这样的&#xff1a;7月21日的时候&#xff0c;他发现自己的谷歌账号登录的时候提示活动异常先&#xff0c;需要输入手机号码验证才能恢复账号。但是输入了自己和亲友们的多个手机号码都无法验证…

Astro + Cloudflare Pages 快速搭建个人博客

目录 1 选择 Astro 模板2 使用代码3 修改代码4 上传 Github5 部署 Cloudflare Pages6 后续修改 最近我搭建完了我的个人网站&#xff0c;很多人问是怎么做的&#xff0c;今天就来写一篇教程吧。 全部干货&#xff0c;看完绝对能成功搭建自己的网站&#xff01;&#xff08;还不…

8月12号笔记

工作组 工作组对计算机进行分层&#xff0c;通过创建不同的工作组&#xff0c;不同的计算机可以按照功能或部门归属到不同的组内&#xff0c;整个组织的网络就会变得具有层次性。在默认情况下&#xff0c;局域网内的计算机都是采用工作组方式进行资源管理的&#xff0c;即处在…

S71200 - 编程 - 笔记

1 DEMO 1.1气阀控制 1.2 红绿灯 基于PLC红绿灯控制_哔哩哔哩_bilibili 2 介绍变量DB&#xff0c;M&#xff0c;I&#xff0c;Q的使用 在PLC编程中&#xff0c;通常会使用多种类型的变量来实现逻辑控制、数据存储和输入输出操作。以下是常见的PLC变量类型及其用途&#xff…

C++笔记3•类和对象2•

1.类的6个默认成员函数 概念: 默认成员函数是用户没有显式实现,编译器会生成的成员函数称为默认成员函数。其中包括 构造函数、析构函数、拷贝构造、赋值重载、普通对象取地址重载、const对象取地址重载。也就是说类在空的情况下,空类中也不是什么也没有,会包含这六个默认成…

Linux shell脚本实战案例

文章目录 1. 基础案例&#xff1a;显示系统信息2. 文件备份案例3. 自动安装软件案例4. 批量重命名文件案例5. 监控磁盘空间案例6. 定时任务案例&#xff1a;定期清理日志文件7. 错误处理和日志记录案例&#xff1a;安全地运行命令8. 备份数据库案例&#xff1a;定期备份MySQL数…

Waterfox vG6.0.8 官方版下载及安装步骤(一款响应速度非常快的浏览器)

前言 Waterfox 水狐浏览器&#xff0c;从字面上我们可以轻松的了解该款浏览器的一些特点。Waterfox是通过Mozilla官方认证的纯64位版火狐浏览器&#xff0c;而Waterfox 10采用Firefox 10官方源码编译而成&#xff0c;改进了大内存和64位计算的细节&#xff0c;在64位Windows系…

haproxy整理

haproxy 1.1 haproxy简介 HAProxy是法国开发者 威利塔罗(Willy Tarreau) 在2000年使用C语言开发的一个开源软件 是一款具备高并发(万级以上)、高性能的TCP和HTTP负载均衡器&#xff0c;支持基于cookie的持久性&#xff0c;自动故障切换&#xff0c;支持正则表达式及web状态统…