0
0

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

Posted at

jmedllm-7b-v1という日本語生成AIが、覚醒プロジェクト「JMed-LMM:医療分野における大規模マルチモーダルモデルの開発」からリリースされた。Qwen2-7b-Instructをベースに日本語化したようなのだが、とりあえずトークナイザを試してみよう。

>>> from transformers import AutoTokenizer
>>> tkz=AutoTokenizer.from_pretrained("stardust-coder/jmedllm-7b-v1")
>>> 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\x83\xb3' '\xe3\u0125\u012a\xe3\u0125\xb3'
ネ b'\xe3\x83\x8d' '\xe3\u0125\u012f'
ル b'\xe3\x83\xab' '\xe3\u0125\xab'
を b'\xe3\x82\x92' '\xe3\u0124\u0134'
抜 b'\xe6\x8a\x9c' '\xe6\u012c\u013e'
ける b'\xe3\x81\x91\xe3\x82\x8b' '\xe3\u0123\u0133\xe3\u0124\u012d'
と b'\xe3\x81\xa8' '\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' '\xe5\xa4\u013e'
の b'\xe3\x81\xae' '\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