J-series Tokenizers v2
Collection
日本語向け SentencePiece Unigram トークナイザ v2 系列。語彙 32,000〜128,000 の6サイズ。改行などを U+E000 でエスケープする可逆ラッパー(escape-e000-v2)付き。語彙ブラウザ・比較: https://j-llm.org/tokenizer/ • 6 items • Updated
日本語向けの SentencePiece Unigram トークナイザ(語彙 64,000、v2 系列)。
改行や ▁ などを私用領域文字 U+E000 でエスケープする薄いラッパー(ReversibleSentencePieceAdapter)と組み合わせて使うことで、任意の文字列を decode(encode(text)) == text で復元できます。
ブラウザ上で語彙の閲覧とトークナイズ結果の確認・他サイズとの比較ができます: J トークナイザ語彙ブラウザ
本モデルは 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 など)は同梱していません。