BentoML核心概念(四):模型和 Bento 管理

简介: BentoML 提供易于使用的本地和集中式商店来管理模型和bentos。本文重点介绍基于本地文件系统的模型和 bento 商店的使用。 要了解有关集中式商店解决方案的更多信息,请参阅 BentoML Yatai。

管理模型


创建模型

回想一下之前的入门指南,模型是使用特定框架的 save() 函数保存的。 在示例中,我们将 sklearn 模块中的 save() 函数用于 Scikit Learn 框架,具体如下所示。

import bentoml.sklearn
bentoml.sklearn.save("iris_classifier_model", clf)
复制代码


模型也可以从支持的框架专有的注册表中导入。在下面的示例中,模型是从 MLFlow 模型注册表中导入的。

import bentoml.mlflow
bentoml.mlflow.import_from_uri("mlflow_model", uri=mlflow_registry_uri)
复制代码


默认情况下,保存和导入的模型会添加到位于 $HOME/bentoml/models 目录中的基于本地文件系统的模型仓库中。

列出模型

要列出所有创建的模型,请使用 bentoml.models 模块中的 list() Python 函数或models list CLI 命令。

Python 函数示例如下:

import bentoml.models
bentoml.models.list() # get a list of all models
# [
#   {
#     tag: Tag("iris_classifier_model", "vkorlosfifi6zhqqvtpeqaare"),
#     framework: "SKLearn",
#     created: 2021/11/14 03:55:11
#   },
#    {
#     tag: Tag("iris_classifier_model", "vlqdohsfifi6zhqqvtpeqaare"),
#     framework: "SKLearn",
#     created: 2021/11/14 03:55:15
#   },
#   {
#     tag: Tag("iris_classifier_model", "vmiqwpcfifi6zhqqvtpeqaare"),
#     framework: "SKLearn",
#     created: 2021/11/14 03:55:25
#   },
#   {
#     tag: Tag("fraud_detection_model", "5v4pdccfifi6zhqqvtpeqaare"),
#     framework: "PyTorch",
#     created: 2021/11/14 03:57:01
#   },
#   {
#     tag: Tag("fraud_detection_model", "5xorursfifi6zhqqvtpeqaare"),
#     framework: "PyTorch",
#     created: 2021/11/14 03:57:45
#   },
# ]
bentoml.models.list("iris_classifier_model") # get a list of all versions of a specific model
bentoml.models.list(Tag("iris_classifier_model", None))
# [
#   {
#     tag: Tag("iris_classifier_model", "vkorlosfifi6zhqqvtpeqaare"),
#     framework: "SKLearn",
#     created: 2021/11/14 03:55:11
#   },
#    {
#     tag: Tag("iris_classifier_model", "vlqdohsfifi6zhqqvtpeqaare"),
#     framework: "SKLearn",
#     created: 2021/11/14 03:55:15
#   },
#   {
#     tag: Tag("iris_classifier_model", "vmiqwpcfifi6zhqqvtpeqaare"),
#     framework: "SKLearn",
#     created: 2021/11/14 03:55:25
#   },
# ]
复制代码


命令行示例如下:

> bentoml models list # list all models
MODEL                 FRAMEWORK   VERSION                    CREATED
iris_classifier_model SKLearn     vkorlosfifi6zhqqvtpeqaare  2021/11/14 03:55:11
iris_classifier_model SKLearn     vlqdohsfifi6zhqqvtpeqaare  2021/11/14 03:55:15
iris_classifier_model SKLearn     vmiqwpcfifi6zhqqvtpeqaare  2021/11/14 03:55:25
fraud_detection_model PyTorch     5v4pdccfifi6zhqqvtpeqaare  2021/11/14 03:57:01
fraud_detection_model PyTorch     5xorursfifi6zhqqvtpeqaare  2021/11/14 03:57:45
> bentoml models list iris_classifier # list all version of my-model
MODEL           FRAMEWORK   VERSION          CREATED
iris_classifier_model PyTorch     vkorlosfifi6zhqqvtpeqaare  2021/11/14 03:55:11
iris_classifier_model PyTorch     vlqdohsfifi6zhqqvtpeqaare  2021/11/14 03:55:15
iris_classifier_model SKLearn     vmiqwpcfifi6zhqqvtpeqaare  2021/11/14 03:55:25
复制代码


要获取模型信息,请使用bentoml.models模块下的 get() 函数或models get CLI 命令。

Python 函数示例如下:

import bentoml.models
bentoml.models.get("iris_classifier_model:vmiqwpcfifi6zhqqvtpeqaare")
bentoml.models.get(Tag("iris_classifier_model", "vmiqwpcfifi6zhqqvtpeqaare"))
# Model(
#   tag: Tag("iris_classifier_model", "vmiqwpcfifi6zhqqvtpeqaare"),
#   framework: "SKLearn",
#   created: 2021/11/14 03:55:25
#   description: "The iris classifier model"
#   path: "/user/home/bentoml/models/iris_classifier_model/vmiqwpcfifi6zhqqvtpeqaare"
# )
复制代码


