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

使用 BentoML快速实现Llama-3推理服务

介绍

近年来,开源大模型如雨后春笋般涌现,为自然语言处理领域带来了革命性的变化。从文本生成到代码编写,从机器翻译到问答系统,开源大模型展现出惊人的能力,吸引了越来越多的开发者和企业投身其中。

然而,尽管开源大模型潜力巨大,但将其部署到实际应用场景中却并非易事。高昂的硬件成本、复杂的模型配置、繁琐的部署流程等问题,都为大模型的落地应用设置了重重障碍。

为了降低大模型的使用门槛,让更多用户能够轻松体验和应用大模型的强大能力,本文将介绍BentoML是怎么降低使用门槛并快速上手大模型开发的**。**无论你是经验丰富的开发者,还是对大模型充满好奇的初学者,相信都能从本文中找到你需要的答案,快速开启你的大模型应用之旅。

环境准备

租用GPU资源

众所周知,在深度学习中,拥有合适的可用硬件至关重要。特别是对于像大语言模型这样的大型模型,这一点变得更加重要。然后购买硬件资源非常昂贵,所以租用GPU资源对于普通开发者而言是最经济实惠的方案。下面我选择在AutoDL平台上租一块RTX 4090,当然你可以在其他平台租售需要的硬件资源。

首先,确保您有 AutoDL 帐户。接下来,按照自己的需求选择计费方式,GPU型号和基础镜像等信息。
在这里插入图片描述
几分钟后服务器会初始化好,然后使用SSH登录服务器。
在这里插入图片描述
在这里插入图片描述

使用 BentoML 服务

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


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

在存储库中,我们将找到不同模型的几个示例。本教程我将专门使用 llama3-8b-instruct。所以我们进入该文件夹。


cd BentoVLLM/
cd llama3-8b-instruct/

然后安装必要的依赖。

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

在这里插入图片描述

实际代码可以在 service.py 文件中找到。但是,我们调用以下命令来调起模型就足够了。

由于huggingface在国内不稳定,所以可以通过代理的方式获取模型,下面我将介绍一个方法。

  • 通过官方的huggingface-cli工具

1. 安装依赖

pip install -U huggingface_hub

2. 设置环境变量

Linux

export HF_ENDPOINT=https://hf-mirror.com

Windows Powershell

$env:HF_ENDPOINT = "https://hf-mirror.com"

建议将上面这一行写入

~/.bashrc

3.1 下载模型

huggingface-cli download --resume-download meta/llama3-8b-instruct
  • 使用 hfd

hfd 是国内开发者开发的 huggingface 专用下载工具,基于成熟工具 git+aria2,可以做到稳定下载不断线。

1. 下载hfd

wget https://hf-mirror.com/hfd/hfd.sh
chmod a+x hfd.sh

2. 设置环境变量

Linux

export HF_ENDPOINT=https://hf-mirror.com

Windows Powershell

$env:HF_ENDPOINT = "https://hf-mirror.com"

3.1 下载模型

./hfd.sh meta/llama3-8b-instruct --tool aria2c -x 4

3.2 下载数据集

./hfd.sh wikitext --dataset --tool aria2c -x 4

模型下载好后执行下面命令启动bentoml服务

bentoml serve .

命令调用后将打开一个 IP 地址以在本地查看 API。如果将路径“/docs”添加到 IP 地址,将会打开swagger页面提供所有可用接口的文档。

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
当然,除了 swagger 之外,如果您想开发自己的自定义前端,您还可以使用代码中的 API!

总结

本教程手把手的演示了一遍怎么快速的使用一个开源大模型进行推理,通过使用BentoML这一强大的工具。BentoML不仅简化了模型部署过程,还提供了便捷的API接口,使得开发者能够轻松地将大模型集成到各种应用场景中。这种快速部署和使用的方法,为大模型的广泛应用铺平了道路,让更多人能够享受到人工智能带来的便利。

然而,尽管BentoML大大简化了大模型的部署和使用流程,我们仍需要注意一些关键点。首先,选择合适的硬件资源至关重要,这直接影响到模型的运行效率和响应速度。其次,对于不同的应用场景,可能需要对模型进行微调或优化,以获得最佳性能。

我会在后续文章中介绍怎么使用BentoML对开发RAG和Function Calling等功能演示,敬请期待。
在这里插入图片描述


http://www.kler.cn/a/303266.html

相关文章:

  • FBX福币交易所恒指收跌1.96% 半导体股继续回调
  • PHP反序列化_3-漏洞利用
  • 基于Spring Boot与Redis的令牌主动失效机制实现
  • 火车车厢重排问题,C++详解
  • 论文解析:边缘计算网络中资源共享的分布式协议(2区)
  • 图像处理实验二(Image Understanding and Basic Processing)
  • 无人机之如何增强信号
  • Linux 防火墙:iptables (二)
  • WPS汇总多个文档
  • 查询数据起始时间判断
  • 10.1英寸工业三防平板提升工厂的工作效率
  • 【乐吾乐大屏可视化组态编辑器】API接口文档(pgsql)
  • 11. 建立你的第一个Web3项目
  • YOLOv8和YOLOv10的参数解释
  • 嵌入式Linux学习笔记(2)-C语言编译过程
  • 如何实现将对象序列化为JSON字符串,并且所有的键首字母都为小写?
  • Go语言中的链表与双向链表实现
  • Linux 基本指令(一)
  • Linux内核学习之 -- 系统调用open()和write()的实现笔记
  • Spring Boot集成Akka Stream快速入门Demo
  • c++stack和list 介绍
  • 20. 如何在MyBatis中处理多表关联查询?常见的实现方式有哪些?
  • 数据分析-26-时间序列预测之基于ARIMA的时间序列数据分析
  • k8s命名详解
  • Redis地理数据类型GEO
  • 通信工程学习:什么是FDMA频分多址