更新时间:2023-02-24 GMT+08:00
分享

数据选择(难例)

算法概述

在实际业务场景中,模型维护是一个长期的过程,比如说按照每周、每月进行数据重训练,或者累计数据至一定量时进行定期的重训练。如果将全量的数据用于重训练,需要耗费较大的标注人力和训练耗时。为了提升模型维护效率,可以采用基于难例数据的重训练 。

​难例筛选算法对全量数据进行分析并筛选,仅输出全量数据中少部分对于模型维护有价值的数据。基于筛选后的数据进行重训练,可以有效减少标注人力和训练耗时。

难例筛选算法中融合了多种方法,要达到最佳效果,需要根据实际数据选择部分或全部方法,并调整其权重。

参数说明

参数名

是否必选

默认值

参数说明

source_service

Y

inference

难例任务的前置数据来源,目前仅支持inference。此参数不可修改。

filter_func

Y

comprehensive_mining

难例筛选算法设置为“comprehensive_mining”。此参数不可修改。

checkpoint_path

Y

/home/work/user-job-dir/data_filter/resnet_v1_50

用于特征提取的模型目录,当前仅支持基于Imagenet预训练的resnet_v1_50模型,此参数目前暂时不可修改。

model_serving_url

N

None

推理模型路径。得出推理结果的模型文件路径, 即训练作业的输出路径。该模型会用于aug_consistent_mining算法中的数据增强再推理。

请输入一个真实存在的OBS目录,例如:obs://obs_bucket_name/folder_name/

train_data_path

N

None

训练数据集,model_serving_url模型使用的训练数据,需输入数据集版本生成的manifest。

请输入一个真实存在的OBS目录,例如:obs://obs_bucket_name/folder_name/v001.manifest

comprehensive_algo_config

N

clustering_mining:0.2020+aug_consistent_mining:0.4265+feature_distribution_mining:0.0451+sequential_mining:0.425+image_similarity_mining:0.0949+predict_score_mining:0.3900+anomaly_detection_mining:0.2020

使用的算法及其权重,默认使用系统实验后效果最佳参数,也可以根据不同的数据自行配置。

例如:predict_score_mining:0.3900+anomaly_detection_mining:0.2020

algo_hard_threshold

N

0.1

筛选系数的阈值设置。取值范围0~1。

由于过高阈值可能导致输出结果为0,建议合理填写。

aug_op_config

N

crop:0.1+fliplr:0.1+gaussianblur:0.1

aug_consistent_mining算法中用到的增强手段,支持crop、fliplr、gaussianblur、flipud、scale、translate、shear、superpixels、sharpen、add、invert。

feature_op_config

N

image_aspect_ratio:0.5+image_brightness:1.0+image_saturation:0.5+image_resolution:0.5+image_colorfulness:0.5+ambiguity:1.0+bbox_num:1.0+bbox_iou:1.0+bbox_std:0.5+bbox_bright:0.5+bbox_ambiguity:0.5+bbox_aspect_ratio:1.0+bbox_area_ratio:0.5+bbox_edge_value:0.5

feature_distribution_mining算法中定义的特征,可自行修改权重。

score_threshold_up

N

0.6

predict_score_mining算法中定义的置信度最高值。取值范围0~1。

score_threshold_low

N

0.3

predict_score_mining算法中定义的置信度最低值。取值范围0~1。

margin

N

0.8

top2置信度差值定义, 差值超过该阈值,则为难例。取值范围0~1,默认值为 0.8。

similarity_sample_ratio

N

1.0

image_similarity_mining算法中的相似比例定义。取值范围0~1,默认值为1.0。

task_summary_file

N

None

算法简化的日志输出路径及日志文件。请填写一个真实存在的OBS目录,以“obs://”开头。文件名称可自行定义。

例如:obs://obs_bucket_name/folder_name/xxx.log

output_dataset_type

N

manifest

支持directory和manifest类型。

  • directory:将原始图片和标签输出到结果目录的Data文件夹下。
  • manifest:仅输出manifest文件。

该参数在数据处理模块将根据页面选择自动填充。

输入要求

算子输入分为两种,“数据集”“OBS目录”

  • 选择“数据集”,请从下拉框中选择ModelArts中管理的数据集及其版本。要求数据集类型与您在本任务中选择的场景类别一致。
  • 选择“OBS目录”,目录下需包含用于推理的原始图片以及推理结果文件

    其目录结构如下所示。

    input_path/
        --images/ # 文件夹名称必须为images
            ----1.jpg
            ----2.jpg
        --inference_results/  # 文件夹名称必须为inference_results
            ----1.jpg_result.txt
            ----2.jpg_result.txt

    其中,推理结果文件txt的内容需满足如下格式。如果使用ModelArts预置算法训练得到的模型进行推理,默认的推理结果已满足要求。

    • 图像分类
      {
          "predicted_label": "dog",
          "scores": [
              [
                  "dog",
                  "0.589"
              ],
              [
                  "cat",
                  "0.411"
              ]
          ]
      }
    • 物体检测
      {
          "detection_classes": [
              "cat",
              "cat"
              ],
          "detection_boxes": [
              [
                  117.56356048583984,
                  335.9902648925781,
                  270.50848388671875,
                  469.0136413574219
              ],
              [
                  18.747316360473633,
                  13.10757064819336,
                  217.25146484375,
                  108.3551025390625
              ]
          ],
          "detection_scores": [
                  0.5179755091667175,
                  0.46941104531288147
              ]
      }

输出说明

  • 目标检测

    输出目录结构如下所示。

    output_path :
        --Data
            ----1.jpg
            ----1.xml      # 导出筛选结果至该目录下
        --output.manifest

    其中manifest文件示例如下所示。

    {"source":"/tmp/test_out/object_detection/images/be462ea9c5abc09f.jpg",
    "hard":"True",
    "hard-reasons":"0",  # 判定该样本为难例的原因,具体原因目前只在智能标注模块展示
    "hard-coefficient":"1.0", # 难例算法得到的难例系数,越大代表可能是难例的概率越大
    "annotation":[
    {"annotation-loc":"/tmp/test_out/object_detection/annotations/be462ea9c5abc09f.xml",
    "type":"modelarts/object_detection",
    "annotation-format":"PASCAL VOC",
    "annotated-by":"modelarts/hard_example_algo"}]}
  • 图像分类

    输出目录结构如下所示。

    output_path :
        --Data
            ----class1
                ------1.jpg
            ----class2
                ------2.jpg
        --output.manifest

    其中manifest文件示例如下所示。

    {"source":"obs://obs_bucket_name/folder_name/catDog/5.jpg",
    "hard":true,
    "hard-reasons":"1-20-2-19-21-3",
    "hard-coefficient":1.0,
    "annotation":[
    {"name":"cat",
    "type":"modelarts/image_classification",
    "confidence":0.599,
    "annotated-by":"modelarts/hard_example_algo"}]}

日志文件说明

task_summary_file 为简化日志的输出文件路径,内容如下:

{
"task_status": 'SUCCEED', # 算法执行状态
"total_sample": integer,  # 输入样本总数
"hard_sample": integer    # 输出样本总数
}

或者是

{
"task_status": 'FAILED',
"error_message": 'xxxxxx' # 导致算法执行失败的异常信息
}
分享:

    相关文档

    相关产品