Views
No views yet
O / B-RISK / I-RISK)sbintuitions/modernbert-ja-130m(MIT)stockmark/ner-wikipedia-dataset(CC BY-SA 4.0)+ 漢字専門語 118 語の弱ラベル注入1入力: 潤羽るしあの配信で魔王魂の楽曲が流れた
2出力: [
3 {"surface": "潤羽るしあの", "start": 0, "end": 6, "label": "RISK", "score": 1.0},
4 {"surface": "魔王魂", "start": 9, "end": 12, "label": "RISK", "score": 0.999}
5]transformers のトークン分類パイプラインから直接利用できます。1from transformers import AutoTokenizer, AutoModelForTokenClassification, pipeline
2
3model_id = "ayousanz/yomi-linter-modernbert-ja-130m"
4tok = AutoTokenizer.from_pretrained(model_id)
5model = AutoModelForTokenClassification.from_pretrained(model_id)
6ner = pipeline(
7 "token-classification",
8 model=model,
9 tokenizer=tok,
10 aggregation_strategy="simple",
11)
12
13for span in ner("潤羽るしあの配信で魔王魂の楽曲が流れた"):
14 print(f"{span['word']:10s} {span['entity_group']:5s} score={span['score']:.3f}")潤羽るしあの RISK score=1.000
魔王魂 RISK score=0.999nn.Linear のみ INT8 化)が使えます。配布ウェイトは float のままで、ロード時にクライアント側で量子化します。1import torch
2from torch.ao.quantization import quantize_dynamic
3
4model_q = quantize_dynamic(model, {torch.nn.Linear}, dtype=torch.qint8)| バリアント | サイズ | CPU ms/文 | 漢字実誤読 recall |
|---|---|---|---|
| 130m float(本モデル) | 505 MB | 63 | 80% |
| 130m INT8(動的量子化) | 277 MB | 39 | 80% |
| 比較対象 | 純日本語固有名詞 | 漢字専門語(医療含む) |
|---|---|---|
| OpenJTalk + 公開読み辞書のみ | 14% | ― |
| 漢字弱ラベルなし(従来モデル) | 71–100% | 47% |
| 本モデル(漢字弱ラベル 118 語あり) | 71–100% | 82% |
冠動脈瘤 のような医療熟語の一部はまだ完全には拾えません(漢字穴は 83% 縮小・1/6 程度の残あり)。sbintuitions/modernbert-ja-130m(MIT)stockmark/ner-wikipedia-dataset(CC BY-SA 4.0) + 漢字真誤読 118 語1@software{yomi_linter_2026,
2 author = {yousan},
3 title = {yomi-linter: ModernBERT-Ja for Japanese TTS misreading pre-flight},
4 year = {2026},
5 url = {https://huggingface.co/ayousanz/yomi-linter-modernbert-ja-130m}
6}