tokenizer 띄어쓰기에 문제가 있습니다.
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]))