SageMaker Model Monitor 执行错误 “There are missing columns in current dataset. Number of columns in current dataset: 1, Number of columns in baseline constraints: 225”

0

【以下的问题经过翻译处理】 我有一个基于Sagemaker AutoPilot 训练任务生成模型的部署推理端点。现在部署已经成功了,我想添加模型监控。我有一个在线验证端点的脚本,F1分数约为99%。这表明端点可以正确调用。

模型监控识别我的jsonl文件中的数据格式不是CSV格式。当我的模型监控处理作业运行时,我收到以下约束违规提示:"当前数据集中缺少列。当前数据集中的列数:1,基线约束中的列数:225"。

鉴于Sagemaker Endpoint和Sagemaker Model Monitor的结果和此Sagemaker Model Monitor约束违规提示,我认为Sagemaker Endpoint存储数据的方式与Model Monitor处理作业想要消耗数据的方式之间存在冲突。

这是来自jsonl文件的一个样本预测。数据值是逗号分隔的。

以下是日志中处理作业识别列不匹配的点。我看到它下载数据以在本地存储,下载统计和约束文件,由于此约束出现错误,然后正常结束处理作业。如果需要更多的日志进行分析,我在CloudWatch Logs中有处理作业日志。

我无法在Sagemaker Model Monitor文档中找到如何处理列不匹配约束违规提示的相关信息。

profile picture
专家
已提问 7 个月前63 查看次数
1 回答
0

【以下的回答经过翻译处理】 该违规案例在以下情况下会触发,例如,您的端点输入的列数比基准输入少。这有助于标记数据质量问题。

但是,在这种情况下,这是我们执行分析的方法的产物。我们将输出和输入CSV连接成一个CSV以一次性分析整个文件。例如,它可能如下所示: output_col,input_col_1,input_col_2,...,input_col_n

但是,在这种情况下,您的输出有一行尾随换行符,这意味着在连接后,它看起来像:输出列#输出中嵌入的换行符,输入列1,输入列2,...,输入列n。

导致代码认为数据集中只有一列,因此作业失败。

我们现在已经在流水线中进行了修复,但在这之前,您可以添加一个预处理脚本到您的计划表中,以从输出中去除尾随的换行符。我们将创建一个样本笔记本来演示此方法,同时文档位于 https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-pre-and-post-processing.html#model-monitor-pre-processing-script。 (https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-pre-and-post-processing.html%EF%BC%83model-monitor-pre-processing-script%E3%80%82)

profile picture
专家
已回答 7 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则