Mojicast punct-onnx — 日本語句読点復元モデル(ONNX変換版)
配信用リアルタイム字幕アプリ Mojicast が使用する、 日本語テキストへの句読点(、。)復元モデルの ONNX 変換版です。
元モデル(クレジット)
- 土台: tohoku-nlp/bert-base-japanese-char-v3(Apache-2.0)
- 句読点予測の重み: bobfromjapan/bert_japanese_punctuation(Apache-2.0)
各制作者に感謝します。
変更内容
- 上記2つを結合した PyTorch モデル(BERT + 線形層のトークン分類)を ONNX(opset 17 / fp32 / 単一ファイル)へエクスポート
- さらに int8 動的量子化版(per-channel / MatMul のみ)を追加。Mojicast の既定はこちら
- 変換スクリプト: Mojicast リポジトリの
tools/convert_models.py
ファイル
| ファイル | 内容 |
|---|---|
punct_bert.int8.onnx |
既定。int8 動的量子化(per-channel)・約109MB |
punct_bert.onnx |
fp32・約364MB(高精度用) |
vocab.txt |
文字語彙(tohoku-nlp BERT char v3 と同一) |
int8版について
実配信ログ948行で fp32 と比較した実測(Windows 11 / 16C・スレッド4):
| fp32 | int8(per-channel) | |
|---|---|---|
| ファイル | 364MB | 109MB |
| 常駐メモリ増分 | +390MB | +154MB |
| 1行あたりの処理 | 約11ms | 約5ms |
| fp32との判定一致 | — | 89.5% |
不一致100件の内訳は 文末の「。」欠落69 / 文中の句読点が減る25 / 位置ずれ4 / 増える2 で、 本文が変わるものは0件でした。なお per-tensor 量子化では一致率が 50.3% まで落ちるため、 per-channel が必須です。
入出力
- 入力:
input_ids/attention_mask(int64、文字単位トークン) - 出力:
logits(各トークン直後の [読点, 句点] のロジット。sigmoid して閾値判定)
ライセンス
Apache-2.0(元モデルに従う)