使用BentoML构建首个AI服务:Hello World示例

使用BentoML构建首个AI服务:Hello World示例

BentoML Build Production-Grade AI Applications BentoML 项目地址: https://gitcode.com/gh_mirrors/be/BentoML

前言

BentoML是一个强大的机器学习模型服务化框架,它让开发者能够轻松地将训练好的模型部署为生产级的API服务。本文将通过一个简单的"Hello World"示例,带您快速了解如何使用BentoML构建和部署一个文本摘要生成服务。

环境准备

在开始之前,我们需要设置开发环境。建议使用Python 3.11或更高版本,并创建虚拟环境以隔离依赖。

# 创建并激活虚拟环境
python -m venv bentoml-env
source bentoml-env/bin/activate  # Linux/Mac
# 或者 bentoml-env\Scripts\activate  # Windows

# 安装必要依赖
pip install bentoml torch transformers

这里我们安装了三个关键包:

  • bentoml: 核心框架
  • torch: PyTorch深度学习框架
  • transformers: Hugging Face的Transformer模型库

创建BentoML服务

BentoML的核心概念是"Service",它是一个可部署的服务单元。让我们创建一个简单的文本摘要服务:

from __future__ import annotations
import bentoml

with bentoml.importing():
    from transformers import pipeline

# 示例输入文本
EXAMPLE_INPUT = "Breaking News: In an astonishing turn of events..."

@bentoml.service
class Summarization:
    def __init__(self) -> None:
        # 初始化文本摘要pipeline
        self.pipeline = pipeline('summarization')

    @bentoml.api
    def summarize(self, text: str = EXAMPLE_INPUT) -> str:
        # 处理输入并返回摘要结果
        result = self.pipeline(text)
        return f"Hello world! Here's your summary: {result[0]['summary_text']}"

这段代码展示了几个关键点:

  1. @bentoml.service装饰器:将Python类标记为BentoML服务
  2. @bentoml.api装饰器:将方法暴露为API端点
  3. bentoml.importing():处理服务特有的依赖导入
  4. pipeline初始化:使用Hugging Face的transformers库加载预训练模型

本地运行服务

保存上述代码为service.py后,可以通过以下命令启动服务:

bentoml serve

服务启动后,默认会在http://localhost:3000监听请求。BentoML会自动生成Swagger UI界面,方便我们测试API。

测试服务

有多种方式可以测试我们的摘要服务:

1. 使用cURL

curl -X 'POST' \
  'http://localhost:3000/summarize' \
  -H 'accept: text/plain' \
  -H 'Content-Type: application/json' \
  -d '{"text": "Your long article text here..."}'

2. 使用Python客户端

import bentoml

with bentoml.SyncHTTPClient("http://localhost:3000") as client:
    result = client.summarize(
        text="Your long article text here..."
    )
    print(result)

3. 使用Swagger UI

访问http://localhost:3000,在页面中找到"Service APIs"部分,点击"Try it out"按钮,输入文本并执行。

服务工作原理

当请求到达时,BentoML会:

  1. 接收HTTP请求
  2. 将请求路由到对应的API方法
  3. 执行模型推理
  4. 格式化返回结果
  5. 发送HTTP响应

整个过程是异步高效的,适合生产环境部署。

进阶学习

完成这个基础示例后,您可以进一步探索:

  1. 模型批处理:优化多个请求的并行处理
  2. 自定义模型:加载您自己训练的模型
  3. 容器化部署:将服务打包为Docker镜像
  4. 云部署:将服务部署到云平台

总结

通过这个简单的Hello World示例,我们学习了:

  • 如何设置BentoML开发环境
  • 创建基本的BentoML服务
  • 定义API端点
  • 本地测试服务

BentoML的强大之处在于它能将复杂的模型服务化过程简化为几行Python代码,同时保持高度的可扩展性和生产就绪性。这为机器学习工程师提供了从实验到生产的快速通道。

BentoML Build Production-Grade AI Applications BentoML 项目地址: https://gitcode.com/gh_mirrors/be/BentoML

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薄琼茵Angelic

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值