仕組みの説明
1. モデルの構造: キャラクターレベル・トランスフォーマー
このモデルは、文字を最小単位として扱う Transformer を使っています。 入力の文字列をベクトルに変換し、位置情報を足してから、自己注意機構で文脈を読み取り、2つの出力ヘッドで判定します。
- 文字埋め込み: 1文字ずつを意味を持つベクトルへ変換します。
- 位置エンコーディング: 文字の順番をモデルに伝えます。
- エンコーダー層: 自己注意機構と SwiGLU で文脈を処理します。
- デュアル・出力ヘッド: 句読点と改行を別々に予測します。
2. 推論の仕組み: スライディングウィンドウと重み付け
長い文章は、そのままだとモデルの最大文字数を超えてしまいます。 そこで少しずつ重ねながら読み、窓の中央に近い予測を少し強く扱って、境界でのブレを抑えます。
- 前処理で既存の句読点、改行、余分な空白を取り除き、文字だけの列にします。
- 最大文字数ごとに切り出し、少しずつずらしながら重ねて見せます。
- 窓の中央に近い予測をより信頼し、重なった部分を平均化します。
- 句読点はマージン、改行はしきい値で最終判断します。
推論のステップ
- 前処理: 入力されたテキストから、既存の句読点や改行、余分な空白をすべて取り除き、プレーンな文字の列にします。
- スライディングウィンドウ(重なりあり): 最大文字数(例:192文字)ごとに区切ってモデルに入力しますが、少しずつずらしながら(ストライド)重ねて処理します。 これにより、ある文字が「文章の端」に来ることで文脈が途切れてしまい、予測精度が落ちるのを防ぎます。
- 中心重視の重み付け(Center Weighting): 窓の端にある文字よりも、「窓の中央」にある文字の予測結果をより信頼するアルゴリズムを採用しています。 重なり合った部分の予測結果を、この重みに基づいて平均化することで、非常に滑らかで精度の高い統合を可能にしています。
最終的な判定
- 句読点の挿入: 各文字に対して算出されたスコアを比較し、特定の基準(マージン)を超えた場合にのみ句読点を挿入します。
- 改行の挿入: 改行については確率を算 出し、設定されたしきい値(デフォルト30%など)を超えた場合に改行を挟み込みます。
3. 学習データ
このモデルは LLM-jp Corpus v4 を使って学習されています。日本語の多様なテキストを含む大規模なコーパスです。