1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

mozcの変換にRinna GPTモデルを使ってみる

Last updated at Posted at 2023-10-03

はじめに

Rinna から提供されている gpt モデルを使って遊んでみています。

という流れからの、実装です。

何を実装したのか

mozc が変換時は Viterbi の結果をそのまま使っているようなので

  1. A*アルゴリズムを実装して Viterbi の結果を利用しつつ NBest パスを見つける。(今回 10 固定)
  2. 前確定文字列も含んでいる NBest パスを、Rinna GPT モデルで評価してみる。Batch として N 個のパスを渡しているのでモデルの起動は一度だけです。
  3. NBest パスで、異なっている文字列の部分だけ logits を取得して softmax を計算し、確率とする。ちなみに、普通にかけるとすぐアンダーフロー起こすので sum(log(softmax)) を計算結果とします。
  4. もっとも高い確率のパスで、Viterbi の結果をリプレースする。

という感じで、変換結果を入れ替えています。

デモスクリーンショット

RinnaGPT.gif

うまく変換するサンプル

確定済み文字列 入力 変換結果
部屋で犬を かう 飼う
店で犬を かう 買う
彼の足はとても はやい 速い
彼は朝がとても はやい 早い
山をゆっくり のぼる 登る
朝日がゆっくり のぼる 昇る

わかりやすいサンプルは、文末の動詞ですが、文中の入力でも

確定済み文字列 入力 変換結果
東京支社に彼は いどう 異動
東京に会場は いどう 移動

と変換はします。

とはいえ

いろいろ入力すると、うまく同音異義語を選ばない場合や、明らかな副作用があったりで、調整は必要ですね。(というか、mozc の CRF&Word Cost の値と、GPT の確率値とでは、線形補間できるか不明ですが)

また、mozc の性能評価は、何かツールがあるんでしょうかね。知っている方、ご教示願います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?