본문으로 건너뛰기
버전: docs v25.02

VAD Parameter

Updated 2024.06.04

experimental_plan.yaml 설명

내가 갖고 있는 데이터에 AI Contents를 적용하려면 데이터에 대한 정보와 사용할 Contents 기능들을 experimental_plan.yaml 파일에 기입해야 합니다. AI Contents를 solution 폴더에 설치하면 solution 폴더 아래에 contents 마다 기본으로 작성되어있는 experimental_plan.yaml 파일을 확인할 수 있습니다. 이 yaml 파일에 '데이터 정보'를 입력하고 asset마다 제공하는 'user arugments'를 수정/추가하여 ALO를 실행하면, 원하는 세팅으로 데이터 분석 모델을 생성할 수 있습니다.

experimental_plan.yaml 구조

experimental_plan.yaml에는 ALO를 구동하는데 필요한 다양한 setting값이 작성되어 있습니다. 이 setting값 중 '데이터 경로'와 'user arguments'부분을 수정하면 AI Contents를 바로 사용할 수 있습니다.

데이터 경로 입력(external_path)

  • external_path의 parameter는 불러올 파일의 경로나 저장할 파일의 경로를 지정할 때 사용합니다. save_train_artifacts_pathsave_inference_artifacts_path는 입력하지 않으면 default 경로인 train_artifacts, inference_artifacts 폴더에 모델링 산출물이 저장됩니다.
external_path:
- load_train_data_path: ./solution/sample_data/train
- load_inference_data_path: ./solution/sample_data/test
- save_train_artifacts_path:
- save_inference_artifacts_path:
파라미터명DEFAULT설명 및 옵션
load_train_data_path./sample_data/train/학습 데이터가 위치한 폴더 경로를 입력합니다.(csv 파일 명 입력 X)
load_inference_data_path./sample_data/test/추론 데이터가 위치한 폴더 경로를 입력합니다.(csv 파일 명 입력 X)

사용자 파라미터(user_parameters)

  • user_parameters 아래 step은 asset 명을 의미합니다. 아래 step: input은 input asset단계임을 의미합니다.
  • args는 input asset(step: input)의 user arguments를 의미합니다. user arguments는 각 asset마다 제공하는 데이터 분석 관련 설정 파라미터입니다. 이에 대한 설명은 아래에 User arguments 설명을 확인해주세요.
user_parameters:
- train_pipeline:
- step: input
args:
- file_type
...
ui_args:
...

User arguments 설명

User arguments란?

User arguments는 각 asset 별 동작 설정을 위한 파라미터로 experimental_plan.yaml의 각 asset step의 args밑에 기입해 사용합니다. AI Contents의 pipeline을 구성하는 asset마다 사용자가 다양한 기능을 데이터에 적용할 수 있도록 user arguments를 제공하고 있습니다. 사용자는 아래 가이드를 참고해서 user arguments를 변경, 추가하여 데이터에 맞는 모델링을 할 수 있습니다. User arguments는 experimental_plan.yaml에 미리 작성되어있는 "필수 arguments"와 사용자가 가이드를 보고 추가하는 "Custom arguments"로 구분됩니다.

필수 arguments

  • 필수 arguments는 experimental_plan.yaml에 바로 보여지는 기본 arguments 입니다. 대부분의 필수 arguments는 default 값이 내장되어 있습니다. default 값이 있는 arguments의 경우에는 유저가 별도로 값을 설정하지 않아도 기본 값으로 동작합니다.
  • experimental_plan.yaml의 필수 arguments중 데이터 관련 arguments는 유저가 필수로 값을 설정해주어야 합니다. (ex. path_column, y_column)

Custom arguments

  • Custom arguments는 experimental_plan.yaml에 적혀있지 않지만, asset에서 제공하는 기능으로 사용자가 experimental_plan.yaml에 추가하여 사용할 수 있습니다. 각 asset 별 'args'에 추가하여 사용합니다.

VAD의 pipeline은 Input - Readiness - Modeling(train/inference) - Output asset 순으로 구성되어 있으며 각 asset의 기능에 맞추어 user arguments가 다르게 구성되어 있습니다. experimental_plan.yaml에 기입되어 있는 필수 user arguments를 먼저 사용해보시고, user arguments를 추가하여 데이터에 딱 맞는 VAD 모델을 만들어보세요!


User arguments 요약

