<aside> 📢 <Table of Contents> 설정 관리 개요
</aside>
이번 포스팅에서는, Hydra 프레임워크를 이용하여 설정 파일을 어떻게 체계적으로 구성할 수 있는 지 확인하는 시간을 가져보도록 할게요😊
Hydra를 사용하게 된 이유 및 프로젝트 개요는 지난 포스팅을 확인해주세요!
프로젝트의 전체 코드는 아래 링크에서 확인하시면 됩니다 :)
https://github.com/jihoahn9303/hydra-project
구체적인 내용에 앞서, 지난 시간에 설명했던 프로젝트 구조를 떠올려봅시다.
. ├── config_schemas (Using Hydra Structured configs) │ ├── config_schema.py │ ├── data_module_schema.py │ ├── task │ │ ├── loss_function_schema.py │ │ ├── model │ │ │ ├── adapter_schema.py │ │ │ ├── backbone_schema.py │ │ │ └── head_schema.py │ │ ├── model_schema.py │ │ └── optimizer_schema.py │ ├── task_schema.py │ └── trainer_schema.py ├── configs │ ├── config.yaml │ ├── data_module │ ├── task │ │ ├── loss_function │ │ ├── model │ │ │ ├── adapter │ │ │ ├── head │ │ └── optimizer │ └── trainer └── train.py
설정 관리는 크게 스키마(schema_schemas
폴더) 구성과 세부 구현(configs
폴더)로 구성하였습니다.
다음 그림은 지난 포스팅에서 사용하였던 컴포넌트 구조도입니다.
분명한 이해를 위하여 다시 동일한 구조도를 가져왔으며, 화살표를 받는 컴포넌트는 다른 컴포넌트에 포함됨을 의미합니다.