Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] add_tokens method로 추가한 토큰에 의한 분리가 적절하게 이루어지지 않습니다 #115

Open
leehyuwnoo opened this issue Oct 4, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@leehyuwnoo
Copy link

leehyuwnoo commented Oct 4, 2024

🐛 Bug

KoBERT 모델을 특정 분야에 특화시키기 위해 해당 분야에서 자주 사용되는 단어들의 맨 앞에 SPIECE_UNDERLINE이 붙은 상태와 붙지 않은 상태를 각각 따로 add_tokens로 추가하였습니다.

이후 토크나이저로 추가된 단어들이 포함된 문장을 토크나이즈하였으나 vocab에 추가된 단어를 여러 개로 분리하여 토큰화합니다.

예를 들어 토크나이저에

['시편측정', '시편', '측정']의 단어들을 추가하면

이후에 '시편분석'이라는 단어가 포함된 문장을 분석할 때

'시편', '분석'으로 분리합니다.

SentencePiece 토크나이저는 가능한 한 문장을 길이가 긴 토큰들로 토큰화한다고 알고 있었는데 이와 다르다면 지적 부탁드립니다.

To Reproduce

from kobert_tokenizer import KoBERTTokenizer

tokenizer = KoBERTTokenizer.from_pretrained('skt/kobert-base-v1')

tokenizer.add_tokens('▁시편')
tokenizer.add_tokens('▁측정')
tokenizer.add_tokens('▁시편측정')

tokenizer.add_tokens('시편')
tokenizer.add_tokens('측정')
tokenizer.add_tokens('시편측정')

tokenizer.convert_ids_to_tokens(tokenizer.encode('시편측정 결과 다음과 같은 사실들을 발견할 수 있었다.'))

결과

['[CLS]', '시편', '측정', '▁결과', '▁다음', '과', '▁같은', '▁사실', '들을', '▁발견', '할', '▁수', '▁있었다', '.', '[SEP]']

버그를 재현하기 위한 재현절차를 작성해주세요.

    • 새로운 토큰을 추가
    • 추가한 토큰이 포함된 문장을 토크나이저로 토큰화 시도

Expected behavior

['[CLS]', '▁시편측정', '▁결과', '▁다음', '과', '▁같은', '▁사실', '들을', '▁발견', '할', '▁수', '▁있었다', '.', '[SEP]']

Environment

cuda 11.8
python 3.8
pytorch 1.9.0

Additional context

@leehyuwnoo leehyuwnoo added the bug Something isn't working label Oct 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant