-
Notifications
You must be signed in to change notification settings - Fork 105
Transformer 모델 동작에 관한 FAQ
이 문서에서는 Transformer 모델을 실행 또는 활용하는데 있어 발생하는 문제를 정리하여 FAQ형식으로 내용을 남겨둡니다.
-
predict.py
를 실행하여 문장 생성을 하는데 실행시간이 너무 오래 걸립니다.
현재
predict.py
파일에서 실행하는 로직은 매번 모델 그래프를 생성하여 문장 생성을 합니다. 확인하기로는 모델 그래프를 생성하는 시간이 약 20~30초 가량 소모되는 것으로 확인됩니다. 따라서 모델 예측시간이 오래걸리지는 않습니다. 이 이슈는 추후에 별도 주피터 파일을 통해 해결할 수 있는 방법을 업로드 할 예정입니다. (2019년 6월 기준)
- 모델에 다른 데이터를 적용해서 학습을 해보고 싶은데 잘 되질 않습니다.
책에 나와있는 모델은 현재 주어진 한글 데이터에 한해서 Accuracy 기준으로 검증이 되어있는 상태입니다. 다른 데이터를 적용할 경우 그에 맞는 하이퍼파라메터 튜닝을 통해 모델 학습 성능을 검증해야 합니다. 모델 학습이 잘 되지 않을 경우에 디버깅이 필요합니다. 디버깅에 대한 가이드라인은 아래와 같습니다.
a. 적은 데이터셋 (10~100개의 데이터 인스턴스)을 가지고 모델 학습을 하여 모델이 loss 값이 0으로 수렴하는지 먼저 확인하세요.
b. 학습한 모델에 대해 predict.py를 이용하여 학습한 생성 문장이 잘 나오는지 확인해주세요. (모델 학습이 잘 된 경우라면 학습한 입력 문장에 대한 출력 생성 문장이 나오게 됩니다.)
c. 학습 데이터셋을 점진적으로 늘려 모델 학습을 하여 모델 학습에 대한 검증을 하도록 하세요. (검증과정에서 validation dataset을 적용하여 테스트 하여도 괜찮습니다. 하지만 현 상태에선 validation 성능이 모델 성능을 반영하지 않습니다.)
d. 전체 데이터셋을 학습하여 결과를 확인하세요.
e. 이후에도 predict.py 결과가 좋지 못하다면 모델 validation 성능을 확인하세요.
f. 경우에 따라서 학습하는 데이터에 따라 모델 학습과 예측에 영향을 받습니다. 위 과정을 거치고 문제가 여전히 발생한다면 데이터에 대한 분석을 진행해 볼 필요가 있습니다. (예를 들어 적은 데이터셋인 경우 학습에 대한 결과를 기대하기 어렵습니다.)