BentoML Core Concepts (4): Modelo e Gerenciamento de Bento

Adquira o hábito de escrever juntos! Este é o 15º dia da minha participação no "Nuggets Daily New Plan·April Update Challenge", clique para ver os detalhes do evento .

O BentoML fornece lojas locais e centralizadas fáceis de usar para gerenciar modelos e bentos.

Este artigo se concentra no modelo baseado em sistema de arquivos local e no uso de lojas bento. Para saber mais sobre a solução de loja centralizada , consulte BentoML Yatai .

modelo de gestão

Criar um modelo

Lembre-se do guia de introdução anterior que os modelos são salvos usando save()funções . No exemplo, usamos a save()função para a estrutura Scikit Learn, conforme mostrado abaixo.

import bentoml.sklearn

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

Os modelos também podem ser importados de registros específicos da estrutura com suporte. No exemplo abaixo, o modelo é importado do registro do modelo MLFlow.

import bentoml.mlflow

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

Por padrão, os modelos salvos e importados são adicionados ao repositório de modelo baseado em sistema de arquivos local localizado no $HOME/bentoml/modelsdiretório .

Listar modelos

Para listar todos os modelos criados, bentoml.modelsuse uma list()função Python no módulo ou um models listcomando CLI.

Um exemplo de uma função Python é o seguinte:

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
#   },
# ]
复制代码

Um exemplo da linha de comando é o seguinte:

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

Para obter informações do modelo, use bentoml.modelsas get()funções models getcomandos block ou CLI.

Um exemplo de uma função Python é o seguinte:

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"
# )
复制代码

Um exemplo da linha de comando é o seguinte:

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

excluir modelo

Para excluir um modelo no armazenamento de modelo, bentoml.modelsuse a delete()função ou models deleteo comando CLI no módulo.

Um exemplo de uma função Python é o seguinte:

import bentoml.models

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

Um exemplo da linha de comando é o seguinte:

> bentoml models delete iris_classifier_model:vmiqwpcfifi6zhqqvtpeqaare
复制代码

Gerenciar Bentos

Criar Bentos

Bentos são criados através do processo de construção do bento. Lembre-se do guia de introdução que o bentos é construído usando buildcomandos da CLI. Veja Edifício Bentos para mais detalhes .

Por padrão, bentos embutidos são adicionados ao armazenamento de bento baseado em sistema de arquivos local localizado $HOME/bentoml/bentosem .

> bentoml build
复制代码

Listar Bentos

Para visualizar Bentos na loja Bento, use o listcomando CLI.

> bentoml list

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

Remover Bentos

Para remover Bentos na loja Bento, use o deletecomando CLI.

> bentoml delete iris_classifier_service:v5mgcacfgzi6zdz7vtpeqaare
复制代码

Guess you like

Origin juejin.im/post/7086491756761448455