2 ポイント 投稿者 GN⁺ 4 시간 전 | 2件のコメント | WhatsAppで共有
  • モバイルキーボードのスワイプ入力方式を、公開モデルとアルゴリズムで実装しようとする試み
  • 既存の高品質なスワイプ入力は、プライバシーを侵害しうるキーボードアプリやライセンス不明の非公開ライブラリに縛られており、代替が必要だった
  • 完全オフラインのAndroidアプリFUTO Keyboardに搭載され、モデルをダウンロードして自分でビルドすることも可能
  • 2024年8月からQWERTY英語スワイプを収集して100万件以上を確保し、2025年3月にMITライセンスのデータセットとしてHuggingFaceで公開
  • 構成は汎用Encoder、言語別ContextLM、言語・レイアウト別Decoderに分かれ、テストセットではtop-4失敗率約4%、OOV除外時の誤り率1%未満を記録
  • 全体モデルは約250万パラメータ規模、アクティブパラメータ約136万の小型モデルで、C++推論ライブラリswipe-libraryを通じて低スペック端末でもミリ秒単位の実行を目指す

公開スワイプ入力モデルで解こうとする課題

  • FUTO Swipeは、スワイプ経路を単語予測に変換するモデルとアルゴリズムの製品群
  • 現在、完全オフラインのAndroidキーボードアプリ**FUTO Keyboard** で利用できる
  • Webページのデモはページサイズを抑えるためサーバー側で実行されるが、実際の製品環境ではオンデバイスで動作するため遅延はさらに低い
  • FUTOはこのシステムを主にFUTO Keyboard向けに開発したが、より広いコミュニティでのモデル活用も歓迎している
  • 長期投資の成果物であるため、最終ユーザーに見える形でのクレジット表記を求めており、モデルライセンスはFUTO Model Licenseに従う

データセットとモデル構成

  • 2024年8月、swipe.futo.orgでQWERTY英語スワイプデータの収集を開始
    • ユーザーはモバイルWebページを自発的に訪問し、案内とデータセット情報を確認
    • 同意後、主にWikipedia由来の文を単語ごとにスワイプ
    • 結果として100万件以上のスワイプが作成され、一部の低品質なスワイプはフィルタリングされた
    • 2025年3月、100万スワイプのデータセットをMITライセンスで**HuggingFaceに公開**
  • モデルアーキテクチャは役割の異なる3つのモデルに分かれる
    • Encoder: レイアウトと言語に依存しない汎用モデルで、一般的なスワイプ入力予測に使われるが、最先端の精度を提供するものではない
    • ContextLM: 単一言語向けの非常に小さな言語モデルで、前の単語をもとに不自然な候補を除外して予測品質を高める。学習に必要なのはテキストデータのみ
    • Decoder: 言語とレイアウトに特化したモデルで、レイアウト特性を学習して最高水準の精度を出し、現在はQWERTY英語Decoderのみ存在する

性能と実行規模

  • 性能指標はベンチマークに大きく依存するため、実際の使用結果は異なる可能性がある
    • 3つのモデルとbeam width 300の組み合わせで、テストセットのtop-4失敗率は約4%
    • 辞書にない単語を除けば誤り率は1%未満
    • FUTOは大手テック企業のキーボードに匹敵する水準と評価している
  • モデルはモバイル実行を考慮した小規模設計
    • Encoderは635,140パラメータ
    • Decoderは追加で304,155パラメータ
    • ContextLMは150万パラメータで、このうち110万は埋め込み
    • アクティブパラメータは1,364,271、総パラメータは2,494,767
    • 低スペック端末でもミリ秒単位で実行可能で、学習にもワークステーションGPU 1台を超える計算資源は必要なかった

推論ライブラリとライセンス

  • モデル予測だけでは不十分で、単語候補をスコア化し最も可能性の高い候補を見つける辞書制約付きbeam searchが必要
    • そのためC++ライブラリのswipe-libraryを公開
    • swipe-libraryは推論全体、デコード、beam searchを処理し、スワイプ経路から単語予測までをつなぐ
    • モデルはFUTO Model License、推論ライブラリはGPLで提供される
  • FUTOは学習とアーキテクチャをさらに詳しく扱う論文を準備中

