SKTBrain/KoBERT

[SEP], [CLS] 등 스페셜 토큰의 토크나이저 이슈

haven-jeon opened this issue · 4 comments

> tokenizer('[CLS] 감사합니다. [SEP]')
['▁[', 'C', 'LS', ']', '▁감사', '합니다', '.', '▁[', 'S', 'E', 'P', ']']

현재로서는 아래와 같은 방식으로 우회해야 됨

> ['[CLS]', ] + tokenizer('감사합니다. ') + ['[SEP]', ]

구글 protobuf를 수정하는 방식으로 기존 tokenizer 모델을 아래와 같이 수정하여 재 등록 해야 됨

google/sentencepiece#426
google/sentencepiece#306

[CLS] 토큰에 대한 임베딩 값이 필요할 경우 어떻게해야 하나요 ?

논문을 보시면 아시겠지만 [CLS]토큰은 이미 vocab에 들어가 있고 네트워크 내 토큰 임베딩으로 학습이 되어 있습니다. 따라서 모델을 로딩하고 임베딩 값을 뽑아 쓰시면 됩니다.

참고로 해당 질문은 이 이슈하고는 관련이 없는거 같습니다...

not fixed.

In [4]: tokenizer('[CLS] 감사합니다. [SEP]')                                                                                                                                                                                                                                        
Out[4]: ['▁', '[CLS]', '▁감사', '합니다', '.', '▁', '[SEP]']

해당 이슈는 follow up 이 없기 때문에 당분간 close합니다.