命令行示例如下:

> bentoml models get iris_classifier_model:vmiqwpcfifi6zhqqvtpeqaare
TAG         iris_classifier_model:vmiqwpcfifi6zhqqvtpeqaare
FRAMEWORK   SKLearn
CREATED     2021/9/21 10:07:45
DESCRIPTION The iris classifier model
PATH        /user/home/bentoml/models/iris_classifier_model/vmiqwpcfifi6zhqqvtpeqaare
复制代码


删除模型

要删除模型存储中的模型,请使用 bentoml.models 模块下的delete()函数或 models delete CLI 命令。

Python 函数示例如下:

import bentoml.models
bentoml.models.delete("iris_classifier_model:vmiqwpcfifi6zhqqvtpeqaare", skip_confirm=True)
复制代码


命令行示例如下:

> bentoml models delete iris_classifier_model:vmiqwpcfifi6zhqqvtpeqaare
复制代码


管理 Bentos


创建 Bentos

Bentos是通过 bento 构建过程创建的。 回想一下入门指南,bentos 是使用 build CLI 命令构建的。 有关更多详细信息,请参阅构建Bentos

默认情况下,内置的bentos被添加到位于 $HOME/bentoml/bentos 下的基于本地文件系统的bento商店中。

> bentoml build
复制代码


列出 Bentos

要查看Bento商店中的Bentos,请使用 list CLI 命令。

> bentoml list
BENTO                   VERSION                    LABELS      CREATED
iris_classifier_service v5mgcacfgzi6zdz7vtpeqaare  iris,prod   2021/09/19 10:15:50
复制代码


删除 Bentos

要删除Bento商店中的Bentos,请使用 delete CLI 命令。

> bentoml delete iris_classifier_service:v5mgcacfgzi6zdz7vtpeqaare


相关文章
|
监控 前端开发
STM32F103标准外设库——RCC时钟(六)
STM32F103标准外设库——RCC时钟(六)
1901 0
STM32F103标准外设库——RCC时钟(六)
|
12月前
|
人工智能 并行计算 Linux
斯坦福黑科技让笔记本GPU也能玩转AI视频生成!FramePack:压缩输入帧上下文长度!仅需6GB显存即可生成高清动画
斯坦福大学推出的FramePack技术通过压缩输入帧上下文长度,解决视频生成中的"遗忘"和"漂移"问题,仅需6GB显存即可在普通笔记本上实时生成高清视频。
2604 19
斯坦福黑科技让笔记本GPU也能玩转AI视频生成!FramePack:压缩输入帧上下文长度!仅需6GB显存即可生成高清动画
|
6月前
|
存储 缓存 数据处理
71_数据版本控制:Git与DVC在LLM开发中的最佳实践
在2025年的大模型(LLM)开发实践中,数据和模型的版本控制已成为确保项目可重复性和团队协作效率的关键环节。与传统软件开发不同,LLM项目面临着独特的数据版本控制挑战:
659 0
|
传感器 人机交互 定位技术
XR交互技术趋势:6DoF追踪、手势识别、眼动跟踪……
XR交互技术与实时云渲染共同推动了虚拟现实和增强现实的沉浸式体验发展。XR交互技术通过6DoF追踪、手势追踪、眼动追踪等手段,提供更自然、精准的用户交互方式;而实时云渲染则利用云端计算能力,为终端设备呈现高质量、低延迟的复杂图形内容。两者结合,使用户在XR环境中获得更加真实、流畅的体验。未来,XR交互技术将向多模态、精细化方向发展,进一步提升用户的沉浸感和交互体验。
924 20
|
JavaScript Java 测试技术
基于SpringBoot+Vue实现的高校食堂移动预约点餐系统设计与实现(源码+文档+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
JavaScript 小程序 Java
基于微信小程序的校园自助打印系统的设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的校园自助打印系统的设计与实现(源码+lw+部署文档+讲解等)
597 1
|
网络协议 Linux 开发者
Linux|最佳命令行下载加速器
Linux|最佳命令行下载加速器
Linux|最佳命令行下载加速器
|
机器学习/深度学习 存储 Kubernetes
如何将 Apache Airflow 用于机器学习工作流
Apache Airflow 是一个流行的平台,用于在 Python 中创建、调度和监控工作流。 它在 Github 上有超过 15,000 颗星,被 Twitter、Airbnb 和 Spotify 等公司的数据工程师使用。 如果您使用的是 Apache Airflow,那么您的架构可能已经根据任务数量及其要求进行了演变。 在 Skillup.co 工作时,我们首先有几百个 DAG 来执行我们所有的数据工程任务,然后我们开始做机器学习。
|
机器学习/深度学习 边缘计算 测试技术
MLOps模型部署的三种策略:批处理、实时、边缘计算
机器学习运维(MLOps)是一组用于自动化和简化机器学习(ML)工作流程和部署的实践。所选择的部署策略可以显著影响系统的性能和效用。所以需要根据用例和需求,采用不同的部署策略。在这篇文章中,我们将探讨三种常见的模型部署策略:批处理、实时和边缘计算。
412 4