BentoMLコアコンセプト(4):モデルとBento管理

一緒に書く習慣を身につけましょう!「ナゲッツデイリーニュープラン・4月更新チャレンジ」に参加して15日目です。クリックしてイベントの詳細をご覧ください

BentoMLは、モデルとお弁当を管理するための使いやすいローカルストアと集中ストアを提供します。

この記事では、ローカルファイルシステムベースのモデルとお弁当店の使用に焦点を当てています。集中型ストアソリューションの詳細については、 BentoMLYataiを参照してください。

管理モデル

モデルを作成する

以前のスタートガイドから、モデルはフレームワーク固有のsave()関数。この例では、以下に示すように、ScikitLearnフレームワークのsklearnモジュールのsave()関数ます。

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 listCLIコマンドを使用します。

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 getCLIコマンドの下の関数を使用します。

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 deleteCLIコマンドを使用します。

Python関数の例は次のとおりです。

import bentoml.models

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

コマンドラインの例は次のとおりです。

> bentoml models delete iris_classifier_model:vmiqwpcfifi6zhqqvtpeqaare
复制代码

Bentosを管理する

弁当を作成する

Bentosは、bentoビルドプロセスによって作成されます。スタートガイドから、bentosはbuildCLIコマンドを使用して構築されていることを思い出してください。詳細については、 Bentosの構築を参照してください。

デフォルトでは、組み込みのBentoは、の$HOME/bentoml/bentos下。

> bentoml build
复制代码

ベントスのリスト

BentoストアでBentosを表示するには、listCLIコマンドを使用します。

> bentoml list

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

弁当を削除します

BentoストアでBentosを削除するには、deleteCLIコマンドを使用します。

> bentoml delete iris_classifier_service:v5mgcacfgzi6zdz7vtpeqaare
复制代码

おすすめ

転載: juejin.im/post/7086491756761448455