FUTO Swipe: 開源滑動輸入模型與數據集
FUTO Swipe: 開源滑動輸入模型與數據集
FUTO Swipe 是一系列開源模型與演算法,旨在提供高準確度的滑動輸入,且無需使用侵犯隱私的鍵盤應用程式。透過結合佈局無關的編碼器 (layout-agnostic encoder)、特定語言的解碼器 (language-specific decoder) 以及用於上下文的輕量級語言模型,FUTO Swipe 在其測試集上實現了約 4% 的 top-4 失敗率,性能與主要的專有鍵盤解決方案相當。
模型架構與組件
FUTO Swipe 使用三層模型架構來平衡通用適用性與高精度:
- Encoder Model: 一個通用的、佈局無關且語言無關的模型,用於一般的滑動輸入預測。雖然功能多樣,但它無法提供最高水平的準確度。
- Decoder Model: 一個特定語言且特定佈局的模型,考慮了特定鍵盤佈局的特性。目前提供 QWERTY 英文解碼器,可提供最高的準確度。
- ContextLM: 一個針對單一語言的文本數據進行訓練的輕量級語言模型。它會根據句子中前方的單詞來過濾掉不合理的單詞預測,以提高整體品質。
當使用所有三個模型並將 beam width 設定為 300 時,系統的錯誤率會低於 1%(不包括詞彙表外的情況)。
數據集與訓練
為了訓練與評估這些模型,FUTO 收集了超過 100 萬條 QWERTY 英文滑動路徑數據。這些數據是在 2024 年 8 月透過 swipe.futo.org 網域上的自願用戶貢獻所收集的,參與者逐字滑動 Wikipedia 的句子。
在 2025 年 3 月,FUTO 在 HuggingFace 上以 MIT 授權條款發布了這個 100 萬條滑動數據集,為滑動輸入系統的開發提供了公共資源。
性能與資源佔用
FUTO Swipe 旨在於裝置端執行,具有極低的延遲與低硬體需求:
- 參數數量: 系統包含 1,364,271 個活動參數與 2,494,767 個總參數。ContextLM 是最大的組件,擁有 150 萬個參數(包含 110 萬個嵌入參數)。
- 硬體效率: 模型足夠小,可以在低階裝置上以毫秒級的速度運行。訓練過程非常高效,僅需單個工作站 GPU 即可完成。
實作與整合
為了將原始的滑動路徑轉換為單詞預測,FUTO 提供了 swipe-library,這是一個處理推理、解碼與字典約束束搜索 (dictionary-constrained beam search) 的 C++ 函式庫。
授權與可用性
- Models: 根據 FUTO Model License 提供(需要向終端用戶進行歸屬說明)。
- Inference Library: 以 GPL 授權條款發布。
- Dataset: 在 HuggingFace 上以 MIT 授權條款提供。