modernbert-ja-130m-coreml
sbintuitions/modernbert-ja-130m(SB Intuitions、MIT)を Core ML に変換した、穴埋めの採点用モデルです。Apple Silicon の Neural Engine で動きます。重みは元のモデルのままで、学習はしていません。
変換と検証のコード: umiyosh/modernbert-ja-ondevice
入出力
coreml/modernbert-ja-130m-scoring-b32-l32.mlpackage(float16、バッチ 32 × 長さ 32 の固定)
| 名前 | 形 | 内容 |
|---|---|---|
input_ids |
32 × 32、int32 | トークン列。足りない分は <pad> で埋め、伏せる位置には自分で <mask> を置く |
attention_mask |
32 × 32、int32 | トークンのある位置が 1 |
position |
32、int32 | 各行の伏せた位置 |
target |
32、int32 | 各行で確率を知りたいトークン |
logp(出力) |
32、float | 各行の log P(target | 文脈) |
出力を 1 行 1 つの数に絞っているのは、語の候補を文の中で比べる用途(「以外と使いやすい」と「意外と使いやすい」のどちらが自然か)には、それで足りるからです。102,400 語の分布を返すより速く、メモリも少なくて済みます。トークナイザーは元のモデルと同じもの(tokenizer.json)を同梱しています。
精度と速さ
Apple Silicon の Mac で測りました。PyTorch(float32)との log P の差は、実際の文で平均 0.021、最大 0.08 です。Neural Engine で 32 行 28.8 ms です(GPU 43.8 ms)。
Python(coremltools 9.0)から呼ぶときは PYTHONMALLOC=malloc を付けてください。付けないと、Core ML の裏のスレッドがメモリを解放するときに落ちることがあります。
使われ方
誤変換の検出器 umiyosh/modernbert-ja-130m-typo-detector で怪しい語を絞り、このモデルで同音語などの候補を採点する組み合わせで、誤変換の検出率は held-out 72%・fresh 67%(正しい文への印は 1,000 字に 1 個以下)、3,000 字 0.9 秒でした。
ライセンス
MIT。元のモデル(Copyright (c) 2025 SB Intuitions)と同じです。
English
sbintuitions/modernbert-ja-130m (MIT) converted to Core ML for the Apple Neural Engine, unchanged weights. It returns log P(target) at one masked position per row (batch 32 × length 32, float16): enough to compare a written word with its alternatives in context. Mean / max difference from PyTorch float32: 0.021 / 0.08; 28.8 ms per 32 rows on the Neural Engine. Conversion code: umiyosh/modernbert-ja-ondevice.
- Downloads last month
- 8
Model tree for umiyosh/modernbert-ja-130m-coreml
Base model
sbintuitions/modernbert-ja-130m