2件のコメント

 
wedding 3 시간 전

この会社の音声認識キーボードを使っていますが、良いです。

 
GN⁺ 4 시간 전
Hacker Newsのコメント
  • 速度の面でスワイプ入力が好き。タップよりたいてい速く、片手でも使いやすいが、似た単語を何度も誤入力しやすく、単文字と重複文字の区別も弱い。
    かなり前から、スワイプ専用の新しいキーボード配列を求めていた。Dvorakが英語タイピングの人間工学を最適化したように、スワイプ時の単語の重なりや曖昧さを減らす配列があるといい。
    必ずしも26キーである必要はなく、v/w/x/zを1つのキーにまとめて、単文字は長押しで入力させることもできる。逆に eee を分けたり、「前の文字を重複」させる特殊キーが必要かもしれない。
    問題の大半はQWERTYがスワイプにあまりにも向いていないことから来ているので、英語での精度を今の体感90〜95%ではなく**99.9%**まで引き上げられる最適配列が出るなら、新しい配列を学ぶ気は十分ある。

    • FUTO Swipeは、まさにそうしたスワイプ最適化キーボード配列であるClearFlowをサポートしている: https://clearflowkeyboard.github.io/
      https://github.com/futo-org/futo-keyboard-layouts/issues/163
    • 90〜95%という見積もりはかなり正確で、テストセットでもその程度に測定されている。関連するブログ記事も近いうちに出る予定。
      モデル構造上、各配列について約5万語の合成スワイプを作ってモデルに通し、認識精度を直接最適化できた。この方法で約80万の配列をテストした。
      QWERTYの最大の問題は、あまりに多くの単語が一直線、あるいは鈍角の3文字連続パターンとしてスワイプされること。こうしたパターンは認識しにくく、ユーザーがどの文字を意図したのかをジェスチャーで明確に示すのも難しい。
      ニューラルネット型のスワイプモデルは、アルゴリズム的な形状マッチングのようにジェスチャー形状を合わせるのではなく、ユーザーが特定の文字を狙ったという信号をジェスチャーパターンから見つける。
      キーボードの形を変えると、ジェスチャーがよりうまく形成されて文字の信号が明瞭になることがある。モデルは形状マッチングと違って時間情報も使うので滞留時間にも反応できるが、滞留は流れを断つため、スワイプ配列では最小限にするのがよいと思う。
    • 古いものなので今は関連性が低いかもしれないが、ジェスチャーインターフェースを見事に再発想した例として https://www.the8pen.com/ がある。
      現代的な後継もあるようだ: https://play.google.com/store/apps/details?id=inc.flide.vi8
    • 自分も前からこれを望んでいた。今は良い入力速度のために、スマホを横向きにしたときに出る分割モードでDvorakを使っている。
  • このキーボードをしばらく断続的に使ってきたが、いつもgboardに戻っていた。でも今回のアップデート以降は完全に乗り換えた。本当に良い。
    文の途中の単語をランダムに大文字化する問題もあるし、単語候補でも文脈をあまり考慮していないようで、直前の単語の後に来るはずがない単語がよく出る。
    まだgboardほどではないが、使い続けるに足るところまでかなり近づいた。
    より高性能な端末を使えば、サイトからより大きな音声モデルとより大きな辞書をダウンロードでき、体感差もかなりある。
    根本的に惜しいのは、GIF検索の追加に思想的に反対しているような点だが、ときどきあの機能が恋しくなる: https://github.com/futo-org/android-keyboard/issues/293#issu...

    • 似たような状況っぽい。音声テキスト変換がときどき突然絵文字を大量に吐き始めるんだけど、そういうことあった?
  • すばらしい。FUTOキーボードを2年間使っていて、これまで見つけた無料・プライバシー重視キーボードの中では最高だったが、こうしたキーボードのスワイプはあまりにもひどくて、スワイプを多用する身にはつらかった。
    データセットに貢献しようと思って1時間ほどスワイプしたのが実際に役立ったようでうれしい。今試してみると、Googleキーボードと同じくらい良くなった感じがする。
    ただ、what's ではなく whats にばかりスワイプされるのはちょっと笑える。いずれ直るといい。

  • ライセンスが気になる人のために言うと、ライブラリはGPLv3なので良いが、AndroidキーボードはFuto Licenseなのでいまひとつ。
    https://gitlab.futo.org/keyboard/swipe-library/-/blob/master...
    https://github.com/futo-org/android-keyboard/blob/master/LIC...

    • ライセンスの複雑さをさらに付け加えると、モデルはFUTOが別に作成した別のライセンスを使っているが、少なくともキーボードのライセンスほど悪くは見えない: https://huggingface.co/futo-org/futo-swipe/blob/main/LICENSE...
    • Futo Licenseで特に問題になる部分は何なのか気になる。
      もしかしてこの条項? 配布するコピーで、ライセンス提供者に支払う機能を削除したり隠したりしてはならない、という部分。
    • 単に条件がかなり緩い商用ライセンスに近い。
  • 数年前に iOS で Nintype を体験して以来、ほかのスワイプキーボードは使えなくなった。今は標準キーボードでタイピングしていて、両手が使えないときだけたまに1〜2語をスワイプする
    スマホを両手で持っているときに、片方の指だけでスワイプするのは不自然で、もっさり感じる。Apple が Nintype を買収するか、あるいは Sherlock して標準キーボードに統合してくれたらよかったのに

    • 自分もそれを使っていた。FUTO に複数の同時または非同時スワイプで1語を入力する機能があるのか気になっていたけど、たぶんないっぽい。アプリ名も忘れていたけど、本当に懐かしい
      Apple が正式にサードパーティ製キーボードを許可する前から使っていた
    • 完全に同意。作者が keyboard 69 という名前のバグだらけの Android 向け Nintype ポートを作っていて、それを何年も使っていた
      ユーザー体験は驚くほど素晴らしくて、その後に試したどのスワイプシステムも比べると本当にもっさり感じる。2本指スワイプは人間工学的に最高だけど、残念ながらニッチすぎる革新なんだと思う
  • 新しいスワイプモデルを入れた Futo は、自分が使った Android キーボードの中で初めて GBoard と比べて妥協していると感じないものだ
    音声入力が統合されていて、自動修正つきの通常入力も良く、自動修正つきのスワイプも優秀

  • 訂正: 無料・オープンであることが保証されているわけではない。ライセンス構成がややこしい。それでもよく動くので Gboard の代わりに使うつもり
    これはかなり大きい。自分が見る限り、初めて実用になる 無料のオープンなスワイプモデル にかなり近い。iOS と Android 以外のプラットフォームでもスワイプ入力を可能にする道を開き、新しい OS 参入者にとって大きな苦痛だった部分を減らしてくれる

  • ちょうど Microsoft が SwiftKey に広告と Bing 送りの ダークパターンなリダイレクト を入れ始めたので削除したところで、タイミングがいい

    • 削除したという意味なら、自分も同じ理由だった
      バックアップ機能を使えというパネルが何度も再表示されて、あまりにひどかったので結局 GBoard に移った。同じではないけど、慣れつつある
    • 削除したって意味だよね? Microsoft の中で Bing チーム の力が強すぎるのは残念。Bing の栄光と金のために製品を壊している
      たぶん金のためなんだろうけど、Microsoft のやることすべてが大金を生まなければならないわけではないと思う
  • 良さそうだけど、Futo キーボードの大きな問題は 一度に1言語 しか使えないこと。gboard なら自分が使う3言語をいちいち切り替えなくてもスワイプ入力できる。Futo もそうなってほしい

  • 音声ディクテーション は、これまで使っていた GBoard よりずっと良い。こちらが気にしなくても文頭の大文字化や句読点を処理してくれるし、複数の文を後編集なしで完璧に合わせてくれたうえ、すべてローカルモデルで動く
    欠点はリアルタイム更新ではなく、話し終わった後に一括変換される点。1〜2年前に最後に使ったときと比べて、バックスペースのスワイプやスペースバーが過敏すぎないよう修正されたようだし、いくつかカスタマイズもできるようになった