Hydra는 연구 및 기타 복잡한 애플리케이션 개발을 단순화하는 오픈 소스 Python 프레임워크입니다. 핵심 기능은 구성 파일과 명령줄을 통해 계층적 구성을 동적으로 생성하고, 이를 조합하거나 재정의할 수 있다는 점입니다.W&B의 강력한 기능을 활용하면서도 구성 관리는 Hydra를 계속 사용할 수 있습니다.
메트릭 추적
wandb.init() 및 wandb.Run.log()을 사용하여 평소처럼 메트릭을 추적합니다. 여기서 사용하는 wandb.entity와 wandb.project는 Hydra 구성 파일에서 정의됩니다.
하이퍼파라미터 추적하기
OmegaConf에서 제공하는 딕셔너리는 기본 dict의 서브클래스가 아니므로 Hydra의 Config를 그대로 wandb.Run.config에 전달하면 대시보드에서 예기치 않은 결과가 발생할 수 있습니다. 따라서 wandb.Run.config에 전달하기 전에 omegaconf.DictConfig를 기본 dict 타입으로 변환해야 합니다.
멀티프로세싱 문제 해결
wandb.init() 호출에 settings 매개변수를 하나 더 추가하여 wandb의 멀티프로세싱 프로토콜을 변경해 보세요.
하이퍼파라미터 최적화
sweep.yaml 파일은 다음과 같습니다:
wandb agent 명령을 반환합니다.
Hydra 기본값에 없는 매개변수 전달하기
+를 붙여, 기본 설정 파일에 없는 추가 매개변수를 명령줄로 전달하는 것을 지원합니다. 예를 들어, 다음과 같이 호출하면 원하는 값을 가진 추가 매개변수를 전달할 수 있습니다:
+ 구성에 Sweep을 적용할 수는 없습니다. 이를 우회하려면 실험 파라미터의 기본값을 빈 파일로 설정한 뒤, 각 호출 시 W&B Sweep을 사용해 그 빈 설정을 덮어쓰면 됩니다. 자세한 내용은 이 W&B Report를 참고하세요.