0. 실험 효율적으로 하기

태스크를 해결하는 것은 다음과 같은 것들로 이루어져 있을 겁니다.

  1. 문헌 탐색 : 관련 연구분야의 데이터셋, 모델 관련 논문 탐색
  2. 태스크 탐색 : baseline 모델을 이용하여 전체 학습 파이프라인 작성 & 한계점 및 데이터/태스크 특성 탐색
  3. 실험 : 개선점에 대해 아이디어를 직접 실험을 통해 구현

이때, 파이프라인은 대략적으로 아래와 같은 파일 구조를 가지게 됩니다.

dataset
- train.csv
- validation.csv
- test.csv

src # 학습에 필요한 요소들이 담긴 폴더  
- model.py # 모델 구현체 
- dataset.py # 태스크에 맞는 dataset class 및 preprocess 구현체 
- utils.py # 기타 학습에 필요한 함수 및 클래스 
- trainer.py # HuggingFace Trainer 사용 시 구현체 

main.py # 실제 학습이 돌아가는 부분

result # 모델 학습 결과물이 저장되는 폴더 (로깅 파일들 역시 저장)
- bert_lr05
-- metric.json 
-- predictions.npy
-- logs.txt

- roberta_simcse
-- metric.json 
-- predictions.npy
-- logs.txt

config
- bert_lr05.yaml
- roberta_simcse.sh

문헌 조사나 태스크 탐색의 경우 이미 대회 진행이나 이전 멘토링을 통해 많이 말씀드렸으니 그 다음으로 중요할 수 있는 요소는 다음과 같습니다.

  1. 얼마나 빨리 구현할 수 있는가
  2. 얼마나 빨리 실험을 할 수 있는가

1번의 경우 개인의 역량에 달려 있습니다. 단기간에 해결되지 않고, 꾸준히 코딩하고 잘 작성된 코드들을 살펴보면서 서서히 나아질 거에요. 걱정보다는 앞으로 나아질 모습을 기대해봅시다. 여러분들은 꾸준히 하실 수 있는 분들이니까요!

오늘 이야기할 내용은 2번입니다. 어떻게 하면 다양한 실험을 빠르게 진행할 수 있을까요? 사실 이런 부분은 기술적이고, 금방 체득할 수 있습니다. 자신만의 스타일 역시 존재하기 때문에, 점차 본인에게 편한 방식을 찾으시면 될 것 같아요.