FUTO Swipe : un modèle ouvert de saisie par glissement
(swipe.futo.tech)- Une tentative d’implémenter la saisie par glissement sur clavier mobile sous la forme d’un modèle et d’algorithmes ouverts
- Les solutions existantes de haute qualité pour la saisie par glissement étaient soit liées à des applications clavier intrusives pour la vie privée, soit à des bibliothèques propriétaires sans licence, d’où le besoin d’une alternative
- Intégré à l’application Android entièrement hors ligne FUTO Keyboard, avec la possibilité de télécharger le modèle et de le compiler soi-même
- Depuis août 2024, plus d’un million d’exemples de glissement en anglais QWERTY ont été collectés, puis publiés en mars 2025 sur HuggingFace sous la forme d’un jeu de données sous licence MIT
- L’architecture se divise en un Encoder générique, un ContextLM spécifique à chaque langue et un Decoder spécifique à chaque langue et disposition ; sur l’ensemble de test, le taux d’échec top-4 est d’environ 4 %, et le taux d’erreur hors mots absents du vocabulaire est inférieur à 1 %
- L’ensemble du modèle compte environ 2,5 millions de paramètres, avec environ 1,36 million de paramètres actifs ; ce petit modèle vise une exécution en quelques millisecondes même sur des appareils modestes grâce à la bibliothèque d’inférence C++ swipe-library
Le problème que cherche à résoudre un modèle ouvert de saisie par glissement
- FUTO Swipe est une famille de modèles et d’algorithmes qui convertit un tracé de glissement en prédiction de mot
- Il est actuellement utilisable dans l’application de clavier Android entièrement hors ligne FUTO Keyboard
- La démo web s’exécute côté serveur pour réduire la taille de la page, mais dans le produit réel, le système fonctionne sur l’appareil, avec une latence plus faible
- FUTO a principalement développé ce système pour FUTO Keyboard, mais encourage aussi son utilisation par une communauté plus large
- Comme il s’agit du résultat d’un investissement de long terme, FUTO demande une attribution visible pour l’utilisateur final ; la licence du modèle suit la FUTO Model License
Jeu de données et composition du modèle
- En août 2024, la collecte de données de glissement en anglais QWERTY a commencé sur swipe.futo.org
- Les utilisateurs se rendaient volontairement sur la page web mobile pour consulter les explications et les informations sur le jeu de données
- Après consentement, ils réalisaient des glissements mot par mot sur des phrases provenant principalement de Wikipedia
- Au total, plus d’un million de glissements ont été produits, certains de faible qualité ayant été filtrés
- En mars 2025, le jeu de données d’un million de glissements a été publié sur HuggingFace sous licence MIT
- L’architecture du modèle est divisée en trois modèles aux rôles distincts
- Encoder : un modèle générique indépendant de la disposition et de la langue, utilisé pour la prédiction générale de la saisie par glissement, sans toutefois viser la meilleure précision possible
- ContextLM : un très petit modèle de langue pour une seule langue, qui améliore la qualité des prédictions en éliminant les candidats peu plausibles à partir des mots précédents. Son entraînement ne nécessite que des données textuelles
- Decoder : un modèle spécialisé par langue et par disposition, qui apprend les caractéristiques de la disposition pour atteindre une précision de haut niveau ; à ce jour, seul un Decoder anglais QWERTY est disponible
Performances et taille d’exécution
- Les chiffres de performance dépendent fortement du benchmark ; les résultats réels peuvent donc varier
- Avec la combinaison des 3 modèles et une largeur de faisceau de 300, le taux d’échec top-4 est d’environ 4 % sur l’ensemble de test
- En excluant les mots absents du dictionnaire, le taux d’erreur est inférieur à 1 %
- FUTO estime que le niveau atteint est comparable à celui des claviers des grands groupes technologiques
- Le modèle reste de petite taille afin de convenir à une exécution mobile
- L’Encoder compte 635 140 paramètres
- Le Decoder ajoute 304 155 paramètres
- Le ContextLM compte 1,5 million de paramètres, dont 1,1 million pour les embeddings
- Les paramètres actifs sont au nombre de 1 364 271, pour un total de 2 494 767 paramètres
- L’exécution est possible en quelques millisecondes même sur des appareils modestes, et l’entraînement n’a pas nécessité plus d’un GPU de station de travail
Bibliothèque d’inférence et licence
- Les prédictions du modèle ne suffisent pas à elles seules : il faut aussi une recherche par faisceau contrainte par dictionnaire pour scorer les candidats et trouver le mot le plus probable
- Pour cela, FUTO a publié la bibliothèque C++ swipe-library
- swipe-library gère l’ensemble de l’inférence, du décodage et de la beam search pour relier le tracé de glissement à la prédiction de mot
- Le modèle est proposé sous FUTO Model License, tandis que la bibliothèque d’inférence est publiée sous GPL
- FUTO prépare un article détaillant plus en profondeur l’entraînement et l’architecture
2 commentaires
J’utilise le clavier à reconnaissance vocale de cette entreprise, et il est bien.
Commentaires sur Hacker News
J’aime la saisie par glissement pour sa rapidité. C’est généralement plus rapide que le tapotement et plus facile à utiliser d’une seule main, mais elle se trompe souvent sur des mots similaires et distingue mal les lettres simples des lettres doublées
Depuis longtemps, je voudrais une nouvelle disposition de clavier dédiée au swipe. De la même façon que Dvorak a optimisé l’ergonomie de la frappe en anglais, ce serait bien d’avoir une disposition qui réduise les chevauchements de mots et les ambiguïtés lors du glissement
Elle n’a pas forcément besoin de 26 touches ; on pourrait regrouper v/w/x/z sur une seule touche et saisir les lettres seules par appui long. À l’inverse, il pourrait être nécessaire de séparer
eetee, ou d’avoir une touche spéciale « doubler la lettre précédente »La plupart des problèmes viennent du fait que le QWERTY est très mal adapté au swipe ; donc si une disposition optimale permettait de faire passer la précision en anglais de l’ordre de 90–95 % aujourd’hui à 99,9 %, je serais tout à fait prêt à apprendre une nouvelle disposition
https://github.com/futo-org/futo-keyboard-layouts/issues/163
Du fait de l’architecture du modèle, il a été possible de générer environ 50 000 swipes synthétiques pour chaque disposition et de les faire passer dans le modèle afin d’optimiser directement la précision de reconnaissance ; de cette façon, environ 800 000 dispositions ont été testées
Le plus gros problème du QWERTY est qu’un trop grand nombre de mots produisent, en swipe, des séquences de 3 lettres alignées ou à angle obtus. Ces motifs sont difficiles à reconnaître, et il est aussi difficile pour l’utilisateur d’indiquer clairement, par le geste, quelles lettres il visait
Le modèle de swipe par réseau neuronal ne cherche pas à faire correspondre la forme du geste comme un algorithme de reconnaissance de formes ; il cherche dans le motif du geste des signaux indiquant que l’utilisateur visait certaines lettres
En modifiant la forme du clavier, on peut mieux structurer les gestes et rendre ces signaux de lettres plus nets. Contrairement à un simple appariement de forme, le modèle utilise aussi l’information temporelle et peut donc réagir au temps de pause, mais les pauses cassent la fluidité ; à mon avis, il vaut mieux les minimiser dans une disposition pensée pour le swipe
Il semble même y avoir un successeur moderne : https://play.google.com/store/apps/details?id=inc.flide.vi8
J’utilisais ce clavier par intermittence depuis un moment, mais je revenais toujours à gboard ; depuis cette mise à jour, j’ai complètement basculé. C’est vraiment bien
Il y a encore un problème où des mots au milieu d’une phrase sont mis en majuscule aléatoirement, et les suggestions semblent mal prendre en compte le contexte, donc des mots qui ne devraient pas suivre le mot précédent apparaissent souvent
Ce n’est pas encore au niveau de gboard, mais c’est devenu suffisamment proche pour que je continue à l’utiliser
Avec un appareil plus puissant, on peut télécharger sur le site un modèle vocal plus gros et un dictionnaire plus grand, et la différence se sent vraiment
Mon regret de fond, c’est qu’ils semblent être idéologiquement opposés à l’ajout de la recherche de GIF, et cette fonction me manque parfois : https://github.com/futo-org/android-keyboard/issues/293#issu...
Excellent. J’utilise le clavier FUTO depuis 2 ans, et c’était déjà le meilleur clavier gratuit et respectueux de la vie privée que j’aie trouvé jusque-là, mais le swipe sur ce genre de clavier était tellement mauvais que c’était pénible quand on l’utilise beaucoup
Je suis content de voir que l’heure environ de swipes que j’ai faite pour contribuer au dataset a apparemment vraiment servi. En l’essayant maintenant, j’ai l’impression que c’est devenu aussi bon que le clavier de Google
En revanche, le fait qu’il swipe sans arrêt
whatsau lieu dewhat'sest assez drôle. J’espère que ce sera corrigé plus tardPour ceux qui se posent la question de la licence, la bibliothèque est sous GPLv3, ce qui est bien, mais le clavier Android est sous Futo License, ce qui l’est beaucoup moins
https://gitlab.futo.org/keyboard/swipe-library/-/blob/master...
https://github.com/futo-org/android-keyboard/blob/master/LIC...
Est-ce cette clause : on ne peut pas supprimer ou masquer, dans les copies distribuées, les fonctionnalités permettant de payer le donneur de licence
Depuis que j’ai découvert Nintype sur iOS il y a quelques années, je n’arrive plus à utiliser d’autres claviers swipe. Maintenant, je tape avec le clavier par défaut, et je ne swipe qu’occasionnellement un mot ou deux quand je ne peux pas utiliser mes deux mains
Quand on tient le téléphone à deux mains, swiper avec un seul doigt paraît peu naturel et lent. J’aurais aimé qu’Apple rachète Nintype ou le « sherlocke » pour l’intégrer au clavier par défaut
Je l’utilisais déjà avant qu’Apple n’autorise officiellement les claviers tiers
keyboard 69, et je l’ai utilisé pendant des annéesL’expérience utilisateur était incroyable, et tous les systèmes de swipe que j’ai essayés depuis paraissent vraiment lourds en comparaison. Le swipe à deux doigts est ce qu’il y a de mieux sur le plan ergonomique, mais c’est malheureusement une innovation trop de niche, semble-t-il
Futo avec son nouveau modèle de swipe est le premier clavier Android que j’ai essayé qui ne donne pas l’impression de faire un compromis par rapport à GBoard
Il a la saisie vocale intégrée, une bonne autocorrection à la frappe et une bonne autocorrection en swipe
Édition : rien ne garantit que ce soit gratuit et open source. La combinaison des licences est déroutante. Cela dit, ça fonctionne bien, donc je compte l’utiliser à la place de Gboard
C’est énorme. À mes yeux, c’est ce qui se rapproche le plus du premier modèle de swipe libre et open source réellement utilisable. Ça ouvre la voie au swipe typing sur d’autres plateformes qu’iOS et Android, et ça réduit un point très douloureux pour les nouveaux entrants sur le marché des OS
J’ai justement supprimé SwiftKey parce que Microsoft a commencé à y ajouter des redirections dark pattern vers la pub et vers Bing, donc le timing est bon
Le panneau me demandant d’utiliser la fonction de sauvegarde revenait sans arrêt, c’était tellement abusé que j’ai fini par passer à GBoard. Ce n’est pas pareil, mais je m’y habitue
C’est sûrement une question d’argent, mais j’ai l’impression que tout ce que fait Microsoft n’a pas forcément besoin de rapporter énormément
Ça a l’air bien, mais le gros problème du clavier Futo, c’est qu’il ne gère qu’une seule langue à la fois. Sur gboard, je peux swiper dans les 3 langues que j’utilise sans devoir changer en permanence. J’aimerais que Futo fasse pareil
La dictée vocale est de loin meilleure que celle de GBoard que j’utilisais jusqu’ici. Elle gère les majuscules en début de phrase et la ponctuation sans que j’aie à m’en soucier, elle a retranscrit parfaitement plusieurs phrases sans aucune retouche, et tout tourne sur un modèle local
Le point faible, c’est que ce n’est pas mis à jour en temps réel : tout est converti d’un coup une fois qu’on a fini de parler. Il semble aussi qu’ils aient corrigé l’hypersensibilité du swipe retour arrière et de la barre d’espace que j’avais constatée la dernière fois que je l’avais essayé il y a 1 ou 2 ans, et il y a maintenant un peu de personnalisation possible