如何让Vertex AI多标签分类AutoML将无标注文本作为0标签样本使用
AutoML多标签分类任务使用0标签空标注样本的方案说明
按照官方文档要求准备的JSON Lines格式多标签分类训练集,单条数据初始结构如下:
{ "textContent": "This text corresponds to 2 labels", "classificationAnnotations": [ {"displayName": "LABEL_1"}, {"displayName": "LABEL_2"} ] } { "textContent": "This text doesn't correspond to any labels", "classificationAnnotations": [] } // 全量数据集共5855条数据
- 全量数据中仅1037条文本携带非空标签列表,其余
classificationAnnotations字段为空数组的文本,会被平台默认判定为*Unlabeled(无标注)*样本,AutoML训练流程会直接忽略这类样本,不会将其纳入有效训练集计算。 - 目前常用的临时规避方案是给全量文本追加
EXTRA_LABEL占位标签:原本携带有效标签的文本,在原有标签列表基础上追加该占位标签;原本无有效标签的文本,仅标注该占位标签。调整后的数据结构如下:
{ "textContent": "This text corresponds to 2 labels", "classificationAnnotations": [ {"displayName": "LABEL_1"}, {"displayName": "LABEL_2"}, {"displayName": "EXTRA_LABEL"} ] } { "textContent": "This text doesn't correspond to any labels", "classificationAnnotations": [ {"displayName": "EXTRA_LABEL"} ] } // 其余5853条文本均按该规则调整
官方支持情况说明
截至当前版本,Google Vertex AI AutoML 多标签分类任务没有提供官方原生方案,支持将空标注数组的样本直接识别为“不属于任何标签”的0标签有效样本参与训练。
平台默认的数据校验逻辑为:标签字段为空的样本统一划入无标注样本池,仅在开启半监督训练模式时,这类样本才会作为无标注数据参与一致性正则类的训练计算,不会被识别为明确的0标签负样本参与监督训练过程。
占位标签方案的落地注意事项
当前使用的占位标签方案是工业界落地这类场景的通用可行方案,使用时注意两个细节即可:
- 模型推理阶段需要增加后处理逻辑:过滤掉预测结果中的
EXTRA_LABEL,如果单条样本的预测结果仅返回EXTRA_LABEL,直接判定为该样本不属于任何业务定义的有效标签即可 - 训练前统计标签分布时,注意不要把占位标签的样本量计入业务标签的分布统计,避免误判样本均衡性、错设分类阈值。
内容的提问来源于stack exchange,提问作者Ivan Reshetnikov
相关产品推荐
相关产品推荐

