
BERT 모델 구축해서 Regression 최종 예측하는 모델 만들고 있는데 모델의 성능을 높이기 위해서 느낀 점을 기록해봤다.
기본이 중요하다.
얼마나 Fancy한 모델을 사용하는지, 모델 구조나 그 외 하이퍼파라미터 들은 성능에 크게 영향을 주지 않는다.
예) 모델 Layer를 크게 만든다던가, Optimizer, learning rate를 바꾼다던가
간단한 모델이라도 Task에 맞는 구조와 사용해야 될 때를 정확히 알고 쓸 때 훨씬 효과적
AI 엔지니어들은 이렇게 조금씩 삽질해가면서 그런 노하우를 경험적으로 터득하는 것 같다.
예) 0~1 사이의 점수를 예측하는 Regression이니 활성화 함수도 0~1 사이를 내는 Sigmoid 함수가 더 효과적
early_stopping에 사용하는 valid_dataset을 train_dataset으로 해버리니 과적합 문제가 발생했었음
이를 수정하니 0.4 > 0.5로 상관계수 증가
결국, 문제는 데이터다.
처음 결과가 잘 나오지 않았을 때, 고민하다가 데이터 처리 과정을 들여다보니, 임베딩 데이터를 잘못 잘라서 넣고 있음을 깨달았다. (pandas csv 불러올 때 처음 column을 header로 인식해서 임베딩 에세이 데이터가 조금씩 밀렸었음)
Loss가 크게 추론한 샘플에 대해서 왜 그런지 들여다보는 것도 좋은 방법
분류 문제의 경우, 대체로 Loss가 크게 나온 데이터 카테고리가 부족해서 많이 생김
데이터셋의 카테고리가 얼마나 고르게 분포되어 있는지도 매우 중요

AI 모델 개발하시는군요. 와~ 저는 관심은 많지만, 전공도 아니고 경험도 없는 문외한이라... 이런 일을 하시는 분 보면, 부럽고 신기합니다. 하신 일들 좀 염탐할 수 있게 글 종종 올려주시면 좋겠습니다. ^^

앗 안녕하세요~ 아직 글 올리기 부끄러운 수준이라.. ㅠㅠ 공부하면서 기록용으로 틈틈히 올려보겠습니다.