坚守与赋能:态度个性的当代诠释及AI大模型智能名片小程序的实践赋能

核心内容摘要

基于数据驱动的暖通空调系统故障检测诊断与症状链智能推断
OFA视觉问答模�在医疗场景的应用:医学影�智能问答

ARM与交换芯片MAC直连模式:从硬件架构到软件调试的实战解析

原文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/c3ddc6340e0777602c58789ec2f2a

png现在我们已经准备好创建一个 pod即我们可以用来编码的虚拟机。

点击“Deploy”按钮。

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

pngRunpod 会要求你指定想要使用哪种类型的 GPU。

价格取决于你需要的 GPU 的性能。

我们的教程只是一个示例所以我们没有对延迟或吞吐量有极端的需求。

在这种情况下我选择了 RTX 4090。

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

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/e275755b235745ddffb1566fb02b

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/3a8c25e45115e20625aebe4ea7a

png虽然从 VSCode连接而不是使用 CLI 会更好但不是吗只需遵循几个简单的步骤。

打开 VSCode 并点击底部左边的蓝色箭头如图所示。

现在在下拉菜单中点击 “connect to host”。

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

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

点击它。

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

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/92c8b1d3a3f1b78471889c85b44cd

png在这种情况下我们将特别使用 llama3–8b-instruct。

因此我们进入那个文件夹。

cd BentoVLLM/cd llama

b-instruct/我们需要安装所有必要的依赖。

pip install-r requirements.txtamp;amp;pip install-f-Upydantic

0实际的代码位于service.py文件中。

然而我们只需要调用以下命令来提供模型。

bentoml serve.当模型提供时将为你打开一个 IP 地址以查看本地的 API。

如果你将路径 “/docs” 添加到 IP 地址中你将找到包含所有方法的 swagger。

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

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/e78357a4baefd20bcfc899a3751fa

png当然除了 swagger如果你想要开发自己的自定义前端你也可以从代码中使用 API结论在这篇文章中我们看到了如何使用 SSH 连接连接到远程机器。

在本教程中我们使用了 Runpod但所有提供商都遵循类似的步骤。

直接从 VSCode 通过 SSH 连接非常实用这样我们就可以从我们最喜欢的 IDE 中编写代码和可视化文件而在这篇文章中我们看到了如何通过在配置文件上注册主机数据来简单步骤地完成这一操作。

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

关注我的Medium以

获取更多关于 BentoML 的深入教程 领英 ️| X (Twitter) | 网站

白嫖之家免费下载-白嫖之家免费下载应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123