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
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for umiyosh/modernbert-ja-130m-coreml

Quantized
(9)
this model