아래는 VAD의 user arguments 요약입니다. 'Argument 명'을 누르면 해당 arguments의 상세 설명으로 이동할 수 있습니다.

Default

  • 'Default' 항목은 해당 user argument의 기본 값 입니다.
  • 기본 값이 없는 경우 '-' 로 표기하였습니다.
  • default에 로직이 있는 경우에는 '설명 참고'로 표기하였습니다. 'Argument 명'을 눌러 상세 설명을 확인해 주세요

ui_args

  • 아래 표의 'ui_args'는 AI Conductor의 UI에서 argument 값을 변경할 수 있는 ui_args기능 지원 여부를 나타냅니다.
  • O: experimental_plan.yaml의 ui_args밑에 해당 argument 명을 입력하면 AI Conductor UI에서 arguments 값을 변경할 수 있습니다.
  • X: ui_args 기능을 지원하지 않습니다.
  • ui_args에 대한 자세한 설명은 다음 가이드를 확인해 주세요. Write UI Parameter
  • FCST experimental_plan.yaml에는 ui_args가 될 수 있는 user arguments의 ui_args_detail을 미리 전부 기입해 놓았습니다.      

사용자 설정 필수 여부

  • 아래 표의 '사용자 설정 필수 여부'는 AI Contents를 동작시키기 위해 사용자가 반드시 확인하고 변경해야 할 user arguments 입니다.
  • O: 일반적으로 과제, 데이터 관련 정보를 입력하는 arguments로 사용자가 모델링 전에 확인해야 합니다.
  • X: 사용자가 값을 변경하지 않으면 default 값으로 모델링이 진행됩니다.
Asset명Argument typeArgument 명Default설명사용자 설정 필수 여부ui_args
InputCustomfile_typecsvinput data의 파일 확장자를 입력합니다.OX
InputCustomencodingutf-8input data의 encoding type을 입력합니다.XX
ReadinessCustomok_classy_column에서 ok를 의미하는 class를 입력합니다.XX
ReadinessCustomtrain_validate_columntrain과 validation을 구분하는 컬럼을 입력합니다. 해당 컬럼에는 train과 valid 두 인자로 구성되야합니다.XX
ReadinessCustomvalidation_split_rate0.1train_validate_column이 존재하지 않는 경우, 입력된 train 데이터에서 해당 rate만큼 validation을 생성합니다.XX
ReadinessCustomthreshold_methodF1Validation시 OK와 NG를 판정하는 방법을 선택합니다. 선택 가능한 값: F1, Percentile (검증 데이터 수에 따라 자동 선택되기도 함.)XX
ReadinessCustomnum_minor_threshold5OK와 NG의 이미지 수가 이를 넘지 않으면 자동으로 threshold_method가 Percentile로 선택됩니다.XX
ReadinessCustomratio_minor_threshold0.1OK와 NG의 이미지의 비율이 이를 넘지 않으면 자동으로 threshold_method가 Percentile로 선택됩니다.XX
Train필수model_namefastflowVAD로 사용할 모델을 선택합니다. 선택 가능한 값: fastflow, patchcoreOO
TrainCustomexperiment_seed42pytorch 환경에서의 실험 seed를 결정합니다.XX
TrainCustomimg_size[256,256]이미지 학습시 변환될 이미지 사이즈를 설정합니다. 숫자만 입력한 경우 원본 이미지의 비율이 유지되도록 Resize 됩니다. (짧은 부분이 Resize 크기가 되고, 비율유지)XX
TrainCustombatch_size4학습 및 검증 시 batch size를 설정합니다.XX
TrainCustommax_epochs15학습의 max epoch를 설정합니다.XX
TrainCustomacceleratorcpucpu 혹은 gpu를 기반으로 돌릴지를 선택합니다. gpu가 가능한 환경에서는 gpu 선택을 추천합니다.XX
TrainCustommonitor_metricimage_AUROCbest 모델을 저장할 때의 기준을 선택합니다. threshold_method가 Percentile인 경우, 자동으로 loss이 선택됩니다. 선택 가능한 값: loss, image_AUROC, image_F1ScoreXX
TrainCustomsave_validation_heatmapTrueValidation 데이터셋에 대한 예측 히트맵을 저장할지 여부를 선택합니다. (ok-ng, ng-ok, ng-ng 경우만 저장)XX
TrainCustompercentile0.8threshold_method가 Percentile인 경우 NG로 판정할 기준으로 Validation 데이터셋의 anomaly score의 percentile을 선택합니다.XX
TrainCustomaugmentation_list[]임의 augmentation을 수행하기 위해 적용하는 변환 목록입니다. rotation, brightness, contrast, saturation, hue, blur 중 여러 개를 사용할 수 있습니다.XX
TrainCustomaugmentation_choice3임의 augmentation을 수행하기 위해 적용하는 변환 횟수입니다. 선택 가능한 값: 0 이상 정수XX
TrainCustomrotation_angle10임의 augmentation 중 회전 가능한 최대 각도입니다. 10으로 설정한 경우 -10에서 10 사이로 변환을 수행합니다.선택 가능한 값: 0이상 180이하 정수XX
TrainCustombrightness_degree0.3임의 augmentation 중 밝기 조절 정도입니다. 최대/최소 밝기 수준을 설정합니다. 선택 가능한 값: 0~1 실수XX
TrainCustomcontrast_degree0.3임의 augmentation 중 contrast 정도입니다. 선택 가능한 값: 0~1 실수XX
TrainCustomsaturation_degree0.3임의 augmentation 중 saturation 정도입니다. 선택 가능한 값: 0~1 실수XX
TrainCustomhue_degree0.3임의 augmentation 중 hue 정도입니다. 선택 가능한 값: 0~1 실수XX
TrainCustomblur_kernel_size5임의 augmentation 중 blur 커널 최대 크기입니다. 선택 가능한 값: 0~255 정수XX
TrainCustommodel_parameters{"fastflow_backborn": 'resnet18', "fastflow_flow_steps": 8, "patchcore_backborn": 'wide_resnet50_2', "patchcore_coreset_sampling_ratio": 0.1, "patchcore_layers": ["layer2", "layer3"]}모델 학습과 관련된 파라미터. 설정하지 않으면 default 파라미터로 모델을 학습합니다. 자세한 내용은 하기 파라미터 설명을 참고해주세요.XX
InferenceCustominference_threshold0.5abnormal로 판정되기 위한 anomaly score의 threshold입니다.XX
InferenceCustomsave_anomaly_mapsFalseXAI 이미지 결과 저장 여부입니다.XX

