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

news/2024/9/18 15:02:17/ 标签: 人工智能, ai
aidu_pl">

介绍

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

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

为了降低大模型的使用门槛,让更多用户能够轻松体验和应用大模型的强大能力,本文将介绍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.ppmy.cn/news/1525257.html

相关文章

lvs命令介绍

华子目录 lvs命令介绍lvs软件ipvsadm相关信息ipvsadm命令lvs集群中的增删改管理集群服务lvs中的增删改增加单个删除全部删除清空计数器修改实例 管理集群中RS的增删改增加删除修改 lvs命令介绍 lvs软件ipvsadm相关信息 程序包:ipvsadm服务名:ipvsadm.s…

LDR6020,单C口OTG,充放一体新潮流!

PD(Power Delivery)芯片实现单Type-C接口输入和输出OTG(On-The-Go)功能,主要是通过支持USB Power Delivery规范和OTG功能的特定硬件和软件设计来实现的。以下是对这一过程的具体解释: 一、PD芯片基础功能 …

vue3 动态 svg 图标使用

前言 在做后台管理系统中,我们经常会用到很多图标,比如左侧菜单栏的图标 当然这里 element-ui 或者 element-plus 组件库都会提供图标 但是在有些情况下 element-ui 或者 element-plus 组件库提供的图标满足不了我们的需求时,这个时候我们就需要自己去网上找一些素材或者…

【Tools】Prompt Engineering简介

摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样 🎵 方芳《摇太阳》 大模型中的Prompt Engineering是指为了提高大模型在特定任…

Python教程(二十) : 十分钟入门【PyQt6】

文章目录 专栏列表环境准备1 安装 Python2 安装 PyQt6 创建 PyQt6 项目1 创建项目目录2 创建主 Python 文件 代码书写测试流程1 导入 PyQt6 模块2 创建主窗口类3 创建应用程序实例并运行 核心解析:PyQt6 中的模块示例代码: PyQt6 常用的控件1. QPushButt…

python selenium 显示等待 + EC

python selenium 显示等待 EC expected_conditions是selenium的一个模块,主要用于对页面元素的加载进行判断,包括元素是否存在,可点击等等。 presence_of_element_located(locator)方法:判断一个元素存在于页面中,存…

OpenHarmony(鸿蒙南向开发)——轻量系统芯片移植指南(二)

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ OpenHarmony(鸿蒙南向开发)——轻量系统芯片移植指南(一) Op…

2024-09-11 gdb

回顾 静态库安装指令 sudo yum install -y glibc-static sudo yum install -y libstdc-staticLinux调试器:gdb debug->添加调试信息 release->取消调试信息 gcc/g默认是release,debug:-g 1. gdb的基本命令 l(list) 10 main code.c…

无人机动力系统设计之电调芯片参数选型

无人机动力系统设计之电调芯片参数选型 1. 源由2. 关键因素2.1 电压范围2.2 电流处理能力2.3 控制方式2.4 PWM输出与分辨率2.5 通讯接口2.6 保护功能2.7 支持霍尔传感器与无传感器模式2.8 集成度与外围器件2.9 效率与散热2.10 市场供应与成本 3. 因素阐述3.1 PWM工作频率3.1.1 …

开源FormCreate低代码表单组件的配置项和事件的详解

在使用开源FormCreate低代码表单时,您可以通过各种 props 来定制表单的行为和外观。这些参数允许您控制表单的生成规则、配置选项、双向数据绑定等,为复杂的表单场景提供了强大的支持。 源码地址: Github | Gitee FormCreate组件Props 以下是常用的 pr…

Ubuntu 安装最新 Google Chrome 浏览器

谷歌浏览器使用简单并且用户友好,使用它浏览互联网愉悦至极。许多用户喜欢 Chrome,因为它加载网页又快又流畅。Chrome 提供强大的安全功能,帮助用户保持在线安全。Google Chrome 官方提供了一个 Debian 软件包存储库,基于 Debian …

reg和wire的区别 HDL语言

文章目录 数据类型根本区别什么时候要定义wire小结 数据类型 HDL语言有三种数据类型:寄存器数据类型(reg)、线网数据类型(wire)、参数数据类型(parameter)。 根本区别 reg: 寄存器…

Stable Diffusion绘画 | 生成高清多细节图片的各个要素

在数字艺术领域,AI绘画技术已经逐渐成为艺术创作的新趋势。Stable Diffusion作为一款领先的AI绘画工具,以其生成高清多细节图片的能力备受关注。现在,让我们一起来探索Stable Diffusion生成高清多细节图片的各个要素,开启你的创意…

【鸿蒙】HarmonyOS NEXT星河入门到实战5-基础语法

目录 一、字符串拼接 1.1 常规字符串拼接 1.2 模板字符串hello(符号在键盘的tab上面) 二、类型转换 (数字和字符串) 2.1 字符串转数字 2.2 数字转字符串 三、交互 3.1 点击事件 3.2 状态管理 3.3 计数器案例 四、运算符 4.1 算数运算符 4.2 赋…

五、TOGAF(架构内容框架)

TOGAF架构内容框架(Architecture Content Framework) TOGAF架构内容框架是TOGAF的一个重要组成部分,它提供了标准化的方法来描述企业架构。架构内容框架帮助架构师创建、管理和使用架构工件(Artifacts),这些…

C++之打造my vector篇

目录 前言 1.参照官版,打造vector的基本框架 2.丰富框架,实现接口方法 基本的迭代器实现 数据的[]访问 容量和数据空间的改变 vector空间大小的返回与判空 数据的增删 数据打印 拷贝构造和赋值重载 3.扩展延伸,深度理解代码 迭代器…

1.单例模式

目录 简介 饿汉式 懒汉式 双重检测锁式 静态内部类式 枚举单例 测试 测试单例模式: 测试五种单例模式在多线程环境下的效率 问题(拓展) 例:反射破解单例模式 例:反序列化破解单例模式 总结:如何…

【PyCharm】常用快捷键

此篇文章内容会不定期更新,仅作为学习过程中的笔记记录 PyCharm的所有快捷键,其实均可以自定义,在位于Settings -> Keymap的目录下(如图),可以自行改写为自己熟悉的键位组合。 若更改为PyCharm已存在的键…

GESP等级考试 C++二级-if语句

if语句是C中的选择语句,通过if语句程序可以在一种可能、二种可能或者多种可能中做出选择,对于不同的可能进行不同的处理。 1 一种可能 使用if语句对一种可能进行处理的格式如下所示: if (表达式) {语句; } 其中,if后面跟一个圆…

虹科方案 | 精准零部件测试!多路汽车开关按键功能检测系统

欢迎关注虹科,为您提供最新资讯! #LIN/CAN总线 #零部件测试 #CAN数据 导读 在汽车制造业中,零部件的安全性、功能性和可靠性是确保车辆整体性能的关键。虹科针对车辆零部件的LIN/CAN总线仿真测试,提出了基于虹科Baby-LIN系列产…