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
EXPERTE
gefragt vor 8 Monaten68 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 8 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen