현재 통상적으로 많이 사용하고 있는 Hugging Face
의 WordPiece Tokenizer
(구글의 BERT
모델)나 센텐스피스(Sentencepiece
)(구글) 이전에 등장했던 전통적 기법부터 순차적으로 살펴볼 수 있었다.
바이트 페어 인코딩(Byte Pair Encoding, BPE
)
Unigram Language Model Tokenizer
센텐스피스(SentencePiece
)
서브워드텍스트인코더(SubwordTextEncoder
)
BERT의 워드피스 토크나이저(BertWordPieceTokenizer
)
기타 토크나이저
BertWordPieceTokenizer
: BERT에서 사용된 워드피스 토크나이저(WordPiece Tokenizer)CharBPETokenizer
: 오리지널 BPEByteLevelBPETokenizer
: BPE의 바이트 레벨 버전SentencePieceBPETokenizer
: 앞서 본 패키지 센텐스피스(SentencePiece)와 호환되는 BPE 구현체
기계번역 과제에서 모델의 성능을 평가하기 위한 지표인 BELU
또한, 이전에 카운터 기반/n-gram 등과 같은 수학/통계 기반의 지표들이 존재했다. 그리고 점차 정규화/패널티 등을 수학적으로 반영할 수 있는 평가지표로 발전해왔음을 느낄 수 있었다.
시퀀스-투-시퀀스(Sequence-to-Sequence, seq2seq
)
Teacher Forcing
(교사 강요) 개념seq2seq
기계번역기TensorFlow
로 구현하기 실습 (=LSTM
기반)
- 참고: [케라스 개발자 프랑수아 숄레의 블로그의 'sequence-to-sequence 10분만에 이해하기'] https://blog.keras.io/a-ten-minute-introduction-to-sequence-to-sequence-learning-in-keras.html
평가지표 BLEU
Score(Bilingual Evaluation Understudy Score)
💡
output, hidden_state, cell_state
(3가지 세트)<SOS>
토큰('\t', 인코더)과 <BOS>
토큰('\n, 디코더)