当前位置: 首页 > news >正文

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

使用 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.lryc.cn/news/421326.html

相关文章:

  • 微软蓝屏事件揭秘:有问题的数据引发内存读取越界
  • NASA:北极ARCTAS差分吸收激光雷达(DIAL)遥感数据
  • Android 文件上传与下载
  • Java语言的充电桩系统Charging station system
  • RCE之无参数读取文件
  • Python GUI开发必看:Tkinter Button控件使用详解
  • 上海市计算机学会竞赛平台2024年7月月赛丙组得分排名
  • Can GPT-3 Perform Statutory Reasoning?
  • redis面试(十一)锁超时
  • C代码做底层及Matlab_SimuLink做应用层设计单片机程序
  • Cloud Kernel SIG 月度动态:ANCK OOT 驱动基线更新,发布 2 个 ANCK 版本
  • vue3仿飞书头像,根据不同名称生成不同的头像背景色
  • SpringBoot整合三方
  • React之组件的使用
  • 深度学习--长短期记忆网络
  • 研0 冲刺算法竞赛 day29 P2249 【深基13.例1】查找
  • 基于vue框架的CKD电子病历系统nfa2e(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 笔记:python 安装tar包报错
  • 575. 分糖果
  • 手机电量消耗分析工具 Battery Historian 指南
  • 笔试练习day4
  • 公主少爷都爱看的haproxy七层代理详细介绍及常见实验详解
  • Android笔试面试题AI答之Kotlin(6)
  • “tcp控制协议”的理解
  • 考试成绩查询系统,发成绩不再愁
  • 【扒代码】图像数据 Transformer
  • 光伏仿真系统的使用流程
  • 【Dash】使用 dash_mantine_components 创建图表
  • Unity 输入模块 之 初识新输入系统(其实也不新)
  • springboot+redis集群实现集群拓扑动态刷新温故