VAD Parameter
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_path
와save_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 type | Argument 명 | Default | 설명 | 사용자 설정 필수 여부 | ui_args |
---|---|---|---|---|---|---|
Input | Custom | file_type | csv | input data의 파일 확장자를 입력합니다. | O | X |
Input | Custom | encoding | utf-8 | input data의 encoding type을 입력합니다. | X | X |
Readiness | Custom | ok_class | y_column에서 ok를 의미하는 class를 입력합니다. | X | X | |
Readiness | Custom | train_validate_column | train과 validation을 구분하는 컬럼을 입력합니다. 해당 컬럼에는 train과 valid 두 인자로 구성되야합니다. | X | X | |
Readiness | Custom | validation_split_rate | 0.1 | train_validate_column이 존재하지 않는 경우, 입력된 train 데이터에서 해당 rate만큼 validation을 생성합니다. | X | X |
Readiness | Custom | threshold_method | F1 | Validation시 OK와 NG를 판정하는 방법을 선택합니다. 선택 가능한 값: F1, Percentile (검증 데이터 수에 따라 자동 선택되기도 함.) | X | X |
Readiness | Custom | num_minor_threshold | 5 | OK와 NG의 이미지 수가 이를 넘지 않으면 자동으로 threshold_method가 Percentile로 선택됩니다. | X | X |
Readiness | Custom | ratio_minor_threshold | 0.1 | OK와 NG의 이미지의 비율이 이를 넘지 않으면 자동으로 threshold_method가 Percentile로 선택됩니다. | X | X |
Train | 필수 | model_name | fastflow | VAD로 사용할 모델을 선택합니다. 선택 가능한 값: fastflow, patchcore | O | O |
Train | Custom | experiment_seed | 42 | pytorch 환경에서의 실험 seed를 결정합니다. | X | X |
Train | Custom | img_size | [256,256] | 이미지 학습시 변환될 이미지 사이즈를 설정합니다. 숫자만 입력한 경우 원본 이미지의 비율이 유지되도록 Resize 됩니다. (짧은 부분이 Resize 크기가 되고, 비율유지) | X | X |
Train | Custom | batch_size | 4 | 학습 및 검증 시 batch size를 설정합니다. | X | X |
Train | Custom | max_epochs | 15 | 학습의 max epoch를 설정합니다. | X | X |
Train | Custom | accelerator | cpu | cpu 혹은 gpu를 기반으로 돌릴지를 선택합니다. gpu가 가능한 환경에서는 gpu 선택을 추천합니다. | X | X |
Train | Custom | monitor_metric | image_AUROC | best 모델을 저장할 때의 기준을 선택합니다. threshold_method가 Percentile인 경우, 자동으로 loss이 선택됩니다. 선택 가능한 값: loss, image_AUROC, image_F1Score | X | X |
Train | Custom | save_validation_heatmap | True | Validation 데이터셋에 대한 예측 히트맵을 저장할지 여부를 선택합니다. (ok-ng, ng-ok, ng-ng 경우만 저장) | X | X |
Train | Custom | percentile | 0.8 | threshold_method가 Percentile인 경우 NG로 판정할 기준으로 Validation 데이터셋의 anomaly score의 percentile을 선택합니다. | X | X |
Train | Custom | augmentation_list | [] | 임의 augmentation을 수행하기 위해 적용하는 변환 목록입니다. rotation, brightness, contrast, saturation, hue, blur 중 여러 개를 사용할 수 있습니다. | X | X |
Train | Custom | augmentation_choice | 3 | 임의 augmentation을 수행하기 위해 적용하는 변환 횟수입니다. 선택 가능한 값: 0 이상 정수 | X | X |
Train | Custom | rotation_angle | 10 |