「Meta-Llama-3.1-8B」がリリースされたのだが、サポートしている言語が英語・ドイツ語・フランス語・イタリア語・ポルトガル語・ヒンディー語・スペイン語・タイ語の8つで、日本語は含まれていない。それならば、まずはタイ語のトークナイザを試してみよう。
>>> from transformers import AutoTokenizer
>>> tkz=AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3.1-8B",token="hf_this_token_is_dummy_use_your_own_one")
>>> print(tkz.convert_ids_to_tokens(tkz("แม่อย่าเก็บไว้คนเดียว")["input_ids"]))
['<|begin_of_text|>', 'à¹ģม', 'à¹Īà¸Ńย', 'à¹Īา', 'à¹Ģà¸ģ', 'à¹ĩà¸ļ', 'à¹Ħว', 'à¹ī', 'à¸Ħà¸Ļ', 'à¹Ģà¸Ķ', 'ียว']
「แม่อย่าเก็บไว้คนเดียว」をトークナイズしてみたが、どうもマズイ気がする。decode
してみよう。
>>> for t in tkz("แม่อย่าเก็บไว้คนเดียว")["input_ids"]:
... print(" ",tkz.decode(t))
...
<|begin_of_text|>
แม
่อย
่า
เก
็บ
ไว
้
คน
เด
ียว
単語の切れ目が「แม่」「อย่า」「เก็บ」「ไว้」「คน」「เดียว」になっていない。マトモに切れているのは「คน」くらいで、残りはボロボロだ。タイ文字クラスター(คลัสเตอร์อักษรไทย)すら、完全に無視してトークナイズしている。うーん、これでどうやってタイ語を処理すればいいんだろ。