You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅在Amazon SageMaker Studio中可视化批量转换模型质量监控违规报告?

在Amazon SageMaker Studio中可视化批量转换模型质量监控违规报告

前提条件

确保你已完成Batch Transform任务的模型质量监控配置,且监控作业已生成违规报告(报告通常存储在指定S3桶中,或可通过SageMaker SDK直接获取)。

步骤1:通过SageMaker SDK加载监控违规数据

在SageMaker Studio的笔记本中,用SageMaker SDK关联你的模型质量监控作业,获取违规记录:

import sagemaker
from sagemaker.model_monitor import ModelQualityMonitor

# 初始化SageMaker会话
sagemaker_session = sagemaker.Session()

# 关联已有的定时监控调度
model_quality_monitor = ModelQualityMonitor.attach(
    monitoring_schedule_name="你的批量转换监控调度名称",
    sagemaker_session=sagemaker_session
)

# 获取最新违规数据
latest_violations = model_quality_monitor.latest_monitoring_statistics().violations

# 若为一次性批量监控(非定时调度),可通过创建后的监控作业对象获取结果
# model_quality_monitor = ModelQualityMonitor.create(...)
# latest_violations = model_quality_monitor.latest_monitoring_statistics().violations

步骤2:转换数据并生成可视化图表

将违规数据转为DataFrame,用matplotlib绘制直观的可视化图表:

import pandas as pd
import matplotlib.pyplot as plt

# 把违规记录转为DataFrame格式
violations_df = pd.DataFrame([v.__dict__ for v in latest_violations])

# 1. 绘制违规指标分布柱状图
plt.figure(figsize=(12, 6))
violations_df['metric_name'].value_counts().plot(kind='bar', color='#1f77b4')
plt.title('模型质量监控违规指标分布')
plt.xlabel('指标名称')
plt.ylabel('违规次数')
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()

# 2. 查看多周期违规趋势(仅适用于定时监控调度)
execution_history = model_quality_monitor.list_monitoring_executions()
history_df = pd.DataFrame([h.__dict__ for h in execution_history])

# 格式化时间并排序
history_df['start_time'] = pd.to_datetime(history_df['start_time'])
history_df = history_df.sort_values('start_time')

plt.figure(figsize=(12, 6))
plt.plot(history_df['start_time'], history_df['violation_count'], marker='o', linestyle='-')
plt.title('模型质量违规次数趋势')
plt.xlabel('监控执行时间')
plt.ylabel('违规次数')
plt.xticks(rotation=45)
plt.grid(linestyle='--', alpha=0.7)
plt.show()

步骤3:直接读取S3中的违规报告文件

如果违规报告以CSV/JSON格式存在S3桶中,可直接读取并可视化:

import boto3
import pandas as pd

# 初始化S3客户端
s3 = boto3.client('s3')

# 替换为你的存储桶和报告路径
bucket_name = "你的监控结果存储桶"
report_key = "path/to/monitoring/report/violations.csv"

# 读取S3中的报告文件
obj = s3.get_object(Bucket=bucket_name, Key=report_key)
violations_df = pd.read_csv(obj['Body'])

# 重复步骤2的可视化代码即可生成图表

注意事项

  • 确保SageMaker Studio执行角色拥有访问监控作业和对应S3桶的权限(需包含sagemaker:DescribeMonitoringSchedule、s3:GetObject等权限)。
  • 若为一次性批量转换监控,需等待监控作业执行完成后再获取违规数据。

内容的提问来源于stack exchange,提问作者Muhammad Yahya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 01:45:41