[Boostcamp AI Tech] [모델 최적화] 18주차 Day 2 학습 기록

bluegun·2021년 11월 30일
0

AI Tech 2기 활동

목록 보기
80/87

요약

무엇을 했나요?

  • 어제 학습한 모델 제출 -> 속도는 조금 느려졌지만 더 높은 성능의 모델
  • depth 파라미터를 최대치로 고정시키고 optuna optimize -> 기존과 성능은 큰 차이 없는데 파라미터 수만 엄청 늘어나서 중지
  • 기존 trial 중 현재 모델과 비교해 조금 느리지만 성능이 좋게 나온 파라미터로 재학습

무엇을 했나요?

일어나서 어제 돌려놓은 모델을 제출했더니, time이 54 -> 62로 느려졌지만 F1 score가 0.618 -> 0.681로 크게 증가하였다. 모델의 depth_multiple 파라미터를 키워 원하는 대로 속도와 성능을 등가교환 하는데 성공하여 만족스러웠다. 하지만 이 모델로는 기준 모델을 뛰어 넘기가 힘들거라는 판단도 하게 되었다.(기준 모델보다 느린 속도, 더 낮은 성능)

그래서 depth_multiple을 최대치인 1로 고정시키고 다시 trial을 수집하기 시작했다. 하지만 trial 과정을 모니터링 한 결과 파라미터 수는 몇십~몇백만개가 쉽게 찍히는데 성능은 기존과 별 차이가 없어서 중단하였다.

피어 세션 때 모델 성능에 영향을 많이 끼치는 파라미터가 사실 depth_multiple이 아니라 width_multiple이란 사실을 알게 되었다. 내가 잘못 봐서 시간을 날린 거 같다 싶었지만, 막상 depth를 낮추고 width를 바꿔 학습했을 때 depth를 키운 것보다 성능 향상폭 자체는 낮은 걸로 봐선 어느정도 효과는 있었던 것 같다.

지금까지 정리하자면, 기본적으로 optuna에서 search할 파라미터를 지정하고 나면 direction 정책에 따라 원하는 값이 최적화가 되는데, 현재 코드에서는 F1 score를 maximize하고, 파라미터 수와 time을 minimize하도록 하고 있다. 이 과정에서 적절한 trade-off가 이루어져 다른 경우에 비해 상대적으로 속도가 빠르고 성능이 좋은 모델을 얻을 수 있다. 다만 모델은 일반적으로 파라미터 수가 많게 하고 많이 학습시키면 성능이 좋아지므로, best_trial 값에서 width와 depth를 키워 모델의 크기를 키우고 파라미터 수를 늘리면 속도는 느려지지만 성능의 향상을 기대할 수 있다.

이에 따라, 현재 best_trial들 중 현재 모델보다 속도는 느리지만 성능은 좋은 모델을 하나 골라 학습시키고, 결과에 따라 적절히 width와 depth를 조절하면 원하는 목표 성능에 도달할 수 있을 것이라 생각한다. 그래서 적절한 trial을 선택했고 현재 학습을 돌려놓아 내일 일어나면 확인할 수 있을 것이다.

피어 세션

어제 오피스아워를 따라서 DB 연동을 시도하는 분이 계셨지만, Port 문제나 환경문제로 인해 잘 되지 않는다고 하셨다. 서버 환경이 특수하기도 하고 해서 어쩔 수 없는 것 같다.
오늘도 각자 시도한 것들을 공유하였는데, 나는 trial마다 search할 파라미터를 바꾸진 않지만, 용범님께선 학습에 도움 안되는 파라미터는 중간에 고정시키고 학습을 하는 방법을 택하셨다고 하셨다. trial이 많으시고 이후 trial을 시도할 때 더 최적화 하기 좋은 것 같아 상당히 좋은 접근 방법인 것 같다. 또한 trial 후반부에 성능이 높은 모델들이 거의 고정적으로 튀어 나왔다고 하셔서, 가능만 하다면(자원이 받쳐준다면) trial을 많이 돌리는 게 좋긴 한 것 같다.

멘토링

대회 진행을 위주로 했었기 때문에 크게 여쭤볼 것은 없었다. 다만 멘토링을 하면서 자연스럽게 프로젝트 최적화를 진행하는 가이드라인을 얻을 수 있었다. 우선 reference가 많은 모델을 선택해 포팅하는 것을 먼저 해 이를 baseline으로 만들고, 이를 기준으로 다양한 최적화나 경량화를 시도하면서 성능 향상을 확인하라는 것이었다. 이를 통해 내가 잘 하고 있는지 가시적으로 볼 수 있고, 내가 어떤 식으로 팀에 기여했는 지도 쉽게 확인할 수 있다. 막상 프로젝트를 어떻게 시작할 지 몰랐는데 이를 알게 되어서 멘토님께 정말 감사했다.

그 외

딥브레인AI에서 코딩테스트를 하라는 메일이 날아와 급히 테스트를 쳤다. 테스트 환경에서 구글 검색을 할 수 없었으면 큰일날 뻔했지만 다행히 모든 문제를 풀었다. 좋은 결과가 있었으면 좋겠다.

0개의 댓글