跳转到主要内容

通过Comet.ml扩展MLFlow

项目描述

Comet-For-MLFlow扩展

image CI Build Updates

Comet-For-MLFlow扩展是一个命令行界面,它将MLFlow实验运行映射到Comet实验。此扩展允许您在Comet.ml UI中查看现有的实验,该UI提供对实验结果的认证访问,显著提高了大量实验运行的性能,并提供更丰富的图表和可视化选项。

此扩展将同步之前的MLFlow实验运行,与使用支持MLFlow的Comet Python SDK跟踪的所有运行,以进行更深入的实验度量、改进的日志记录、可见性、项目组织和访问管理。

Comet-For-MLFlow扩展作为免费开源软件提供,根据GNU通用公共许可证v3发布。扩展可以使用现有的Comet.ml账户或新的免费个人账户使用。

安装

pip install comet-for-mlflow

如果您在用于生成mlflow运行的Python环境之外安装comet-for-mlflow,请确保您在这两个环境中使用相同的mlflow版本。

基本用法

要自动将MLFlow运行与其默认存储位置(./mlruns)同步到Comet.ml,请运行

comet_for_mlflow --api-key $COMET_API_KEY --rest-api-key $COMET_REST_API_KEY

如果您想在不自动与Comet.ml同步的情况下查看默认存储位置中的MLFlow运行的映射,您可以运行

comet_for_mlflow --no-upload

审查后,您可以使用以下方式上传已映射的MLFlow运行:

comet upload /path/to/archive.zip

示例

 __   __         ___ ___     ___  __   __                 ___       __
/  ` /  \  |\/| |__   |  __ |__  /  \ |__) __  |\/| |    |__  |    /  \ |  |
\__, \__/  |  | |___  |     |    \__/ |  \     |  | |___ |    |___ \__/ |/\|


Please create a free Comet account with your email.
Email: kristen.stewart@example.com

Please enter a username for your new account.
Username: kstewart

A Comet.ml account has been created for you and an email was sent to you to setup your password later.
Your Comet API Key has been saved to ~/.comet.ini, it is also available on your Comet.ml dashboard.
Starting Comet Extension for MLFlow

Preparing data locally from: '/home/ks/project/mlruns'
You will have an opportunity to review.

# Preparing experiment 1/3: Default

# Preparing experiment 2/3: Keras Experiment
## Preparing run 1/4 [2e02df92025044669701ed6e6dd300ca]
## Preparing run 2/4 [93fb285da7cf4c4a93e279ab7ff19fc5]
## Preparing run 3/4 [2e8a1aed22544549b2b6b6b2c5976ed9]
## Preparing run 4/4 [82f584bad7604289af61bc505935599b]

# Preparing experiment 3/3: Tensorflow Keras Experiment
## Preparing run 1/2 [99550a7ce4c24677aeb6a1ae4e7444cb]
## Preparing run 2/2 [88ca5c4262f44176b576b54e0b24731a]

 MLFlow name:   | Comet.ml name:   |   Prepared count:
----------------+------------------+-------------------
 Experiments    | Projects         |                 3
 Runs           | Experiments      |                 6
 Tags           | Others           |                39
 Parameters     | Parameters       |                51
 Metrics        | Metrics          |                60
 Artifacts      | Assets           |                27

All prepared data has been saved to: /tmp/tmpjj74z8bf

Upload prepared data to Comet.ml? [y/N] y

# Start uploading data to Comet.ml
100%|███████████████████████████████████████████████████████████████████████| 6/6 [01:00<00:00, 15s/it]
Explore your experiment data on Comet.ml with the following links:
	- https://www.comet.ml/kstewart/mlflow-default-2bacc9?loginToken=NjKgD6f9ZuZWeudP76sDPHx9j
	- https://www.comet.ml/kstewart/mlflow-keras-experiment-2bacc9?loginToken=NjKgD6f9ZuZWeudP76sDPHx9j
	- https://www.comet.ml/kstewart/mlflow-tensorflow-keras-experiment-2bacc9?loginToken=NjKgD6f9ZuZWeudP76sDPHx9j
Get deeper instrumentation by adding Comet SDK to your project: https://comet.ml/docs/python-sdk/mlflow/


If you need support, you can contact us at http://chat.comet.ml/ or https://comet.ml/docs/quick-start/#getting-support

高级使用

将MLFlow运行导入数据库存储或MLFlow服务器存储

如果您的MLFlow运行不在默认的本地存储(./mlruns)中,您可以选择设置CLI标志--mlflow-store-uri或环境变量MLFLOW_TRACKING_URI,将其指向正确的存储。

例如,使用不同的本地存储路径

comet_for_mlflow --mlflow-store-uri /data/mlruns/

使用SQL存储

comet_for_mlflow --mlflow-store-uri sqlite:///path/to/file.db

或使用MLFlow服务器

comet_for_mlflow --mlflow-store-uri https://:5000

导入远程存储的MLFlow工件

如果您的MLFlow运行具有存储在远程(在任何受支持的远程工件存储中 https://www.mlflow.org/docs/latest/tracking.html#artifact-stores)的工件,您需要按照运行那些实验时的相同方式配置您的环境。例如,使用本地Minio服务器

env MLFLOW_S3_ENDPOINT_URL=https://:9001 \
    AWS_ACCESS_KEY_ID=minio \
    AWS_SECRET_ACCESS_KEY=minio123 \
    comet_for_mlflow

常见问题解答

如何配置我的API密钥或Rest API密钥?

您可以通过命令行标志或通过常规配置选项来传递您的Comet.ml API密钥或Rest API密钥。

MLFlow实验是如何映射到Comet.ml项目的?

每个MLFlow实验都映射到一个唯一的Comet.ml项目ID。这样,即使您重命名了Comet.ml项目或MLFlow实验,新的运行也会导入正确的Comet.ml项目。新创建的Comet.ml的名称为mlflow-$MLFLOW_EXPERIMENT_NAME。原始MLFlow实验名称也保存为其他字段,名为mlflow.experimentName

以下是MLFlow实验和运行字段映射到Comet.ml等效概念的完整列表

  • MLFlow实验映射为Comet.ml项目
  • MLFlow运行映射为Comet.ml实验
  • MLFlow运行字段导入如下表所示
MLFlow运行字段 Comet.ml实验字段
文件名 文件名
标签 其他
用户 Git用户 + 系统用户
Git父级 Git父级
Git起源 Git起源
参数 参数
度量 度量
工件 资产

我必须为此运行未来的实验吗?

不需要,常见的模式是在您的MLFlow项目中导入具有MLFlow支持的Comet的Python SDK,这将保持所有未来实验运行的同步。

致谢

此包是用Cookiecutteraudreyr/cookiecutter-pypackage项目模板创建的。

发布历史

0.1.3 (2022-12-08)

  • 修复与MLFlow v2.0.1的兼容性 #3

0.1.2 (2020-03-12)

  • 修复与Comet Python SDK v3.1.1的兼容性。#2
  • 修复Python 2中对Unicode项目注释的支持。#1

0.1.1 (2020-02-17)

  • 修复元数据中的包URL。

0.1.0 (2020-02-12)

  • 首次发布在PyPI上。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

comet_for_mlflow-0.1.7.tar.gz (30.9 kB 查看散列)

上传时间

构建分布

comet_for_mlflow-0.1.7-py2.py3-none-any.whl (29.7 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持