User arguments 상세 설명    

Input asset

file_type

input data의 파일 확장자를 입력합니다.

  • Argument type: Custom
  • 입력 type
    • string
  • 입력 가능한 값
    • csv (defualt)
  • 사용법
    • file_type : csv
  • ui_args: X

encoding

input data의 encoding type을 입력합니다.

  • Argument type: Custom
  • 입력 type
    • string
  • 입력 가능한 값
    • utf-8 (defualt)
  • 사용법
    • encoding : utf-8
  • ui_args: X

Readiness asset

ok_class

시간 정보의 입력 format입니다.y_column에서 ok를 의미하는 class를 입력합니다. 입력하지 않은 경우 ok_class는 학습 데이터셋에서 가장 많은 유형을 차지하는 이름으로 입력됩니다.

  • Argument type: Custom
  • 입력 type
    • string
  • 입력 가능한 값
    • '' (defualt)
  • 사용법
    • ok_class : good
  • ui_args: O

train_validate_column

train과 validation을 구분하는 컬럼을 입력합니다. 해당 컬럼에는 train과 valid 두 인자로 구성되야합니다.

  • Argument type: Custom
  • 입력 type
    • string
  • 입력 가능한 값
    • '' (defualt)
  • 사용법
    • train_validate_colum : phase
  • ui_args: X

validation_split_rate

train_validate_column이 존재하지 않는 경우, 입력된 train 데이터에서 해당 rate만큼 validation을 생성합니다.

  • Argument type: Custom
  • 입력 type
    • float
  • 입력 가능한 값
    • 0.1 (defualt)
  • 사용법
    • validation_split_rate : 0.1
  • ui_args: X

threshold_method

 Validation시 OK와 NG를 판정하는 방법을 선택합니다. 선택 가능한 값: F1, Percentile (검증 데이터 수에 따라 자동 선택되기도 함.)

  • Argument type: Custom
  • 입력 type
    • string
  • 입력 가능한 값
    • F1 (defualt)
    • Percentile
  • 사용법
    • threshold_method : Percentile
  • ui_args: X

num_minor_threshold

