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

bluegun·2021년 11월 29일
0

AI Tech 2기 활동

목록 보기
79/87

요약

무엇을 했나요?

  • 주말동안 서버에 PostgreSQL 설치 후 Optuna와 연동 -> study를 DB에 저장하고 load하여 기존 trial에 이어서 trial 가능!
  • Optuna visualization 시도 -> 뭔가 에러가 나옴(zero weight), 해결 못함
  • Trial 중 mean time이 가장 낮은 모델의 파라미터를 대입해 yaml 파일을 만들고 학습(200 epoch) -> 대회 기준보다 훨씬 빠른 처리속도를 얻었지만 성능이 아직 낮음 -> 성능에 큰 영향을 주는 파라미터인 depth를 키우고 input image size를 키워 학습 진행

무엇을 했나요?

주말동안 한 일

오늘 DB 연동 오피스아워가 있었지만, Optuna는 RDB에 trial을 저장하고 불러오는 기능이 있었기 때문에 주말동안 GPU를 최대한 돌려 trial을 쌓아두기 위해서는 DB 연동을 일찍 할 필요가 있었다. 그래서 서버에 PostgreSQL을 설치하고 Optuna에서 해당 URL을 불러오는 식으로 설정해 DB 연동에 성공하였다. Optuna에서 DB 설정하는 건 쉬웠지만 서버에 PostgreSQL을 까는 게 힘들었다.(서버가 컨테이너 형식이라 sudo 명령어가 안 먹어서 애를 먹었다. sudo를 설치하니 해결..)

오늘 한 일

주말동안 AutoML을 돌려 trial을 쌓아둔 후, 직접 F1 score와 time을 비교해 보며, 나쁘지 않은 성능에 time이 가장 작은 trial의 파라미터를 불러 100~200 epoch 학습을 시켰다. 여기까진 문제가 없었지만 대회 제출시 model과 data의 파라미터에 대한 yaml 파일을 만들어서 같이 전해줘야 하는 문제가 있었다. backbone의 많은 계층형 파라미터들을 어떻게 저장해야하나 싶었지만 다행히도 baseline 코드의 일부를 참고해서 yaml 파일을 얻을 수 있었다. 나중에 yaml 파일을 활용해 학습을 진행할 일이 많을 거라 생각해, 파라미터를 yaml로 변환하는 법을 연습해야겠다.

yaml 파일을 만든 후 제출했더니, time은 기준치인 60보다 많이 낮은 52를 기록했으나, F1 score가 기준 score인 0.7에 많이 못미치는 0.618을 기록하였다. 이는 기본적으로 학습한 모델이 파라미터 수가 작았기 때문에 성능에 한계가 있었기 때문이고, 이를 해결하기 위해 파라미터 중 'Depth_multiple' 을 키우고 Image size를 2배(112 -> 224)로 하였다. 'Depth_multiple'이란 파라미터를 키운 이유는 용범 캠퍼님이 피어세션 때 언급해주셨는데, F1 score에 가장 큰 영향을 끼치는 파라미터가 Depth_multiple 이었고, 이를 키울 수록 좋은 score를 얻었기 때문이다.

피어 세션

다른 분들도 나처럼 주말에 대회 진행을 하셨다. 재빈 캠퍼님께서 WandB를 이용한 Visualizing을 구현하셨다. 다음에 trial을 늘릴 때 추가해 볼 계획이다.
용범님께서도 나처럼 DB를 연동하고 데이터 수와 image size를 줄이고 엄청 많은 trial을 돌리셨고, 이를 Optuna visualizing tool로 보여주셨다. 이를 통해 위에서 설명한 것처럼 'Depth_multiple'이란 파라미터가 성능에 큰 영향을 끼치고, 다른 파라미터들은 미미하다는 걸 알게 되었다. 별개로 용범님은 visualizing이 잘 되는데 왜 난 안되는 지 모르겠다...

클라이언트 개발을 하는 게 어렵다고 다들 입을 모아 말씀하셨다. 아무래도 AI 공부가 목적이셨던 분들이라 오랜만에 개발인데 다들 앱 개발을 해본 것도 아니셔서 상당히 어렵다고 하셨다. 여차하면 모바일에서 돌아갈 정도로 성능 최적화만 해서 제출해도 될 것 같지만 그래도 잘 보여주는 게 네트워킹 데이 때 유효할 것이기에 나도 힘이 되는 대로 클라이언트에 보태야겠다.

그 외

딥브레인AI 풀스택 개발자 강의와 프로그래머스 데브매칭을 신청했다. 후자는 좋아보이는 기업은 많지만 내가 백엔드 공부를 많이 하진 않았기에 코테라도 치려고 등록했고, 전자는 7주동안 저녁 시간에 강의를 진행해서 단기간에 빠르게 웹 개발 요구사항을 알고 스택을 쌓을 수 있을 것 같아 신청했다. AI 엔지니어로 취업한단 확신도 없고 웹 개발 지식도 원래 공부하고 싶었으니 꼭 합격해서 교육 수강할 수 있었으면 좋겠다.

0개의 댓글