Project
오늘의 목표 및 진척상황
- R-BERT + RoBERTa Model 실험
- Weight Decay, Dropout, SiLU 실험
- LSTM Model 실험
- 결과 제출용 Ensemble 실험
직면했던 문제와 학습한 내용
- R-BERT + RoBERTa Model 실험
하루 종일 이 Model을 돌리기 위해 고생했다. 기존에 Trainer를 사용하던 Code에서 이 Model을 구현해서 사용하려니, 수많은 곳에서 이슈가 발생했다. Output의 형태를 Tuple[Tensor] 형태로 해도 에러가 나고, Dict형태로 해도 에러가 나고 도저히 해결할 수가 없었다. 결국, Trainer Code를 버리고 순수 PyTorch Code를 짜기 시작했다.
PORORO Data를 추가하면서 더러워졌던 Code를 싹 다 갈아엎고, 아예 새로 내 Logic대로 Code를 구성했다. 중간에 시도했다가 사용하지 않는 Code들도 과감히 지워버렸다. 한참을 고생하고, 저녁이 되어서야 겨우 에러없이 학습을 확인할 수 있었다.
- Weight Decay, Dropout, SiLU 실험
새 Model에 맞는 Hyper Parameter를 찾는 실험을 이어나갔다. 차원이 늘어나서 인지, 이 Model은 처음부터 학습을 잘 이어나갔다. 이에 이전에 사용하던 Warm-up은 사용할 필요가 없어졌다.
당연스레 기본값으로 주어져있던 것들을 건드리기 시작했는데, Weight Decay가 그 중 하나였다. 이전부터 이 값을 넣을때 마다 성능이 떨어졌었는데, 아니나다를까 빼보니 성능 향상으로 이어졌다.
이번엔 진짜, 여러 Token으로부터 Output을 생성하는 만큼 Dropout이 의미가 있지 않을까 실험해봤다. 0.3 값에서 나름 유의미한 성능을 보였다고 생각했는데, 다른 Fold에서는 맥을 못추고 있다. 최종 결과는 두 방법 모두 제출해봐야 알 것 같다.
기존에 구현된 Model은 Tanh를 활성함수로 사용하고 있길래 SiLU로 변경해서 실험을 진행해봤다. 다른 점을 보이기는 했으나, 우열을 가리기는 어려웠기에, 기존의 Code대로 사용하기로 했다.
- LSTM Model 실험
기존 Server에서 학습을 진행하고 있어서, Colab 환경에서 실험을 했다. Colab의 GPU 용량이 작은 탓에 Batch Size가 매우 줄어들 수 밖에 없었다. 에러가 나지 않는 선까지 낮추게 되면, LR이 얼마이든 아예 학습이 진행되지 않는 문제가 생겼다. 이 Model은 기존 Server에서 실험해봐야 할 것 같은데, 최종적으로 사용할지 의문스럽다.
- 최종 Submit용 Ensemble
이번에 새로 나온 결과물과, 기존의 결과물들을 각각 Soft Voting, Hard Voting하여 결과를 제출할 예정이다.
추가로 진행 할 사항
- Dropout 기본 값으로 Model 학습 및 예측
- LSTM Model 학습 여부 결정
- 최종 Submit 고려 Ensemble
'네이버 부스트캠프 AI Tech' 카테고리의 다른 글
[P2] Day 60 (0) | 2021.04.26 |
---|---|
[P2] Day 59 (0) | 2021.04.26 |
[P2] Day 57 (0) | 2021.04.26 |
[P2] Day 56 (0) | 2021.04.26 |
[P2] Sunday 18 April (0) | 2021.04.26 |
Uploaded by Notion2Tistory v1.1.0