위 문서는 학습 및 구현을 하며 실수를 범했던 과정 중에 기록을 하고 있으므로, 추가 업데이트 될 것입니다.
자연어처리 모델 구현 순서
1. 전처리
2. 모델 구축
3. 모델 학습
1. 전처리 방식
-
character level
한국어 기준으로 '가,갸,어,여' 등이 있음. 단어의 고유한 의미를 표현하는 것은 아니라서 좋은 성능을 내지는 못함.
-
space level
띄어쓰기 단위로 vocab을 생성하는 방법.
-
일반적인 방식
Google에서 제공한 sentencepiece를 활용하거나 huggingface에서 제공하는 BertWordPieceTokenizer를 활용함.
-
주의할 점
- vocabulary와 custom dataset의 격차가 크면 학습이 잘 안 될 수도 있음. 예를 들어서, custom dataset에는 '##세싱' 이라는 token이 존재하는데 vocabulary에는 존재하지 않을 때, 그리고 이러한 경우가 많은 case에서는 학습의 성능을 낮출 수 있음. 모두 다 'unknown token'으로 매핑되기 때문에.
- 따라서, 위와 같은 경우 vocabulary에 custom dataset을 기반으로 vocabulary를 업데이트 해줘야 함.
3. 모델 학습
- Loss Function
- binary classification에서는 일반적으로 activation function은 sigmoid 함수가, 그리고 loss function으로는 binary cross entropy 함수가 쓰임. Linear 레이어를 활용하여 분류할 때, 최종 노드의 개수를 1로 설정해야 함.