完成 model.register 后如何在新的 SageMaker Studio UI 中访问评估指标?

问题描述 投票:0回答:1

我正在为机器学习模型构建 MLOP 管道。注册模型后,如何在 SageMake Studio UI 中访问模型的评估指标?

这是我保存在S3中的示例evaluation.json

{
    "metric_groups": [
        {
            "name": "regression_metrics",
            "metric_data": [
                {
                    "name": "mse",
                    "value": 6107087691.96
                },
                {
                    "name": "mae",
                    "value": 46717.104
                },
                {
                    "name": "rmse",
                    "value": 78147.85
                },
                {
                    "name": "r2",
                    "value": 0.90
            ]
        }
    ]
}

这是我的注册步骤:

import logging
from sagemaker.workflow.functions import Join
from sagemaker.model_metrics import MetricsSource, ModelMetrics
from sagemaker.workflow.step_collections import RegisterModel


def create_register_step(
        role,
        sagemaker_session,
        model_package_group_name,
        model_approval_status,
        training_step,
        evaluation_step
):
    
    logging.basicConfig(level=logging.INFO)
    logging.info(f'Creating the register step')

    # log evaluation_report
    logging.info(f'Evaluation Report: {evaluation_step}')

    evaluation_s3_uri = evaluation_step.properties.ProcessingOutputConfig.Outputs['evaluation'].S3Output.S3Uri

    
    model_metrics = ModelMetrics(
        model_statistics=MetricsSource(
            s3_uri=Join(
                on="/",
                values=[
                    evaluation_s3_uri,
                    "evaluation.json"
                ]
            ),
            content_type="application/json"
        )
    )


    # Create the RegisterModel step
    register_step = RegisterModel(
        name='ModelRegisterStep',
        estimator=training_step.estimator,
        model_data=training_step.properties.ModelArtifacts.S3ModelArtifacts,
        content_types=["text/csv"],
        response_types=["text/csv"],
        inference_instances=["ml.m5.large", "ml.m5.xlarge"],
        transform_instances=["ml.m5.large"],
        model_package_group_name=model_package_group_name,
        approval_status=model_approval_status,
        model_metrics=model_metrics
    )

    return register_step

我的管道执行成功,但看不到评估指标 附图

我也尝试过手动将S3的评估报告添加到模型版本中,但它不起作用

machine-learning amazon-sagemaker evaluation mlops amazon-sagemaker-studio
1个回答
0
投票

我解决了这个问题。评估json格式不正确 我们只需要使用:

 {
    "metrics": {
        "mse": {
            "value": 6107087691.964753
        },
        "mae": {
            "value": 46717.104932016475
        },
        "rmse": {
            "value": 78147.85788468391
        },
        "r2": {
            "value": 0.9062238811893062
        }
    }
}

之前我很困惑,因为当我尝试将评估作业手动添加到模型注册表时,我收到一条错误,指出 JSON 需要 metric_groups 和 metric_data

© www.soinside.com 2019 - 2024. All rights reserved.