0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Tri-7Bは『雪国』の冒頭をどうトークナイズするのか

Posted at

Trillion Labsが「Tri-7B」を正式リリースした。パラメータ数77億のLLaMAモデルで、韓国語・日本語・英語をサポートする生成AIである。とりあえず、トークナイザを試してみよう。

>>> from transformers import AutoTokenizer
>>> tkz=AutoTokenizer.from_pretrained("trillionlabs/Tri-7B",token="hf_this_token_is_dummy_use_your_own_one")
>>> print(tkz.convert_ids_to_tokens(tkz("国境の長いトンネルを抜けると雪国であった。","夜の底が白くなった。")["input_ids"]))
['åĽ½', 'å¢ĥ', 'ãģ®', 'éķ·ãģĦ', 'ãĥĪ', 'ãĥ³ãĥį', 'ãĥ«ãĤĴ', 'æĬľãģij', 'ãĤĭãģ¨', 'éĽª', 'åĽ½', 'ãģ§ãģĤãģ£ãģŁ', 'ãĢĤ', 'å¤ľãģ®', 'åºķ', 'ãģĮ', 'çϽ', 'ãģıãģªãģ£ãģŁ', 'ãĢĤ']

う、「国」が「åĽ½」ということは

>>> text="国境の長いトンネルを抜けると雪国であった。夜の底が白くなった。"
>>> x=tkz(text,return_offsets_mapping=True)
>>> for i,(s,e) in zip(x["input_ids"],x["offset_mapping"]):
...   print(text[s:e],text[s:e].encode("utf-8"),ascii(tkz.convert_ids_to_tokens(i)))
...
国 b'\xe5\x9b\xbd' '\xe5\u013d\xbd'
境 b'\xe5\xa2\x83' '\xe5\xa2\u0125'
の b'\xe3\x81\xae' '\xe3\u0123\xae'
長い b'\xe9\x95\xb7\xe3\x81\x84' '\xe9\u0137\xb7\xe3\u0123\u0126'
ト b'\xe3\x83\x88' '\xe3\u0125\u012a'
ンネ b'\xe3\x83\xb3\xe3\x83\x8d' '\xe3\u0125\xb3\xe3\u0125\u012f'
ルを b'\xe3\x83\xab\xe3\x82\x92' '\xe3\u0125\xab\xe3\u0124\u0134'
抜け b'\xe6\x8a\x9c\xe3\x81\x91' '\xe6\u012c\u013e\xe3\u0123\u0133'
ると b'\xe3\x82\x8b\xe3\x81\xa8' '\xe3\u0124\u012d\xe3\u0123\xa8'
雪 b'\xe9\x9b\xaa' '\xe9\u013d\xaa'
国 b'\xe5\x9b\xbd' '\xe5\u013d\xbd'
であった b'\xe3\x81\xa7\xe3\x81\x82\xe3\x81\xa3\xe3\x81\x9f' '\xe3\u0123\xa7\xe3\u0123\u0124\xe3\u0123\xa3\xe3\u0123\u0141'
。 b'\xe3\x80\x82' '\xe3\u0122\u0124'
夜の b'\xe5\xa4\x9c\xe3\x81\xae' '\xe5\xa4\u013e\xe3\u0123\xae'
底 b'\xe5\xba\x95' '\xe5\xba\u0137'
が b'\xe3\x81\x8c' '\xe3\u0123\u012e'
白 b'\xe7\x99\xbd' '\xe7\u013b\xbd'
くなった b'\xe3\x81\x8f\xe3\x81\xaa\xe3\x81\xa3\xe3\x81\x9f' '\xe3\u0123\u0131\xe3\u0123\xaa\xe3\u0123\xa3\xe3\u0123\u0141'
。 b'\xe3\x80\x82' '\xe3\u0122\u0124'

やはり、UTF-8のByte-Pair Encodingがナマで使われてる(ただし0x00~0x20・0x7f~0x9fはU+0100~U+0120・U+0121~U+0141へマッピング)。しかも「ト」「ンネ」「ルを」「抜け」「ると」と切っていて、日本語トークナイザとしては使いにくい。やっぱり、韓国語向けモデルだと考えた方がいいのかな。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?