OK와 NG의 이미지 수가 이를 넘지 않으면 자동으로 threshold_method가 Percentile로 선택됩니다.

  • Argument type: Custom
  • 입력 type
    • integer
  • 입력 가능한 값
    • 5 (defualt)
  • 사용법
    • num_minor_threshold : 5
  • ui_args: X

ratio_minor_threshold

OK와 NG의 이미지의 비율이 이를 넘지 않으면 자동으로 threshold_method가 Percentile로 선택됩니다.

  • Argument type: Custom
  • 입력 type
    • float
  • 입력 가능한 값
    • 0.1 (defualt)
  • 사용법
    • ratio_minor_threshold : 0.1
  • ui_args: X

Train asset

model_name

VAD로 사용할 모델을 선택합니다. 선택 가능한 값: fastflow, patchcore

  • Argument type: 필수
  • 입력 type
    • string
  • 입력 가능한 값
    • fastflow (defualt)
    • patchcore
  • 사용법
    • model_name : patchcore
  • ui_args: O              

img_size  

이미지 학습시 변환될 이미지 사이즈를 설정합니다. 숫자만 입력한 경우 원본 이미지의 비율이 유지되도록 Resize 됩니다. (짧은 부분이 Resize 크기가 되고, 비율유지)

  • Argument type: Custom
  • 입력 type
    • integer
  • 입력 가능한 값
    • [256,256] (defualt)
    • 256
  • 사용법
    • img_size: [256,256]
  • ui_args: X

batch_size

 학습 및 검증 시 batch size를 설정합니다.

  • Argument type: Custom
  • 입력 type
    • integer
  • 입력 가능한 값
    • 4 (defualt)
  • 사용법
    • batch_size: 32
  • ui_args: X

experiment_seed

pytorch 환경에서의 실험 seed를 결정합니다.  

  • Argument type: Custom
  • 입력 type
    • integer
  • 입력 가능한 값
    • 42 (defualt)
  • 사용법
    • experiment_seed : 42
  • ui_args: X

max_epochs

학습의 max epoch를 설정합니다.

  • Argument type: Custom
  • 입력 type
    • integer
  • 입력 가능한 값
    • 15 (defualt)
  • 사용법
    • max_epochs : 15
  • ui_args: X

accelerator

cpu 혹은 gpu를 기반으로 돌릴지를 선택합니다. gpu가 가능한 환경에서는 gpu 선택을 추천합니다.

  • Argument type: Custom
  • 입력 type
    • string
  • 입력 가능한 값
    • cpu (defualt)
    • gpu
  • 사용법
    • accelerator : gpu
  • ui_args: X

monitor_metric

best 모델을 저장할 때의 기준을 선택합니다. threshold_method가 Percentile인 경우, 자동으로 loss가 선택됩니다. 선택 가능한 값: loss, image_AUROC, image_F1Score

  • Argument type: Custom
  • 입력 type
    • string
  • 입력 가능한 값
    • image_AUROC (defualt)
    • loss
    • image_F1Score
  • 사용법
    • monitor_metric : loss
  • ui_args: X

save_validation_heatmap

Validation 데이터셋에 대한 예측 히트맵을 저장할지 여부를 선택합니다. (ok-ng, ng-ok, ng-ng 경우만 저장)

  • Argument type: Custom
  • 입력 type
    • bool
  • 입력 가능한 값
    • True (defualt)
    • False
  • 사용법
    • save_validation_heatmap : True
  • ui_args: X

percentile

threshold_method가 Percentile인 경우 NG로 판정할 기준으로 Validation 데이터셋의 anomaly score의 percentile을 선택합니다.

  • Argument type: Custom
  • 입력 type
    • float
  • 입력 가능한 값
    • 0.8 (defualt)
  • 사용법
    • percentile : 0.8
  • ui_args: X

augmentation_list

임의 augmentation을 수행하기 위해 적용하는 변환 목록입니다. rotation, brightness, contrast, saturation, hue, blur 중 여러 개를 사용할 수 있습니다.

  • Argument type: Custom
  • 입력 type
    • list
  • 입력 가능한 값
    • [] (defualt)
    • rotation, brightness, contrast, saturation, hue, blur
  • 사용법
    • augmentation_list : [rotation, brightness, contrast, saturation, hue, blur]
  • ui_args: X

augmentation_choice

