j64-tokenizer-v2

日本語向けの SentencePiece Unigram トークナイザ(語彙 64,000、v2 系列)。

改行や ▁ などを私用領域文字 U+E000 でエスケープする薄いラッパー(ReversibleSentencePieceAdapter)と組み合わせて使うことで、任意の文字列を decode(encode(text)) == text で復元できます。

ブラウザ上で語彙の閲覧とトークナイズ結果の確認・他サイズとの比較ができます: J トークナイザ語彙ブラウザ

v1 との非互換について

本モデルは v1 系列(j-llm/j72-tokenizer)とは別のコーパス・設定で学習した別語彙です。トークン ID 列と分割結果に互換性はありません。v1 のモデルファイルを差し替えて使うことはできません。

ファイル

ファイル 内容
tokenizer.model SentencePiece モデル本体
tokenizer.sha256 tokenizer.model の SHA-256
tokenizer_adapters.py 可逆エスケープラッパー(escape-e000-v2)

tokenizer.model の SHA-256:

0f2fefec0cd5f84a4efa76f31ebcacd0510b341219bf6037e1b49ce0d84a0a66

仕様

項目 値
方式 SentencePiece Unigram
語彙数 64,000
特殊トークン <unk>=0, <s>=1, </s>=2(pad なし)
byte fallback あり(<0x00>〜<0xFF> の 256 個)
正規化 なし(identity)
dummy prefix なし

学習データ

約 9,857 万字(web 小説 87%・青空文庫系 12%・古文 0.3%・AA 0.4%)。青空文庫のルビ・注記は除去済みで、漢文は学習入力から除外しています。系列内に語彙 8,000〜128,000 の 9 サイズがあります。

使い方

from huggingface_hub import snapshot_download
import sys

path = snapshot_download("j-llm/j64-tokenizer-v2")
sys.path.insert(0, path)
from tokenizer_adapters import ReversibleSentencePieceAdapter

tok = ReversibleSentencePieceAdapter(f"{path}/tokenizer.model")
text = "吾輩は猫である。\n名前はまだ無い。"
ids = tok.encode(text)
assert tok.decode(ids) == text

注意

  • tokenizer.model を SentencePiece で直接読むだけでは、\r\n・U+2028・▁ などを含む文字列が元に戻りません。モデルの学習時と同じ ID 列を得るには、必ず ReversibleSentencePieceAdapter を通してください。
  • encode は BOS/EOS を付与しません。必要な場合は呼び出し側で ID 1 / 2 を追加してください。
  • transformers の AutoTokenizer 用ファイル(tokenizer.json など)は同梱していません。

ライセンス

Apache License 2.0

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including j-llm/j64-tokenizer-v2