이제 튜토리얼을 넘어 실제 배포를 좌우하는 패턴을 다뤄. KerasTuner 하이퍼파라미터 탐색, FP16/BF16 혼합 정밀도로 2~3배 가속, 다중 GPU 분산 전략, 학습 후 양자화, 지식 증류, 학습이 조용히 실패할 때의 디버깅 절차를 배운다.
손으로 설정을 하나씩 바꾸는 일을 멈춰
학습률과 레이어 너비를 감으로 바꾸며 반복하면 성능이 오를 수 있지만, 직감을 탐색기로 삼은 편향된 맹목 탐색이야. KerasTuner에서는 build_model(hp) 안에 탐색 공간을 한 번 선언하면 여러 시도를 실행하고 점수를 기록해 가장 좋은 모델을 돌려줘.
탐색 공간의 구조
하이퍼파라미터를 고정 상수가 아니라 표집할 인자로 바꾸는 것이 핵심이야. hp.Int('units', 32, 512, step=32)는 레이어 너비를 조정 가능한 축으로 만들고, hp.Float('lr', 1e-4, 1e-2, sampling='log')는 학습률을 탐색하게 해. 학습률은 로그 척도에서 움직이므로 sampling='log'로 자릿수마다 고르게 시도해야 범위 위쪽에 표본이 몰리지 않아.
탐색 전략 고르기
- RandomSearch — 균일하게 표집하는 정직한 기준선이며 작은 공간에서는 의외로 강해.
- BayesianOptimization — 지난 시도에 가우시안 프로세스 대리 모델을 맞춰 개선 가능성이 큰 곳을 표집해. 효율적이지만 성능 지형이 비교적 매끄럽다고 가정해.
- Hyperband — 여러 시도를 적은 비용으로 시작하고 약한 후보를 일찍 중단해 남은 예산을 유망한 후보에 집중해. 깊은 학습 설정 대부분이 좋지 않다는 사실을 빠르게 활용하므로 흔히 기본 선택이 돼.