BentoML CLI

BentoML CLI 命令有使用文档。你可以通过运行 bentoml --help 来了解更多。 --help 标志也适用于子命令,用于查看命令的详细用法,例如 bentoml build --help

另请参阅

有关使用 BentoML CLI 管理 BentoCloud 部署的详情,请参阅 BentoCloud CLI

bentoml

管理 Bento 包的命令。

bentoml [OPTIONS] COMMAND [ARGS]...

build

从当前目录构建新的 Bento。

bentoml build [OPTIONS] [BUILD_CTX]

选项

-f, --bentofile <bentofile>

bentofile 文件的路径。默认为 ‘bentofile.yaml’

--name <name>

Bento 名称

--version <version>

Bento 版本。默认情况下将生成版本。

--label <KEY=VALUE>

(多个)Bento 标签

-o, --output <output>

输出日志格式。使用 ‘-o tag’ 只显示 bento 标签。

默认:

‘default’

选项:

tag | default

--containerize

是否在构建后将 Bento 容器化。‘–containerize’ 是 ‘bentoml build && bentoml containerize’ 的快捷方式。

--push

是否将结果 bento 推送到 BentoCloud。请确保先使用 ‘bentoml cloud login’ 登录。

--force

强制推送到 BentoCloud

--threads <threads>

上传使用的线程数

--platform <platform>

构建目标平台

选项:

windows | linux | macos | x86_64-pc-windows-msvc | i686-pc-windows-msvc | x86_64-unknown-linux-gnu | aarch64-apple-darwin | x86_64-apple-darwin | aarch64-unknown-linux-gnu | aarch64-unknown-linux-musl | x86_64-unknown-linux-musl | x86_64-manylinux_2_17 | x86_64-manylinux_2_28 | x86_64-manylinux_2_31 | x86_64-manylinux_2_32 | x86_64-manylinux_2_33 | x86_64-manylinux_2_34 | x86_64-manylinux_2_35 | x86_64-manylinux_2_36 | x86_64-manylinux_2_37 | x86_64-manylinux_2_38 | x86_64-manylinux_2_39 | x86_64-manylinux_2_40 | aarch64-manylinux_2_17 | aarch64-manylinux_2_28 | aarch64-manylinux_2_31 | aarch64-manylinux_2_32 | aarch64-manylinux_2_33 | aarch64-manylinux_2_34 | aarch64-manylinux_2_35 | aarch64-manylinux_2_36 | aarch64-manylinux_2_37 | aarch64-manylinux_2_38 | aarch64-manylinux_2_39 | aarch64-manylinux_2_40

--arg <KEY=VALUE>

Bento 参数,格式为 key1=value1[,key2=value2…] 对,可指定多次

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

BUILD_CTX

可选参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

delete

删除本地 bento 存储中的 Bento。

示例
* 按“名称:版本”删除单个 bento 包,例如:bentoml delete IrisClassifier:v1
* 批量删除具有特定名称的所有 bento 包,例如:bentoml delete IrisClassifier
* 批量删除多个 bento 包(按名称和版本),用“,”分隔,例如:bentoml delete Irisclassifier:v1,MyPredictService:v2
* 批量删除多个 bento 包(按名称和版本),用“ ”分隔,例如:bentoml delete Irisclassifier:v1 MyPredictService:v2
* 批量删除且无需确认,例如:bentoml delete IrisClassifier –yes
bentoml delete [OPTIONS] DELETE_TARGETS...

选项

-y, --yes, --assume-yes

删除特定 bento 包时跳过确认

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

DELETE_TARGETS

必需参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

export

将 Bento 导出到外部文件存档

参数
BENTO_TAG: bento 标识符
OUT_PATH: 导出 bento 的输出路径。

如果未提供 out_path 参数,bento 将导出到当前目录下的 name-version.bento 文件。除了原生的 .bento 格式外,我们还支持 tar (‘tar’)、tar.gz (‘gz’)、tar.xz (‘xz’)、tar.bz2 (‘bz2’) 和 zip 格式。

