j72-tokenizer
日本語向けの SentencePiece Unigram トークナイザ(語彙 72,000)。J72 系列モデルの学習・推論で使用しているものと同一のファイルです。
改行や ▁ などを私用領域文字 U+E000 でエスケープする薄いラッパー(ReversibleSentencePieceAdapter)と組み合わせて使うことで、任意の文字列を decode(encode(text)) == text で復元できます。
ファイル
| ファイル | 内容 |
|---|---|
tokenizer.model |
SentencePiece モデル本体 |
tokenizer.sha256 |
tokenizer.model の SHA-256 |
tokenizer_adapters.py |
可逆エスケープラッパー(escape-e000-v2) |
tokenizer.model の SHA-256:
73f58a921e338883470bc99c4cc364a3d5ef955a4c28b8ef62f0af508208f03f
仕様
| 項目 | 値 |
|---|---|
| 方式 | SentencePiece Unigram |
| 語彙数 | 72,000 |
| 特殊トークン | <unk>=0, <s>=1, </s>=2(pad なし) |
| byte fallback | あり(<0x00>〜<0xFF> の 256 個) |
| 正規化 | なし(identity) |
| dummy prefix | なし |
使い方
from huggingface_hub import snapshot_download
import sys
path = snapshot_download("j-llm/j72-tokenizer")
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など)は同梱していません。
ライセンス
CC BY-NC 4.0(表示・非営利)
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support