지난 1년 동안 석사생활을 지내면서 느꼈던 어려움들과 이를 어떻게 극복하였는지를 정리해논 글입니다. 인공지능(AI)과 자연어처리(NLP) 분야를 처음 연구하면서 많은 시행착오들을 겪고 나름 저만의 방법을 정리하고 커리큘럼으로 구축하였습니다. 아직 미숙하기 때문에 단지 참고용으로 봐주시면 감사하겠습니다.
석사 입학 전, 아래와 같은 상태에서 새로 시작하였습니다.
약 1년2개월 동안, 개인연구를 진행하면서 아래의 커리큘럼을 거쳐왔습니다. 개인적으로 1번 과정을 꼼꼼히 거쳤었으면 하는 큰 아쉬움이 있네요. 처음 노베이스 상태에서 시작했기 때문에 2번 과정에서는 4개월이라는 긴 시간이 소요되었습니다. 개인적으로 BERT, BART 등 흔히 사용되는 Transformer 기반 models에 대한 지식이 없었기 때문이라고 추측이 됩니다. 3번 과정(Problem 찾기)에서는 내가 찾은 Problem이 틀릴 수 있지만 왜 틀렸는지에 대한 이유를 찾으면 괜찮다고 생각이 듭니다. 3번과 4번에서는 무작정 새로운 Idea로 시작하기 보다는 model performance에 민감한 hyperparameter에 변형을 주거나 model 구조를 바꿔보는 등 단순한 궁금증의 실험부터 시작해본것 같습니다. 5번 과정이 개인적으로 제일 힘들었는데 초기에는 제가 생각한 가설들이 대부분이 틀려서 왜 그런지?에 대한 이유를 찾기가 어려웠습니다. 많은 레퍼런스를 찾으면 찾을수록 도움이 되었습니다.
문제점(Problem)을 찾고 성능이 오르기까지 아래의 규칙을 순서대로 따를려고 노력하였습니다.
블로그(네이버, 티스토리 등)나 pptx 같은 여러 툴에서 작성해봤지만 저한테는 노션이 가장 편리하였습니다. 이유는 노션에서 제공하는 다양한 기능들과 다른사람들과 연구를 공유할 때의 편리함이 가장 큰 이점들인 것 같습니다. 향후 전체적인 논리를 정리할 때 일주일 단위로 기록한 일지들을 많이 참고하였습니다. 대학원생이라면 학생계정으로 노션 Professional 버전을 사용하실 수 있으니 추천드립니다. (Pro 버전이 저장용량이 더 큰 것으로 기억합니다.) 그외에도 유튜브에서 정리해논 템플릿을 다운받으시면 더 유용하게 사용하실 수 있을 것 같습니다.
▶ 추천 리스트
개발 환경에서의 에러나 모델 구현시 겪었던 어려움들을 Github의 README 파일에 기록하였습니다. 사람이기 때문에 반복되는 실수를 할 확률이 높기 때문에 에러의 내용과 해결과정을 기록해 두면 같은 에러라도 해결하는 시간과 노력이 적어집니다. 개인적(Private)으로 기록해도 좋고 Public으로 공개해도 좋습니다.
▶ jeewoo1025의 Tips : https://github.com/jeewoo1025/Tips
▶ jeewoo1025의 aiEducation 공부기록 : https://github.com/jeewoo1025/aiEducation
개인연구를 할 때 수많은 실험들을 해야하는데 제가 감당할 수 있는 실험만 하는 것을 추천드립니다. 저같은 경우는 최대 4개의 실험까지만 컨트롤 할 수 있는데 그 이유는 4개를 넘어가면 꼭 실수가 나오는 걸 확인하였습니다. 그러면 다시 재실험을 해야되고 그만큼 2배의 시간과 노력이 소비됩니다.
이상으로 본 포스트를 마칩니다.
상업적 이용을 비허용하고 콘텐츠 변경을 비허용합니다.
본 포스트의 저작권은 설지우에게 있으며 참조할 때 미리 허락을 구하시길 바랍니다.