본문 바로가기

BPE

(2)
한국어 자연어처리 1편_서브워드 구축(Subword Tokenizer, Mecab, huggingface VS SentencePiece) 실습 코드(jupyter notebook) : github.com/keep-steady/NLP_for_korean.git 자연어처리를 오랫동안 하다 보니 나만의 한글 데이터셋에 Bert, Transformer 등 새로운 모델의 입력을 만들어야 할 일이 많다. 하지만 길고 긴 Pretraining을 수행 전 subword vocab을 만드는 건 정말 중요하다. 아무리 Pretraining을 잘 수행했어도 subword의 품질이 최종 성능에 많은 영향을 미친다. 특히 vocab은 중간에 바꿀 수 없어서 몇 달간 학습한 Pretraining 결과도 쓸모없어지는 수가 있다. 필자 이전 구글의 sentencepiece를 쭉 이용해와서 새롭고 빠른 tokenizer가 나왔다 해도 별 생각이없었다. 얼마나 빠르길래?..
서브워드 분절하기(sentencepiece, bpe, sub-word, bpe-droupout) 자연어처리를 오랫동안 하다보니 나만의 한글 데이터셋에 Bert, Transformer 등 새로운 모델의 입력을 만들어야 할 일이 많다. 한국어 자연어처리를 하는사람들이라면 매번 데이터셋에 맞는 sub-word 모델을 학습하고 vocab 사전을 만들어야한다 본 글에서는 내 데이터를 서브워드 분절하는 방법을 다루고자 한다 서브워드를 만드는 알고리즘은 사실 너무 많다. 1) 구글의 sentencepiece 2) opennmt 3) rust로 짜여 속도가 빠른 huggingface의 tokenizers 4) bpe 기법을 고안한 rsennrich의 코드 본 글에서는 구글의 sentencepiece 사용법을 다루고 다음글에서 huggingface의 tokenizers와 비교해 보려 한다 자연어 처리 시 모든 단어..