1.GCE:Pixel6の文字入力時の文法エラー修正モデル(2/2)まとめ
・大規模なクラウドベースのモデルを作りそこからオンデバイス用の学習データを作成
・クラウドベースのモデルの学習用データをそのまま使うより良いモデルが出来た
・このモデルを使いGboardは文法の間違いに下線を引き代替案を提供できている
2.GCEの学習データの作り方
以下、ai.googleblog.comより「Grammar Correction as You Type, on Pixel 6」の意訳です。元記事の投稿は2021年10月27日、Tony MakさんとSimon Tongさんによる投稿です。
アイキャッチ画像のクレジットはPhoto by freestocks on Unsplash
次に、この<元文章, 修正された文章>文のペアのトレーニングデータセットを使用して、完全な文を修正できる小さなオンデバイスモデルをトレーニングします。このトレーニングデータセットから構築されたオンデバイスモデルは、クラウドベースのモデルのトレーニングに使用された元のデータに基づいて構築された同様のサイズのオンデバイスモデルよりも大幅に高い品質の提案を生成することがわかりました。
ただし、このデータからモデルをトレーニングする前に、対処すべき別の問題があります。 モデルがユーザーの入力に応じて文法を修正できるようにするには(モバイルデバイスの重要な機能)、文が入力され始めた際の文頭を処理できる必要があります。
これにより、ユーザーが文の一部のみを入力した場合に文法の修正が可能になります。この機能は、ユーザーが文の最後のピリオドを省略し、入力が完了するとすぐに送信ボタンを押すことが多いメッセージングアプリで特に役立ちます。そのため、文法修正が完全な文が入力された後でのみ起動される場合、多くのエラーを見逃す可能性があります。
これは、与えられた文の接頭辞が文法的に正しいかどうかをどのように決定するかという問題を提起します。これを解決するために以下の経験側を使用しました。「与えられた文頭(prefix)を続けて文法的に正しい文を完成できる場合、それを文法的に正しいと見なします。そうでない場合は、正しくないと見なします。」
What the user has typed so far | Suggested grammar correction |
She puts a lot | |
She puts a lot of | |
She puts a lot of effort | |
She puts a lot of effort yesterday | Replace “puts” with “put in”. |
不完全な文に対するGECの例。有効な文頭では文章の修正は提案されません。
大規模なクラウドベースのモデルのトレーニングに適した2番目のデータセットを作成しましたが、今回は文頭(prefix)に焦点を当てています。クラウドベースのモデルのトレーニングデータセットから<元文章, 修正された文章>文のペアを取得し、それらを整列させて文頭をランダムに抽出することにより、前述の経験側を使用してデータセットを生成しました。
たとえば、<元文章, 修正された文章>文のペアが与えられた場合:
原文:She puts a lot of effort yesterday afternoon.
訂正文:She put in a lot of effort yesterday afternoon.
次の文頭ペアを抽出します。
元の文頭:She puts
修正された文頭:She put in
元の文:She puts a lot of effort yesterday
修正された文:She put in a lot of effort yesterday
次に、ニューラル言語モデル(SmartComposeで使用されているものと同様の設計思想)を使用して、それぞれの「元の文頭」を「完全な文」に自動補完させました。「完全な文の文法モデル」が「完全な文」内にエラーを発見しなかった場合、文法エラーを起こさずに元の文頭を文章として完成させる方法が少なくとも1つあることを意味するので、元の文頭は正しいと判断し、学習例として<元の文頭、元の文頭>を出力します。そうでない場合は、<元の文頭、修正された文頭>を出力します。
この学習データを使って、文頭を修正できる大規模なクラウドベースのモデルを学習し、そのモデルを使ってハード蒸留を行い、よりスマートフォンなどのオンデバイス上での使用に適した新しい<元の, 修正された>文頭のペアを生成しました。
最後に、これらの新しい文頭ペアと完全な文ペアを組み合わせることで、オンデバイスモデルの最終的な学習データを構築しました。このデータを用いて学習された車載モデルは、文頭だけでなく、文全体の修正も可能となります。
オンデバイスモデルの学習データは、クラウドベースのモデルから生成されます。
デバイス上での文法補正
Gboardは、ユーザーが3語以上入力すると、文が完成しているかどうかに関わらず、端末上の文法モデルにリクエストを送信します。質の高いユーザー体験を提供するために、ユーザーが対話する際には、文法の間違いに下線を引き、代替案を提供しています。しかし、モデルは修正された文章のみを出力するため、それらを置換提案に変換する必要があります。そのために、レーベンシュタイン距離(Levenshtein distance:元の文章を修正文に変換するために必要な編集回数)を最小にすることで、原文と修正文を一致させます。
修正された文章を元の文章に合わせることで編集操作を抜き出します。
最後に、挿入の編集操作と削除の編集操作を置換の編集操作に変換します。上の例では、「in」の挿入を提案したものを、「puts」を「put in」に置き換えることを提案する編集に変換します。また、同様に、「Effort on」を「Effort」に置き換えることを提案します。
まとめ
私達は、コンパクトなモデルアーキテクチャを設計し、ハード蒸留を行い学習時にクラウドベースの文法システムを活用することで、小型で高品質な文法修正モデルを構築した。このコンパクトなモデルにより、ユーザーはリモートサーバーにキー操作を送信することなく、自分のスマートフォン上でテキストを修正することができます。
謝辞
本論文は、以下の人々を含むチームメンバーの貢献に感謝します。
Abhanshu Sharma, Akshay Kannan, Bharath Mankalale, Chenxi Ni, Felix Stahlberg, Florian Hartmann, Jacek Jurewicz, Jayakumar Hoskere, Jenny Chin, Kohsuke Yatoh, Lukas Zilka, Martin Sundermeyer, Matt Sharifi, Max Gubin, Nick Pezzotti, Nithi Gupta, Olivia Graham, Qi Wang, Sam Jaffee, Sebastian Millius, Shankar Kumar, Sina Hassani, Vishal Kumawat, and Yuanbo Zhang, Yunpeng Li, Yuxin Dai.
また、Xu Liu, David Petrouのサポートにも感謝します。
3.GCE:Pixel6の文字入力時の文法エラー修正モデル(2/2)関連リンク
1)ai.googleblog.com
Grammar Correction as You Type, on Pixel 6