MLflowProjects
什么是 MLFlow 项目?
组织和编写代码的规则。
MLFlow 项目部署流程
- 选择环境
- 编写环境配置文件
- 运行项目
更多信息
- 通过添加作为 YAML 格式的文本文件的文件,可以更详细地描述项目。
- 支持 Conda 环境、虚拟环境、Docker 容器
- 康达环境
- CuDNN,英特尔MKL治疗支持
- 您可以通过在 conda.yaml 项目目录的根目录中包含文件或conda_env条目来指定 MLflow 项目的 Conda 环境。
- Virtualenv环境
- 下载python与pyenv
- 在虚拟环境中启用作为执行环境
- 通过在python_env文件中包含条目,可以指定 MLflow 项目的虚拟环境
- Docker 容器环境
- 使用 Docker 容器时,
- 您可以使用命令行工具或 Python API 运行任何项目
- 将 MLproject 文件添加到根目录以进行详细设置
- 指定环境
- 康达环境
- conda_env: files/config/conda_environment.yaml
- VIrtualenv环境
- python_env: files/config/python_env.yaml
- Docker 容器环境
- docker_env:
image: mlflow-docker-example-environment
- 命令语法
- 参数规范
- 可以为每个参数指定数据类型和默认值
parameter_name: data_type
- data_type
- string
- fload
- path
- uri
- 运行项目
- 从命令行工具
运行mlflow
- 选项
- -e, –entry-point
- -v, –version
- -P, –param-list
- -A, –docker-args
- –experiment-name
- –experiment-id
- -b, –backend
- -c, –backend-config
- –no-conda
- –env-manager
- –storage-dir
- –run-id
- –run-name
- –skip-image-build
- Python API到
mlflow.projects.run()
- 从命令行工具
- 在库伯内特斯运行 MLflow 项目的方法(实验阶段)
- 在库伯内斯上的医生环境中运行 MLflow 项目
- API 可能会因实验阶段而更改
kubernetes_backend.jsonkubernetes_job_template.yaml
- 使用
- 在库伯内特上运行 MLflow 项目
- MLflow 生成包含项目的新 Docker 映像
- MLflow 将新项目映像推送到指定的 Docker 注册表
- 在指定的库伯内特群集上启动库伯内特斯作业
- 执行指南
- 如果 Docker 环境尚不存在,请将其添加到 MLflow 项目中
- 创建后端配置 JSON 文件
- 获取访问项目医生和库伯内斯资源的凭据
- 指定项目 URI 和后端配置文件的路径,并使用 MLflow 项目 CLI 或
每个环境的设置描述示例
康达环境
conda_environment.yaml
name: My Project
conda_env: my_env.yaml
# Can have a docker_env instead of a conda_env, e.g.
# docker_env:
# image: mlflow-docker-example
entry_points:
main:
parameters:
data_file: path
regularization: {type: float, default: 0.1}
command: "python train.py -r {regularization} {data_file}"
validate:
parameters:
data_file: path
command: "python validate.py {data_file}"
VIrtualenv环境
python_env.yaml
python: "3.7.13"
# Dependencies required to build packages. This field is optional.
build_dependencies:
- pip
- setuptools
- wheel==0.37.1
# Dependencies required to run the project.
dependencies:
- mlflow
- scikit-learn==1.0.2
Docker 容器环境
示例 1:图像
docker_env:
image: mlflow-docker-example-environment
示例 2:装载卷并指定环境变量
docker_env:
image: mlflow-docker-example-environment
volumes: ["/local/path:/container/mount/path"]
environment: [["NEW_ENV_VAR", "new_var_value"], "VAR_TO_COPY_FROM_HOST_ENVIRONMENT"]
示例 3:远程注册表中的映像
docker_env:
image: 012345678910.dkr.ecr.us-west-2.amazonaws.com/mlflow-docker-example-environment:7.0
示例 4:使用预构建映像
docker_env:
image: python:3.7
向下
mlflow run ... --skip-image-build
示例 5:使用库贝内特
apiVersion: batch/v1
kind: Job
metadata:
name: "{replaced with MLflow Project name}"
namespace: mlflow
spec:
ttlSecondsAfterFinished: 100
backoffLimit: 0
template:
spec:
containers:
- name: "{replaced with MLflow Project name}"
image: "{replaced with URI of Docker image created during Project execution}"
command: ["{replaced with MLflow Project entry point command}"]
env: ["{appended with MLFLOW_TRACKING_URI, MLFLOW_RUN_ID and MLFLOW_EXPERIMENT_ID}"]
resources:
limits:
memory: 512Mi
requests:
memory: 256Mi
restartPolicy: Never