임의 augmentation을 수행하기 위해 적용하는 변환 횟수입니다. 선택 가능한 값: 0 이상 정수

  • Argument type: Custom
  • 입력 type
    • int
  • 입력 가능한 값
    • 3 (defualt)
  • 사용법
    • augmentation_choice : 2
  • ui_args: X

rotation_angle

임의 augmentation 중 회전 가능한 최대 각도입니다. 10으로 설정한 경우 -10에서 10 사이로 변환을 수행합니다.선택 가능한 값: 0이상 180이하 정수

  • Argument type: Custom
  • 입력 type
    • float
  • 입력 가능한 값
    • 10 (defualt)
  • 사용법
    • rotation_angle : 30
  • ui_args: X

brightness_degree

임의 augmentation 중 밝기 조절 정도입니다. 최대/최소 밝기 수준을 설정합니다. 선택 가능한 값: 0~1 실수

  • Argument type: Custom
  • 입력 type
    • float
  • 입력 가능한 값
    • 0.3 (defualt)
  • 사용법
    • brightness_degree : 0.5
  • ui_args: X

contrast_degree

임의 augmentation 중 contrast 정도입니다. 선택 가능한 값: 0~1 실수

  • Argument type: Custom
  • 입력 type
    • float
  • 입력 가능한 값
    • 0.3 (defualt)
  • 사용법
    • contrast_degree : 0.5
  • ui_args: X

saturation_degree

임의 augmentation 중 saturation 정도입니다. 선택 가능한 값: 0~1 실수

  • Argument type: Custom
  • 입력 type
    • float
  • 입력 가능한 값
    • 0.3 (defualt)
  • 사용법
    • saturation_degree : 0.5
  • ui_args: X

hue_degree

임의 augmentation 중 hue 정도입니다. 선택 가능한 값: 0~1 실수

  • Argument type: Custom
  • 입력 type
    • float
  • 입력 가능한 값
    • 0.3 (defualt)
  • 사용법
    • hue_degree : 0.5
  • ui_args: X

blur_kernel_size

임의 augmentation 중 blur 커널 최대 크기입니다. 선택 가능한 값: 0~255 정수

  • Argument type: Custom
  • 입력 type
    • int
  • 입력 가능한 값
    • 15 (defualt)
  • 사용법
    • blur_kernel_size : 25
  • ui_args: X

                   

model_parameters

모델 학습과 관련된 파라미터. 설정하지 않으면 default 파라미터로 모델을 학습합니다. 자세한 내용은 하기 파라미터 설명을 참고해주세요.

  • Argument type: Custom
  • 입력 type
    • dictionary
  • 입력 가능한 값
    • {"fastflow_backborn": 'resnet18', "fastflow_flow_steps": 8, "patchcore_backborn": 'wide_resnet50_2', "patchcore_coreset_sampling_ratio": 0.1, "patchcore_layers": ["layer2", "layer3"]}  (defualt)
    • fastflow_backborn: "resnet18", "wide_resnet50_2", "cait_m48_448", "deit_base_distilled_patch16_384"
    • fastflow_flow_steps: int
    • patchcore_backborn: timm 패키지에 있는 모든 모델 가능, 단 patchcore_layers에 해당 모델의 layer 이름이 상호작용 되야함.
    • patchcore_coreset_sampling_ratio: 0~1 사이의 float
    • patchcore_layers: 선택된 backborn의 layer 이름을 리스트로 입력
  • 사용법
    • model_parameters : {"fastflow_backborn": 'resnet18', "fastflow_flow_steps": 8, "patchcore_backborn": 'wide_resnet50_2', "patchcore_coreset_sampling_ratio": 0.1, "patchcore_layers": ["layer2", "layer3"]}
  • ui_args: X

Inference asset

inference_threshold

abnormal로 판정되기 위한 anomaly score의 threshold입니다.

  • Argument type: 필수
  • 입력 type
    • float
  • 입력 가능한 값
    • 0.5 (defualt)
  • 사용법
    • inference_threshold : 0.5
  • ui_args: X            

save_anomaly_maps

XAI 이미지 결과 저장 여부입니다.

  • Argument type: Custom
  • 입력 type
    • bool
  • 입력 가능한 값
    • False (defualt)
    • True
  • 사용법
    • save_anomaly_maps : True
  • ui_args: X  

***  

VAD Version: 1.0.0