이 페이지의 목표는 영화 리뷰가 긍정적인 내용인지 부정적인 내용인지 분류하는 모델을 개발하는 것이다. 최종적으로 영어 및 한글을 둘 다 지원하는 모델을 구현하는 것이 목표이며, 이를 위하여 모델 학습 및 평가, 데이터셋 구축, 그리고 데모 구축을 진행하였다.
Huggingface에서 제공하고 있는 “sst2”(Stanford Sentiment Treebank) 데이터셋을 사용했다. 주로 전체 문장에 대한 이진 분류 실험을 할 때 사용되며 중립적인 문장보다 긍정적 이거나 부정적인 문장들로 구성되어 있다. ( 데이터셋에 대해 더 알고 싶으면 여기서 확인해 보시길 바랍니다. )
실험한 모델은 Transformer 기반의 2-way 분류기인 distilbert-base-uncased, distilbert-base-cased, bert-base-uncased, bert-base-cased 그리고 roberta-base 이다. Huggingface library를 이용하여 사전에 훈련된 모델을 통해 (전이) 학습 및 평가를 진행하였다. 하이퍼파라미터 튜닝 방법으로는 Random Search를 통해 learning rate와 batch size를 다양하게 실험해보았고 Early Stopping과 Linear Schedule with warmup 기법을 통해 효율적으로 학습시켰다. Gradient-based Optimization으로는 Adamw Optimizer를 사용하였고 학습을 할 때는 Google에서 제공하고 있는 Colab Cuda를 이용했다. 최종적으로 성능이 좋은 모델을 결정할 때에는 validation 데이터셋에서 정확도가 가장 높은 것으로 선정하였다.
결과는 다음과 같다.
Model Name | Number of Parameters |
---|---|
distilbert-base-uncased | 67M |
distilbert-base-cased | 65M |
bert-base-uncased | 109M |
bert-base-cased | 108M |
roberta-base | 124M |
Tuning Model Hyperparameters
가장 좋은 성능 영어 모델
Model Name | roberta-base |
---|---|
Learning Rate | 5e-5 |
Batch Size Train | 64 |
Steps | 1900 |
Batch Size Test | 4 |
Validation Accuracy | 95.26% |
Test Accuracy | 94.5% |