文档

实验对照组

更新时间:

实验对照组支持将Designer的实验数据或自定义任务的执行信息记录到PAI提供的任务管理服务中,从而便于进行任务间的实验比较。本文介绍如何通过实验对照组功能管理Designer任务和自定义任务。

前提条件

已创建OSS Bucket,详情请参见控制台创建存储空间

背景信息

PAI实验对照组功能是基于开源项目MLflow构建的,所有的参数和标准均与开源MLflow一致。MLflow是一个E2E的机器学习开源项目,提供了任务指标记录、实验管理等功能,详情请参见MLflow Documentation。基于MLflow,PAI提供了一个全托管的任务管理服务(Tracking Server),您不仅可以将Designer的运行作业参数、评估指标等记录到PAI提供的任务管理服务,而且可以将其他环境(包括DSWDLC或本地环境)的任务执行信息和相关指标通过原生MLflow Python SDK记录到任务管理服务中。

PAI实验对照组模块包括两部分核心功能:

  • Designer任务的管理

    您需要在Designer中运行任务,并配置实验对照组、任务的评估指标及参数,系统会自动将执行过的任务加入至该实验对照组,从而方便地进行任务间的实验比较等操作,详情请参见管理Designer任务

  • 自定义任务的管理

    自定义任务是指您基于本地或云上开发环境自行开发代码,通过集成PAI任务管理SDK,将任务相关参数、评估指标等在实验对照组中进行记录,详情请参见管理自定义任务

管理Designer任务

  1. 进入实验对照组页面。

    1. 登录PAI控制台

    2. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。

    3. 在左侧导航栏,选择AI资产管理 > 实验对照组

  2. 创建实验对照组。

    说明

    实验对照组是任务管理的最小单元,通常进行一个类型的实验管理。例如推荐场景的实验可以统一放到一个实验对照组中。

    1. 任务列表页面,单击实验对照组后面的加号图标。

    2. 创建实验对照组对话框,配置参数。

      参数

      描述

      实验对照组名称

      长度为2~128个字符,且以字母或中文开头。

      Artifact地址

      OSS地址,用于存储实验相关的数据。

    3. 单击创建

  3. 进入Designer实验页面。

    1. 在PAI控制台的左侧导航栏,选择模型开发和训练 > 可视化建模(Designer)

    2. 可视化建模(Designer)页面,单击工作流列表页签。

    3. 工作流列表页签,单击待查看的工作流名称,在右侧的基本信息区域,单击进入工作流

  4. Designer实验进行任务配置,使其与实验对照组关联。

    1. Designer实验页面,单击上方的任务配置

    2. 任务配置对话框,配置参数。

      参数

      描述

      实验对照组-实验对照选择组

      选择已创建的实验对照组。如果没有可用的实验对照组,则单击前往AI资产-实验对照组创建进行创建。

      实验对照组-实验参数记录

      实验对照组支持将实验全局变量作为参数记录到实验管理。您可以设置实验相关参数,例如迭代轮次和收敛率。

      实验对照组-实验评估指标记录

      仅支持选取评估类组件。例如二分类评估、回归模型评估、聚类模型评估、多分类评估或混淆矩阵。

    3. 单击确认

  5. 查看已配置的任务。

    1. 在PAI控制台的左侧导航栏,选择AI资产管理 > 实验对照组

    2. 任务列表页面左侧的实验对照组区域,单击目标实验对照组,即可查看已生成的任务。已生成的任务

    3. 用户可以进行多次运行后的评测效果对比image.png

管理自定义任务

PAI提供了一个Plugin,使您能够直接使用MLflow Python SDK将自定义任务的信息记录到PAI的实验对照组中。

  1. 安装PAI提供的插件pai-mlflow

    基于MLflow的Plugin机制,PAI提供了pai-mlflow的Python包,用于将任务投递到PAI托管的Tracking Server。安装pai-mlflow的命令如下。

    python -m pip install https://pai-sdk.oss-cn-shanghai.aliyuncs.com/pai-mlflow/dist/pai_mlflow-1.1.0-py3-none-any.whl

    其中https://pai-sdk.oss-cn-shanghai.aliyuncs.com/pai-mlflow/dist/pai_mlflow-1.1.0-py3-none-any.whl表示pai-mlflow安装包地址,您无需修改。

  2. 通过MLflow Python SDK记录任务信息。

    以下代码通过MLflow Python SDK创建了一个实验对照组,并将当前代码执行任务信息记录到对应的实验对照组,MLflow具体的API信息,请参见Python API

    import os
    import time
    import mlflow
    
    def setup_experiment():
        
        # 设置访问PAI的Tracking Server的鉴权凭证。
        os.environ["PAI_ACCESS_KEY_ID"] = "YourAcessKeyID"
        os.environ["PAI_ACCESS_KEY_SECRET"] = "YourAccessKeySecret"
        # 设置 MLflow默认的Tracking URI为PAI提供的TrackingServer。
        os.environ["MLFLOW_TRACKING_URI"] = "pai://mlflow.{{region_id}}.aliyuncs.com"
            
        # 创建一个名为demo-experiment1的实验对照组。
        exp = mlflow.get_experiment_by_name(
            "demo-experiment1",
        )
        if not exp:
            mlflow.create_experiment(
                "demo-experiment1",
                "oss://lq-test-bucket.oss-cn-hangzhou.aliyuncs.com/mlflow_log_artifacts/",
            )
        
        # 设置当前使用的MLflow实验。
        mlflow.set_experiment("demo-experiment1")
    
        
    def run():
        setup_experiment()
        
        with mlflow.start_run():
            # 例如任务的参数信息。
            mlflow.log_param("hello", "alice")
            
             for i in range(100):
                time.sleep(1)
                # 记录任务的metrics信息。
                mlflow.log_metric("foo", i)
    
    if __name__ == "__main__":
        run()

    通过Python代码记录任务信息时,您可以在本地环境、DSWDLC中执行任务,然后在PAI的实验对照组中将对应的任务信息与其他任务(包括Designer投递的任务)信息进行对比。

  • 本页导读 (1)
文档反馈