使用 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/

然后安装必要的依赖。

python 复制代码
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服务

python 复制代码
bentoml serve .

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

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


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

总结

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

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

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

相关推荐
计算机毕业设计指导几秒前
基于ResNet50的智能垃圾分类系统
人工智能·分类·数据挖掘
飞哥数智坊5 分钟前
终端里用 Claude Code 太难受?我把它接进 TRAE,真香!
人工智能·claude·trae
小王爱学人工智能38 分钟前
OpenCV的阈值处理
人工智能·opencv·计算机视觉
新智元1 小时前
刚刚,光刻机巨头 ASML 杀入 AI!豪掷 15 亿押注「欧版 OpenAI」,成最大股东
人工智能·openai
机器之心1 小时前
全球图生视频榜单第一,爱诗科技PixVerse V5如何改变一亿用户的视频创作
人工智能·openai
新智元1 小时前
2025年了,AI还看不懂时钟!90%人都能答对,顶尖AI全军覆没
人工智能·openai
湫兮之风1 小时前
OpenCV: Mat存储方式全解析-单通道、多通道内存布局详解
人工智能·opencv·计算机视觉
即兴小索奇1 小时前
Codeium:免费开源代码自动补全工具,高效管理代码片段告别开发卡壳
ai·商业·ai商业洞察·即兴小索奇
机器之心1 小时前
Claude不让我们用!国产平替能顶上吗?
人工智能·openai
程序员柳1 小时前
基于YOLOv8的车辆轨迹识别与目标检测研究分析软件源代码+详细文档
人工智能·yolo·目标检测