示例
bentoml export FraudDetector:20210709_DE14C9
bentoml export FraudDetector:20210709_DE14C9 ./my_bento.bento
bentoml export FraudDetector:latest ./my_bento.bento
bentoml export FraudDetector:latest s3://mybucket/bentos/my_bento.bento
bentoml export [OPTIONS] BENTO_TAG [OUT_PATH]

选项

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

BENTO_TAG

必需参数

OUT_PATH

可选参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

get

通过提供 bento_tag 打印 Bento 详情。

bentoml get iris_classifier:qojf5xauugwqtgxi
bentoml get iris_classifier:qojf5xauugwqtgxi –output=json
bentoml get [OPTIONS] BENTO_TAG

选项

-o, --output <output>
选项:

json | yaml | path

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

BENTO_TAG

必需参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

import

导入之前导出的 Bento 存档文件

参数
BENTO_PATH: Bento 存档文件路径
示例
bentoml import ./my_bento.bento
bentoml import s3://mybucket/bentos/my_bento.bento
bentoml import [OPTIONS] BENTO_PATH

选项

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

BENTO_PATH

必需参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

list

列出本地存储中的 Bentos

# 显示所有已保存的 bentos
$ bentoml list
# 显示名称为 FraudDetector 的 bento 的所有版本
$ bentoml list FraudDetector
bentoml list [OPTIONS] [BENTO_NAME]

选项

-o, --output <output>
选项:

json | yaml | table

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

BENTO_NAME

可选参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

pull

从远程 Bento 存储服务器拉取 Bento。

bentoml pull [OPTIONS] BENTO_TAG

选项

-f, --force

强制从远程 Bento 存储拉取到本地,如果本地已存在则覆盖

--with-models

也拉取模型

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

BENTO_TAG

必需参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

push

将 Bento 推送到远程 Bento 存储服务器。

bentoml push [OPTIONS] BENTO_TAG

选项

-f, --force

即使远程已存在,也强制推送到远程 Bento 存储

-t, --threads <threads>

上传使用的线程数

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

BENTO_TAG

必需参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

bentoml containerize

将指定的 Bento 容器化为 OCI 兼容容器,使用任何给定的 OCI 构建器。

BENTO 是要容器化的目标 BentoService,通过名称和版本引用,格式为 name:version。例如:iris_classifier:v1.2.0

bentoml containerize 命令也支持使用 latest 标签
这将自动使用您的 Bento 最后构建的版本。
您可以使用以下命令为 Bento 构建的镜像提供一个标签:
--image-tag 标志。
您还可以在标签前加上要推送到的仓库的主机名。
$ bentoml containerize iris_classifier:latest -t repo-address.com:username/iris

这将构建一个名为 username/iris:latest 的镜像,并将其推送到 repo-address.com 的 docker 仓库。

默认情况下,containerize 命令将使用各后端实现提供的当前凭据。
bentoml containerize 还利用了 BuildKit 的功能,例如多节点
构建跨平台镜像、更高效的缓存和更安全的构建。
各后端实现默认会启用 BuildKit。要选择退出 BuildKit,请设置 DOCKER_BUILDKIT=0
$ DOCKER_BUILDKIT=0 bentoml containerize iris_classifier:latest
bentoml containerize 是后端无关的,这意味着它可以使用任何 OCI 兼容的构建器来构建容器镜像。
默认情况下,它将使用 docker 后端,该后端将使用本地 Docker 守护进程来构建镜像。
您可以使用 --backend 标志指定不同的后端。请注意,后端标志现在将通过 --opt 进行统一。

--opt 接受多个标志,并且适用于所有后端选项。

