fluent-python-study / project-meat-chatbot-ml

0 stars 0 forks source link

[Tokenizer] with Huggingface #4

Open dohnlee opened 3 years ago

dohnlee commented 3 years ago

Bert 계열의 pretrain 모델을 이용할 경우 tokenizer도 pretrain 된 걸 사용하면 돼지만, 만약 scratch 부터 학습하는 경우 ( pretrained 된 모델을 사용하지 않고 처음부터 학습 ) 하는 경우 tokenizer도 직접 만들어야 합니다.

tokenizer는 쉽게 생각해서 학습할 text 문장을 token 단위로 쪼개주는 역할을 합니다. 여기서 token의 기준은 여러 알고리즘에 기반하게 됩니다. 가장 간단한 방식은 white space 기준으로 단어를 쪼개는 방식입니다.

NLP task 관련 DL framework인 hugging face에서 tokenizer를 쉽게 사용할 수 있도록 api를 제공합니다.

tokenizer model별로 성능 비교를 하지는 않았으나, 주로 이용되어지는 BPE(Byte Pair Encoding) 을 활용하였습니다.

전처리는 간단하게 진행했습니다. dialogue의 경우 \r\n을 이용해서 대화를 분리합니다. 따라서 이를 제거 + 공백으로 대체 합니다.

간단한 튜토리얼 몇개 참고해서 작성했습니다.

get_tokenizer 함수를 이용해서 tokenizer를 정의 + 학습/로드 를 진행합니다.

참고해보면 좋을만한 블로그 :