模型推理服务人工智能后端大模型MLOpsLLMOps【免费下载链接】BentoMLThe easiest way to serve AI apps and models - Build Model Inference APIs, Job queues, LLM apps, Multi-model pipelines, and more!项目地址https://gitcode.com/gh_mirrors/be/BentoML点击查看免费下载Bento 构建选项Build Options是 BentoML 中定义项目运行时规格、将源码工程打包为可部署 Bento 的一整套配置体系你可以通过pyproject.toml的[tool.bentoml.build]段或 YAML 配置文件通常命名为bentofile.yaml来声明。读完本文你将掌握service、models、python、conda、docker、envs等全部核心字段的语义与用法理解 include/exclude 打包规则、PyPI 依赖锁定机制并学会在大型多模块代码库中使用自定义build_ctx完成 Bento 构建。注意自 v1.3.20 起BentoML 引入了新的 Python SDK 来定义运行时环境提供了一种比pyproject.toml/bentofile.yaml更具编程性的替代方案。BentoML 会持续兼容这些配置文件但官方建议在新项目中优先使用 Python SDK 定义运行时环境。配置文件的两张面孔pyproject.toml与bentofile.yaml构建选项既可以写在pyproject.toml的[tool.bentoml.build]段也可以写在独立的 YAML 文件如bentofile.yaml中。BentoML 的构建器会优先在构建上下文中寻找这两类文件源码中定义为DEFAULT_BENTO_BUILD_FILES (bentofile.yaml, pyproject.toml)见 src/bentoml/_internal/bento/bento.py并分别通过from_pyproject基于tomllib/tomli解析和from_yaml基于yaml.safe_load解析加载为同一个BentoBuildConfig模型见 src/bentoml/_internal/bento/build_config.py。下面各节将同时给出两种格式的等价写法。核心字段逐一解析service必填字段指定 Service 入口service是构建 Bento 时必须提供的字段它指向一个bentoml.service装饰的 Service 对象所在的位置通常写作service: service:class-name的形式servicePython 模块名即service.py文件class-name在service.py中定义、由bentoml.service装饰的类名。若service.py中存在多个 Service可以在此指定接收用户请求的主 Service其余 Service 会随主 Service 一同启动。# pyproject.toml [tool.bentoml.build] service service:MyService# bentofile.yaml service: service:MyService在构建过程中BentoML 会实际导入该 Service 以校验其可加载性svc load(build_config.service, working_dirbuild_ctx, ...)见 src/bentoml/_internal/bento/bento.py如果配置中没有写service字段BentoML 会自动从构建上下文中推导出 Service 的导入字符串。description为 Bento 添加文档说明description允许你为 Bento 附加相关说明文档支持纯文本或 Markdown 格式既可以内联提供也可以引用外部文件# pyproject.toml [tool.bentoml.build] service service:svc description This is an inline description for the Service. BentoML is awesome!# pyproject.toml [tool.bentoml.build] service service:svc description file: ./README.md# bentofile.yaml service: service:svc description: | ## Description For My Bento Use **any markdown syntax** here! BentoML is awesome!# bentofile.yaml service: service:svc description: file: ./README.md对于来自外部文件的描述可以使用绝对路径或相对路径并确保执行bentoml build时文件真实存在。相对路径的参考点是build_ctx默认是执行bentoml build的当前目录。从源码实现看当描述以file:开头时BentoML 会解析并复制该文件到 Bento 的readme.md当描述为空但构建上下文存在readme.md时也会自动带上见 src/bentoml/_internal/bento/bento.py。labels给 Bento 与模型打标签labels是与对象关联的键值对。在 BentoML 中Bento 和模型都可以附加标签用于在 BentoCloud 中识别、分类 Bento 和模型且可随时添加或修改。# pyproject.toml [tool.bentoml.build.labels] owner bentoml-team stage not-ready# bentofile.yaml labels: owner: bentoml-team stage: not-ready从源码可以看出Service 自身定义的labels也会与配置中的labels合并build_config.labels.update(svc.labels)见 src/bentoml/_internal/bento/bento.py。此外若 Service 暴露了 OpenAI 兼容的/chat/completions端点构建时还会自动写入openai_endpoint标签见 src/bentoml/_internal/bento/bento.py。args为模板参数动态赋值在通过bentoml.use_arguments定义了 Service 的模板参数后可以使用args字段在构建配置中动态设置对应值。例如# service.py from pydantic import BaseModel import bentoml class BentoArgs(BaseModel): model_name: str gpu: int 8 gpu_type: str nvidia-h200-141gb args bentoml.use_arguments(BentoArgs) bentoml.service( resources{ gpu: args.gpu, gpu_type: args.gpu_type } ) class LLM: model bentoml.models.HuggingFaceModel(args.model_name)然后在构建配置中提供这些参数的值# pyproject.toml [tool.bentoml.build.args] model_name deepseek-ai/DeepSeek-V3 gpu 4# bentofile.yaml args: model_name: deepseek-ai/DeepSeek-V3 gpu: 4从源码实现看use_arguments会接收 pydantic 模型并完成校验return model(**arguments)校验失败时会抛出InvalidArgument提示通过--arg提供正确参数而set_arguments(arguments, overrideFalse)会将配置文件中的args与命令行传入的参数合并且命令行参数优先见 src/bentoml/_internal/utils/args.py 与 src/bentoml/_internal/bento/build_config.py。include与exclude精确控制打包文件include用于指定构建 Bento 时要打包的特定文件支持通配符与目录模式匹配。例如设为*.py表示将build_ctx下所有 Python 文件打包进 Bento# pyproject.toml [tool.bentoml.build] include [data/, **/*.py, config/*.json, path/to/a/file.csv]# bentofile.yaml include: - data/ - **/*.py - config/*.json - path/to/a/file.csv如果未指定includeBentoML 默认包含build_ctx下的所有文件源码中默认值为[*]见 src/bentoml/_internal/bento/build_config.py仅排除exclude字段中显式声明的文件。exclude用于排除特定文件在目录文件较多时非常实用——你只需列出要忽略的文件。该字段指定相对于build_ctx目录的文件路径模式类似于.gitignore# pyproject.toml [tool.bentoml.build] include [data/, **/*.py] exclude [tests/, secrets.key]# bentofile.yaml include: - data/ - **/*.py exclude: - tests/ - secrets.keyinclude和exclude均支持 gitignore 风格的模式匹配。另一种方式是直接在build_ctx目录下创建.bentoignore文件# .bentoignore __pycache__/ *.py[cod] *$py.class .ipynb_checkpoints/ training_data/执行顺序exclude总是在include之后应用。从源码实现看BentoPathSpec见 src/bentoml/_internal/bento/build_config.py文件是否被打包由以下规则共同决定必须同时命中include、不命中exclude、且不在内置忽略清单.git/、.venv/、venv/、__pycache__/、.DS_Store内同时还会递归读取各子目录中的.bentoignore。打包时超过 10MiB 的文件会输出告警见 src/bentoml/_internal/bento/bento.py。此外路径不能以../开头——超出构建上下文的文件无法直接包含需要使用符号链接或手动复制。models指定 Bento 关联的模型可以使用字符串模型标签Model Tag或字典来指定构建 Bento 时使用的模型。如果不在配置中定义models则使用 Service 中引用的模型来构建 Bento。# pyproject.toml [tool.bentoml.build] models [ summarization-model:latest, { tag summarization-model:version1, filter label:staging, alias summarization-model_v1 } ]# bentofile.yaml models: - summarization-model:latest # A string model tag - tag: summarization-model:version1 # A dictionary filter: label:staging alias: summarization-model_v1各字段含义tag模型名称与版本用冒号分隔filter该字段使用与 BentoCloud 相同的过滤语法用于筛选特定模型例如筛选具有相同标签的模型可以为一个模型添加多个以逗号分隔的过滤器alias模型别名。指定后可直接在代码中使用如bentoml.models.BentoModel(alias)。在源码中字符串或字典都会被归一化为ModelSpec(tag, filter, alias)见 src/bentoml/_internal/bento/build_config.py构建时通过BentoModel(model_spec.tag)拉取并写入 Bento 的模型清单同时将别名注册到BentoMLContainer.model_aliases见 src/bentoml/_internal/bento/bento.py。Python 包管理python字段全解声明依赖包packages使用python.packages字段声明 Bento 所需的 Python 包。BentoML 允许指定期望版本也可以从自定义 PyPI 源或 GitHub 仓库安装。若某个包未指定版本BentoML 在构建时会为当前平台与 Python 版本锁定所有 Python 包的版本。在pyproject.toml中可以通过project.dependencies声明依赖# pyproject.toml [project] dependencies [ numpy, matplotlib3.5.1, package0.2,0.3, torchvision0.9.2, githttps://github.com/username/mylib.gitmain, ]这与使用python.packages等价# pyproject.toml [tool.bentoml.build.python] packages [ numpy, matplotlib3.5.1, package0.2,0.3, torchvision0.9.2, githttps://github.com/username/mylib.gitmain ]# bentofile.yaml python: packages: - numpy - matplotlib3.5.1 - package0.2,0.3 - torchvision0.9.2 - githttps://github.com/username/mylib.gitmain如果同时指定project.dependencies和tool.bentoml.build.python.packages两部分依赖会被合并源码中通过python_packages.extend(dependencies)实现见 src/bentoml/_internal/bento/build_config.py。不需要在此字段中显式声明bentoml依赖——当前版本的 BentoML 默认会被加入依赖列表如需覆盖可以指定不同的 BentoML 版本。源码实现中BentoML 会检查requirements.txt/packages中是否已含 bentoml 声明若没有则自动追加见 src/bentoml/_internal/bento/build_config.py。直接引用 requirements.txt如果项目已有requirements.txt文件也可以直接提供其路径# pyproject.toml [tool.bentoml.build.python] requirements_txt ./project-a/ml-requirements.txt# bentofile.yaml python: requirements_txt: ./project-a/ml-requirements.txt注意当同时指定requirements_txt与packages时源码会给出警告并忽略packages见 src/bentoml/_internal/bento/build_config.py。从 GitHub 仓库安装包使用 pip requirements 文件格式从 GitHub 仓库引入包可以指定仓库 URL、分支、标签或提交哈希以及当 Python 包不在仓库根目录时的子目录# pyproject.toml [tool.bentoml.build.python] packages [ githttps://github.com/username/repository.gitbranch_name, githttps://github.com/username/repository.gitv1.0.0, githttps://github.com/username/repository.gitabcdef1234567890abcdef1234567890abcdef12, githttps://github.com/username/repository.gitbranch_name#subdirectorypackage_dir, ]# bentofile.yaml python: packages: - githttps://github.com/username/repository.gitbranch_name - githttps://github.com/username/repository.gitv1.0.0 - githttps://github.com/username/repository.gitabcdef1234567890abcdef1234567890abcdef12 - githttps://github.com/username/repository.gitbranch_name#subdirectorypackage_dirpack_git_packages选项默认为true控制这些 GitHub 包是否在构建过程中被克隆并打包进 Bento。这对于标准 PyPI 源中不可用的依赖、或需要锁定 Git 仓库特定版本如 tag、commit的依赖非常有用# pyproject.toml [tool.bentoml.build.python] pack_git_packages true packages [githttps://github.com/username/repository.gitabcdef1234567890abcdef1234567890abcdef12]# bentofile.yaml python: pack_git_packages: true # Enable packaging of Git-based packages packages: - githttps://github.com/username/repository.gitabcdef1234567890abcdef1234567890abcdef12需要留意lock_packages与pack_git_packages的联动lock_packages控制是否在构建 Bento 时固定所有依赖不仅仅是 Git 依赖的版本。禁用pack_git_packages也会禁用包锁定lock_packages除非显式设置源码中默认值推导逻辑为lock_packages pack_git_packages is not False见 src/bentoml/_internal/bento/build_config.py。平台锁定说明BentoML 总是尝试针对 Linux x86_64 平台锁定包版本以匹配部署目标。如果 Bento 包含带环境标记environment markers的依赖或传递依赖它们将按 Linux x86_64 平台解析。例如若 Bento 依赖torch即使nvidia-*系列包仅对 Linux x86_64 平台必需也会被纳入最终锁定结果。如果要为其他平台构建 Bento可以给bentoml build传入--platform选项$ bentoml build --platform macos使用私有 GitHub 仓库要使用私有 GitHub 仓库按以下步骤操作通过 SSH 引入仓库中的 Python 包并确保运行 BentoML 的环境已配置相应的 SSH 密钥且这些密钥已添加到 GitHub# pyproject.toml [tool.bentoml.build.python] packages [ gitssh://gitgithub.com/username/repository.gitbranch_name # The SSH URL for the repository ]# bentofile.yaml python: packages: - gitssh://gitgithub.com/username/repository.gitbranch_name # The SSH URL for the repository确保启用pack_git_packages这样私有包才能用于构建设置环境变量BENTOML_ENABLE_FEATURESno_image。Pip 安装选项pip install options可以在python字段中提供额外的pip install参数这些参数将应用于python.packages中定义的所有包以及requirements_txt文件# pyproject.toml [tool.bentoml.build.python] requirements_txt ./requirements.txt index_url https://my.mirror.com/simple no_index false trusted_host [pypi.python.org, my.mirror.com] find_links [https://download.pytorch.org/whl/cu80/stable.html] extra_index_url [ https://other api token:my.mirror.com/pypi/simple, https://pypi.python.org/simple ] pip_args --pre -U --force-reinstall# bentofile.yaml python: requirements_txt: ./requirements.txt index_url: https://my.mirror.com/simple no_index: false trusted_host: - pypi.python.org - my.mirror.com find_links: - https://download.pytorch.org/whl/cu80/stable.html extra_index_url: - https://other api token:my.mirror.com/pypi/simple - https://pypi.python.org/simple pip_args: --pre -U --force-reinstall默认情况下BentoML 会在所有本地镜像构建之间缓存 pip 产物以加速构建。若要强制重新下载而不是使用缓存可以在bentofile.yaml中指定pip_args: --no-cache-dir或在bentoml containerize命令中使用--no-cache选项$ bentoml containerize my_bento:latest --no-cache从源码实现看index_url、trusted_host、find_links、extra_index_url会被转换为uv pip compile的兼容参数no_index追加--no-indexpip_args则按空白分词后追加到最终install.sh的命令行中见 src/bentoml/_internal/bento/build_config.py。此外当no_indextrue时会忽略index_url与extra_index_url见 src/bentoml/_internal/bento/build_config.py。PyPI 包锁定机制package locking默认情况下BentoML 会自动锁定所有包的版本以及它们依赖图中的所有包生成包含全部包及精确版本的requirements.txt实际为requirements.lock.txt。该过程底层使用uv pip compile。如果已经为每个包指定了版本或希望跳过此过程可将lock_packages设为false# pyproject.toml [tool.bentoml.build.python] requirements_txt ./requirements.txt lock_packages false# bentofile.yaml python: requirements_txt: ./requirements.txt lock_packages: false从源码实现看锁定流程会调用uv pip compile并附带--allow-unsafe为pyfilesystem2保留setuptools、--emit-index-url、--emit-find-links、--no-annotate等参数同时按目标平台传入--python-platform见 src/bentoml/_internal/bento/build_config.pyGit 依赖随后会被替换为本地克隆打包的 wheel 路径fix_dep_urls见 src/bentoml/_internal/bento/build_config.py。python字段配置总表字段说明requirements_txt自定义requirements.txt文件的路径packages要包含进该 Bento 的包列表lock_packages是否锁定包版本index_url--index-urlpip 参数的输入no_index是否包含--no-indexpip 参数trusted_host可信主机列表作为--trusted-hostpip 参数的输入find_links链接列表作为--find-linkspip 参数的输入extra_index_url额外索引 URL 列表作为--extra-index-urlpip 参数的输入pip_args安装包时要添加的任何额外 pip 参数wheels要包含进 Bento 的 wheel 文件路径列表环境变量envs环境变量对于以安全、灵活的方式管理配置和密钥非常重要。它们让你无需硬编码敏感信息如 API 密钥、数据库凭据也无需硬编码在不同环境之间可能变化的可配置参数。在bentofile.yaml中通过envs键设置环境变量每个环境变量以name和value键定义# pyproject.toml [tool.bentoml.build] envs [ { name VAR_NAME, value value }, { name API_KEY, value your_api_key_here } ]# bentofile.yaml envs: - name: VAR_NAME value: value - name: API_KEY value: your_api_key_here这些环境变量会被注入到 Bento 容器中。从源码看每个环境变量还可以带有stage字段取值为all、build、runtime之一默认为all用于控制变量在构建阶段、运行阶段还是全部阶段生效见 src/bentoml/_internal/bento/build_config.py。如果部署在 BentoCloud 上既可以通过配置中的envs设置环境变量也可以在bentoml deploy时使用--env标志。配置部署中环境变量一节有详细介绍。Conda 依赖condaConda 依赖可以在conda字段下指定# pyproject.toml [tool.bentoml.build.conda] channels [default] dependencies [h2o] pip [scikit-learn1.2.0]# bentofile.yaml conda: channels: - default dependencies: - h2o pip: - scikit-learn1.2.0channels自定义的 conda channel。如果未指定BentoML 默认使用社区维护的conda-forgechannel源码中默认值填充逻辑见 src/bentoml/_internal/bento/build_config.pydependencies要包含进环境的自定义 conda 依赖pip要包含的特定 pip conda 依赖。可选地可以将已有 conda 环境的所有依赖导出到environment.yml文件并在pyproject.toml或bentofile.yaml中提供该文件。如果指定了该文件它将覆盖其他任何附加选项源码中会给出警告并忽略channels/dependencies/pip见 src/bentoml/_internal/bento/build_config.py。导出 conda 环境conda env export environment.yml在配置中添加# pyproject.toml [tool.bentoml.build.conda] environment_yml ./environment.yml# bentofile.yaml conda: environment_yml: ./environment.yml与 Python 包不同BentoML 不支持自动锁定 conda 包版本建议在配置文件中显式指定版本。另请参阅当提供conda选项时BentoML 会在生成的 Dockerfile 中选择预装 Miniconda 的 Docker 基础镜像。注意只有debian和alpine发行版支持conda详见下文docker一节。源码中对此有显式校验如果distro不在支持 Miniconda 的发行版列表内会直接抛出异常见 src/bentoml/_internal/bento/build_config.py。另外conda与 CUDA 版本不能同时使用若同时需要两者请使用自定义基础镜像或dockerfile_template见 src/bentoml/_internal/bento/build_config.py。Docker 镜像定制dockerBentoML 让把 Bento 部署到 Docker 容器变得简单并提供一组选项来自定义从 Bento 生成的 Docker 镜像。以下docker字段包含一些基础 Docker 配置# pyproject.toml [tool.bentoml.build.docker] distro debian python_version 3.11 system_packages [libblas-dev, liblapack-dev, gfortran]# bentofile.yaml docker: distro: debian python_version: 3.11 system_packages: - libblas-dev - liblapack-dev - gfortranBentoML 使用 BuildKit缓存高效的构建工具包来容器化 Bento。BuildKit 随 Docker 18.09 一起提供因此如果你通过 Docker Desktop 使用 DockerBuildKit 默认可用如果使用独立版 Docker可按照对应说明安装 BuildKit。支持的 OS 发行版distroBentoML 目前支持以下 OS 发行版debian默认值与 Ubuntu 类似alpine基于 Alpine Linux 的最小化 Docker 镜像ubi8Red Hat Universal Base ImageamazonlinuxAmazon Linux 2。源码中CONTAINER_METADATA见 src/bentoml/_internal/container/frontend/dockerfile/init.py记录了每个发行版支持的 Python 版本3.9–3.14、CUDA 版本11.2.2–12.8.1、架构amd64、arm64、ppc64le、s390x以及基础镜像与安装命令。需要注意的是alpine与amazonlinux不支持 CUDAamazonlinux仅支持 Python 3.8debian/alpine额外支持 Miniconda。Setup 脚本setup_script对于更高级的 Docker 定制还可以使用setup_script字段在镜像构建过程中注入任意脚本。例如对于 NLP 项目可以在镜像中预先下载 NLTK 数据# pyproject.toml [tool.bentoml.build.python] packages [nltk] [tool.bentoml.build.docker] setup_script ./setup.sh# bentofile.yaml python: packages: - nltk docker: setup_script: ./setup.sh在setup.sh文件中#!/bin/bash set -euxo pipefail echo Downloading NLTK data.. python -m nltk.downloader all构建新的 Bento 后运行bentoml containerize MY_BENTO --progress plain查看 Docker 镜像构建进度。新构建的 Docker 镜像将包含预下载的 NLTK 数据集。提示处理 bash 脚本时建议在开头添加set -euxo pipefail。尤其是缺少set -e时脚本会在bentoml containerize期间静默失败而不抛出异常。也可以提供 Python 脚本来初始化 Docker 镜像# pyproject.toml [tool.bentoml.build.python] packages [nltk] [tool.bentoml.build.docker] setup_script ./setup.py# bentofile.yaml python: packages: - nltk docker: setup_script: ./setup.py在setup.py文件中#!/usr/bin/env python import nltk print(Downloading NLTK data..) nltk.download(treebank)注意上面示例脚本第一行的#!/bin/bash与#!/usr/bin/env pythonShebang提供给 BentoML 的 setup 脚本必须带有 Shebang。此外脚本必须可执行——源码中会检查os.access(setup_script, os.X_OK)非可执行文件在非 Windows 平台会直接报错见 src/bentoml/_internal/bento/build_config.py。Setup 脚本总是在指定的 Python 包、conda 依赖和系统包安装完成后执行因此可以在初始化脚本中导入并使用这些库。docker字段配置总表字段说明distroDocker 镜像上的 OS 发行版默认为debianpython_versionDocker 镜像上的 Python 版本默认为构建环境中的 Python 版本cuda_version已弃用。用于在 Docker 镜像上运行需要 GPU 的模型。使用 PyTorch 或 TensorFlow 在 GPU 上运行模型时建议直接用pip安装它们及其对应的 CUDA 依赖无需单独配置cuda_version。参见 GPU 推理system_packages将在容器中安装的系统包setup_script在 Docker 构建过程中执行的 Python 或 Shell 脚本base_image用户提供的 Docker 基础镜像将覆盖镜像的所有其他自定义属性dockerfile_template通过提供扩展默认 Dockerfile 的 Jinja2 模板来自定义生成的 Dockerfile关于python_version从源码看 BentoML 只取主次版本如3.11并安装该大版本下最新的 Python若需精确版本应使用自定义 Docker 基础镜像见 src/bentoml/_internal/bento/build_config.py。base_image一旦指定distro、python_version、cuda_version、system_packages等选项都会被忽略见 src/bentoml/_internal/bento/build_config.py。CUDA 版本参数支持缩写如12、12.6会自动映射到具体版本号如12→12.8.1见 src/bentoml/_internal/container/frontend/dockerfile/init.py。自定义构建上下文Custom build context对于属于更大代码库、需要与其他本地 Python 模块交互的项目或包含多个 Bento/Service 的项目可能无法将所有 Service 定义代码和pyproject.toml或bentofile.yaml放在项目根目录。BentoML 允许将 Service 定义和pyproject.toml或bentofile.yaml放在项目目录中的任意位置。在这种情况下运行bentoml build命令时需指定build_ctx和bentofile参数build_ctx构建上下文代表 Python 项目的工作目录。构建过程中它会被前置到PYTHONPATH确保本地 Python 模块能正确导入。默认情况下它被设置为执行bentoml build命令的当前目录。bentofile默认为构建上下文中的pyproject.toml或bentofile.yaml文件。自定义这两个值的用法bentoml build -f ./src/my_project_a/bento_fraud_detect.yaml ./src/从 CLI 源码看build命令的第一个位置参数即build_ctx默认.-f/--bentofile指定配置文件路径还支持--name、--version、--label KEYVALUE、-o/--output、--containerize、--push、--platform等选项见 src/bentoml_cli/bentos.py。在源码层面build_ctx会被os.path.realpath(os.path.expanduser(...))解析且必须是存在的目录否则抛出InvalidArgument见 src/bentoml/_internal/bento/bento.py。Bento 的标准目录结构默认情况下所有构建的 Bento 都存储在 BentoML 的 Bento Store本质上是本地目录中。可以通过以下命令进入特定 Bento 的目录cd $(bentoml get BENTO_TAG -o path)根据pyproject.toml或bentofile.yaml中的配置目录内可能包含不同的文件和子目录。一个典型的 Bento 包含以下关键子目录src包含include字段指定的文件。这些文件相对于用户 Python 代码的 CWD当前工作目录因此用户代码中可以导入相对模块和文件路径apis包含根据 Service 的 API 规格自动生成的 API 定义如openapi.yaml以及非 legacy 模式的schema.json见 src/bentoml/_internal/bento/bento.pyenv包含 Bento 初始化所需的环境相关文件这些文件根据pyproject.toml或bentofile.yaml中指定的构建选项生成——其中env/python存放requirements.txt、requirements.lock.txt、install.sh与wheels/env/docker存放生成的Dockerfile与entrypoint.shenv/conda存放environment.yml。警告不建议直接修改 Bento 中的文件除非是出于调试目的。赞分享模型推理服务人工智能后端大模型MLOpsLLMOps【免费下载链接】BentoMLThe easiest way to serve AI apps and models - Build Model Inference APIs, Job queues, LLM apps, Multi-model pipelines, and more!项目地址https://gitcode.com/gh_mirrors/be/BentoML点击查看免费下载相关推荐ZenML 集成 BentoML Model Deployer 实战从 Bento 构建到本地 HTTP 与容器化模型部署ZenML 集成 BentoML Model Deployer 实战从 Bento 构建到本地 HTTP 与容器化模型部署 本文以 ZenML 官方文档《BeMLOps机器学习后端工作流自动化AI AgentGraphile Build 插件选项Plugin Options完全指南从 nodeIdFieldName 到自定义配置的命名规范Graphile Build 插件选项Plugin Options完全指南从 nodeIdFieldName 到自定义配置的命名规范 导读 本文以 gra后端API网关JVMS源码解析理解Go语言实现的版本管理器核心逻辑JVMS源码解析理解Go语言实现的版本管理器核心逻辑 JVMSJDK Version Manager是一款专为Windows系统设计的JDK版本管理工具开发工具CLI上一篇7个黄金法则Basecamp如何用极简主义打造持续创新的独立产品下一篇DeepSpeed 渐进式层丢弃PLD实战用 Progressive Layer Dropping 加速 Transformer 语言模型训练创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