要传递布尔标志(例如:--no-cache),请使用 --opt no-cache
要传递键值对(例如:--build-arg FOO=BAR),请使用 --opt build-arg=FOO=BAR--opt build-arg:FOO=BAR。如果值包含空格,请确保引用该值。
要传递带有一个值的参数(路径、整数等)(例如:--cgroup-parent cgroupv2),请使用 --opt cgroup-parent=cgroupv2--opt cgroup-parent:cgroupv2
bentoml containerize [OPTIONS] BENTO:TAG

选项

-t, --image-tag, --docker-image-tag <NAME:TAG>

用于构建容器的名称和可选标签(格式:name:tag),默认为 bento 标签。

--backend <backend>

定义构建器后端。可用选项:docker, nerdctl, buildctl, buildx, podman, buildah

--enable-features <FEATURE[,FEATURE>

启用额外的 BentoML 功能。可用功能包括:io-json, tracing-jaeger, grpc, all, grpc-reflection, grpc-channelz, io-image, tracing-otlp, io-file, triton, io-pandas, io, aws, monitor-otlp, tracing-zipkin, tracing

--opt <ARG=VALUE[,ARG=VALUE>

定义给定后端的选项。(格式:--opt target=foo --opt build-arg=foo=BAR --opt iidfile:/path/to/file --opt no-cache

--run-as-root

是否以 root 身份运行后端。

--add-host <HOST:IP,>

(等同于 --opt add-host=host:ip):添加自定义的主机到 IP 映射。

--build-arg <KEY=VALUE,>

(等同于 --opt build-arg=FOO=bar):设置构建时变量。

--cache-from <NAME|type=TYPE[,KEY=VALUE>

(等同于 --opt cache-from=user/app:cache):外部缓存源(例如:type=local,src=path/to/dir)。

--iidfile <PATH>

(等同于 --opt iidfile=/path/to/file):将镜像 ID 写入文件。

--label <NAME|[KEY=VALUE],>

(等同于 --opt label=io.container.capabilities=baz):为镜像设置元数据。这等同于给定 Dockerfile 中的 LABEL。

--network <default|VALUE>

(等同于 --opt network=default):设置构建期间 RUN 指令的网络模式(默认 default)。

--no-cache

(等同于 --opt no-cache):构建镜像时不要使用缓存。

--output <PATH,-,type=TYPE[,KEY=VALUE>

(等同于 --opt output=type=local,dest=/path/to/dir):输出目标。

--platform <VALUE[,VALUE>

(等同于 --opt platform=linux/amd64,linux/arm/v7):设置构建的目标平台。

--progress <VALUE>

(等同于 --opt progress=auto):设置进度输出类型。使用 plain 显示容器输出。

选项:

auto | tty | plain

--pull

(等同于 --opt pull):始终尝试拉取所有引用的镜像。

--secret <type=TYPE[,KEY=VALUE>

(等同于 --opt secret=id=aws,src=$HOME/.aws/crendentials):要向构建暴露的 Secret。

--ssh <default|<id>[=<socket>|<key>[,<key>

(等同于 --opt ssh=default=$SSH_AUTH_SOCK):要向构建暴露的 SSH 代理 socket 或密钥。请参阅 https://docs.dockerd.com.cn/engine/reference/commandline/buildx_build/#ssh

--target <VALUE>

(等同于 --opt target=release-stage):设置要构建的目标构建阶段。

--allow <ENTITLEMENT>

(等同于 --opt allow=network.host):允许额外的特权许可(例如,network.host, security.insecure)。

--attest <NAME|type=TYPE[,KEY=VALUE>

(等同于 --opt attest=type=sbom,generator=image):证明参数(例如,type=local,ref=path/to/dir)。

--build-context <name=VALUE>

(等同于 --opt build-context=project=path/to/project/source):其他构建上下文(例如,name=path)。

--builder <builder>

(等同于 --opt builder=default):覆盖已配置的构建器实例。同 docker buildx --builder

--cache-to <NAME|type=TYPE[,KEY=VALUE>

(等同于 --opt cache-to=type=registry,ref=user/app):缓存导出目标(例如,user/app:cache, type=local,dest=path/to/dir)。

--load

(等同于 --opt load):--output=type=docker 的简写。请注意 --push--load 互斥。

--push

(等同于 --opt push):--output=type=registry 的简写。请注意 --push--load 互斥。

--provenance <provenance>

(等同于 --opt provenance=generator=image):--attest=type=provenance 的简写。

--quiet

(等同于 --opt quiet):抑制构建输出并在成功时打印镜像 ID

--cgroup-parent <cgroup_parent>

(等同于 --opt cgroup-parent=cgroupv2):容器的可选父 cgroup。

--ulimit <type>=<soft limit>[:<hard limit>

(等同于 --opt ulimit=nofile=1024:1024):Ulimit 选项。

--no-cache-filter <no_cache_filter>

(等同于 --opt no-cache-filter):不缓存指定的阶段。

--metadata-file <metadata_file>

(等同于 --opt metadata-file=/path/to/file):将构建结果元数据写入文件。

--sbom <sbom>

(等同于 --opt sbom=generator=image):--attest=type=sbom 的简写。

--shm-size <shm_size>

(等同于 --opt shm-size=8192Mb):/dev/shm 的大小。

参数

BENTO:TAG

必需参数

环境变量

BENTOML_CONTAINERIZE_BACKEND

提供 --backend 的默认值

bentoml env

打印环境信息并退出

bentoml env [OPTIONS]

选项

-o, --output <output>

输出格式。使用 ‘-o bash’ 以不带格式显示。

默认:

'md'

选项:

md | bash

bentoml models

模型子命令组

bentoml models [OPTIONS] COMMAND [ARGS]...

delete

删除本地模型仓库中的模型。

示例
* 按“名称:版本”删除单个模型,例如:bentoml models delete iris_clf:v1
* 批量删除具有特定名称的所有模型,例如:bentoml models delete iris_clf
* 批量删除多个模型,按名称和版本指定,用“,”分隔,例如:bentoml models delete iris_clf:v1,iris_clf:v2
* 批量删除多个模型,按名称和版本指定,用“ ”分隔,例如:bentoml models delete iris_clf:v1 iris_clf:v2
* 在没有确认的情况下批量删除,例如:bentoml models delete IrisClassifier –yes
bentoml models delete [OPTIONS] DELETE_TARGETS...

选项

-y, --yes, --assume-yes

删除特定模型时跳过确认。

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

DELETE_TARGETS

必需参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

export

将模型导出到外部存档文件

参数

MODEL_TAG: 模型标识符
OUT_PATH: 导出模型的输出路径。
如果未提供此参数,模型将导出到当前目录中的 name-version.bentomodel 文件。
除了原生的 .bentomodel 格式,我们还支持 tar(‘tar’)、tar.gz (‘gz’)、tar.xz (‘xz’)、tar.bz2 (‘bz2’) 和 zip 等格式。

示例

bentoml models export FraudDetector:latest
bentoml models export FraudDetector:latest ./my_model.bentomodel
bentoml models export FraudDetector:20210709_DE14C9 ./my_model.bentomodel
bentoml models export FraudDetector:20210709_DE14C9 s3://mybucket/models/my_model.bentomodel
bentoml models export [OPTIONS] MODEL_TAG [OUT_PATH]

选项

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

MODEL_TAG

必需参数

OUT_PATH

可选参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

get

通过提供 model_tag 打印模型详情

bentoml get iris_clf:qojf5xauugwqtgxi
bentoml get iris_clf:qojf5xauugwqtgxi –output=json
bentoml models get [OPTIONS] MODEL_TAG

选项

-o, --output <output>
选项:

json | yaml | path

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

MODEL_TAG

必需参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

import

导入先前导出的模型存档文件

bentoml models import ./my_model.bentomodel bentoml models import s3://mybucket/models/my_model.bentomodel

bentoml models import [OPTIONS] MODEL_PATH

选项

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

MODEL_PATH

必需参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

list

列出本地仓库中的模型

# 显示所有已保存的模型
$ bentoml models list
# 显示名称为 FraudDetector 的 bento 的所有版本
$ bentoml models list FraudDetector
bentoml models list [OPTIONS] [MODEL_NAME]

选项

-o, --output <output>
选项:

json | yaml | table

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

MODEL_NAME

可选参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

pull

从远程模型仓库拉取模型。如果未提供 model_tag,它将拉取 bentofile.yaml 中定义的模型。

bentoml models pull [OPTIONS] [MODEL_TAG]

选项

-f, --force

强制从远程模型仓库拉取到本地,即使本地已存在也覆盖

-F, --bentofile <bentofile>

bentofile 文件的路径。默认为 ‘bentofile.yaml’

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

MODEL_TAG

可选参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

push

将模型推送到远程模型仓库。

bentoml models push [OPTIONS] MODEL_TAG

选项

-f, --force

即使远程已存在,也强制推送到远程模型仓库

-t, --threads <threads>

上传使用的线程数

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

MODEL_TAG

必需参数

环境变量

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值

bentoml serve

bentoml serve [OPTIONS] COMMAND [ARGS]...

serve

从给定的 🍱 启动 HTTP BentoServer

BENTO 是服务目标,可以是以下任一导入形式:
- 'bentoml.Service' 实例的导入路径
- 本地 Bento 仓库中 Bento 的标签
- 包含有效 'bentofile.yaml' 构建文件(其中包含 'service' 字段,提供 'bentoml.Service' 实例导入路径)的文件夹
- 已构建 Bento 的路径(仅供内部和调试使用)

例如

从 bentoml.Service 实例源代码提供服务(仅供开发使用)
‘bentoml serve fraud_detector.py:svc’
从本地仓库中已构建的 Bento 提供服务
‘bentoml serve fraud_detector:4tht2icroji6zput3suqi5nl2’
‘bentoml serve fraud_detector:latest’
从 Bento 目录提供服务
‘bentoml serve ./fraud_detector_bento’
如果提供了 ‘–reload’,BentoML 将在开发期间检测代码和模型仓库的变化,并自动重启服务。
‘–reload’ 标志将
- 默认情况下,‘–working-dir’ 下的所有文件更改(默认为当前目录)将触发重启
- 指定时,对于代码和文件更改,将遵循 ‘bentofile.yaml’ 中的 ‘include’ 和 ‘exclude’ 以及 ‘–working-dir’ 中的 ‘.bentoignore’ 文件
- 所有模型仓库更改也将触发重启(保存新模型或删除现有模型)
bentoml serve serve [OPTIONS] [BENTO]

选项

--development

以开发模式运行 BentoServer

默认:

False

--production

以生产模式运行 BentoServer(已弃用)

-p, --port <port>

REST API 服务器监听的端口

--host <host>

REST API 服务器绑定的主机

--reload

检测到代码更改时重新加载 Service

默认:

False

--working-dir <working_dir>

从源代码加载时,指定查找 Service 实例的目录

--arg <KEY=VALUE>

Bento 参数,格式为 key1=value1[,key2=value2…] 对,可指定多次

--env <env>

运行命令的环境

选项:

conda

--context <cloud_context>

BentoCloud 上下文名称。

--do-not-track

不发送使用信息

--verbose, --debug

生成调试信息

-q, --quiet

抑制所有警告和信息日志

参数

BENTO

可选参数

环境变量

BENTOML_PORT

提供 -p 的默认值

BENTOML_HOST

提供 --host 的默认值

BENTOML_API_WORKERS

提供 --api-workers 的默认值

BENTOML_TIMEOUT

提供 --timeout 的默认值

BENTOML_DO_NOT_TRACK

提供 --do-not-track 的默认值

BENTOML_VERBOSITY

提供 -q 的默认值