FUTO Swipe: 开源滑动输入模型与数据集
FUTO Swipe: 开源滑动输入模型与数据集
FUTO Swipe 是一系列开源模型和算法,旨在提供高准确度的滑动输入,而无需使用侵犯隐私的键盘应用。通过结合布局无关的编码器、特定语言的解码器以及用于上下文的小语言模型,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,这是一个处理推理、解码和字典约束束搜索(beam search)的 C++ 库。
许可与可用性
- Models: 在 FUTO Model License 下可用(需要向最终用户进行归属说明)。
- Inference Library: 在 GPL 许可证下发布。
- Dataset: 在 HuggingFace 上以 MIT 许可证提供。