tokenizer 띄어쓰기에 문제가 있습니다.

#1
by jp1924 - opened
  • original

    (라디안으로 평가된) $y = \sin \frac{1}{x}$ 그래프에서 $(0.0001, 0.001)$ 간격의 $x$-절편 수를 구합니다.

  • encode > decode

    (라디안으로평가된) $y = \sin \frac{1}{x}$그래프에서 $(0.0001, 0.001)$간격의 $x$-절편수를구합니다.

tokenizer로 encode된 결과물을 다시 decode 했을 때 실제 original 데이터와 차이가 발생합니다.

from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("beomi/SOLAR-KOEN-10.8B")

ori = "(라디안으로 평가된) $y = \\sin \\frac{1}{x}$ 그래프에서 $(0.0001, 0.001)$ 간격의 $x$-절편 수를 구합니다."
tkn = tokenizer.decode(tokenizer.encode(ori))

print(tkn)

저도 동일한 현상이 보이네요..
영어는 잘 되는데 한국어는 띄워쓰기가 안됩니다.

model_config = "beomi/SOLAR-KOEN-10.8B"
tokenizer = AutoTokenizer.from_pretrained(model_config, use_fast=True)

out = tokenizer("how are you??. fine thank you and you?", return_tensors='pt', return_token_type_ids=False)
tokenizer.convert_tokens_to_string(tokenizer.convert_ids_to_tokens(out['input_ids'][0]))

out = tokenizer("만나서 반갑습니다. 끝나고 어디에 갈까요?", return_tensors='pt', return_token_type_ids=False)
tokenizer.convert_tokens_to_string(tokenizer.convert_ids_to_tokens(out['input_ids'][0]))

Sign up or log in to comment