Développement21 août 2026· via DEV Community

Prévision du mot suivant pour un clavier : modèle 31 % plus petit, 99 % précis

Prévision du mot suivant pour un clavier : modèle 31 % plus petit, 99 % précis

Image : DEV Community

Un clavier Android open source pour programmeurs vient de déployer un moteur de prédiction des mots suivants occupant seulement 22 Mo, tout en maintenant un accord top-1 de 99,2 % avec son prédécesseur plus volumineux. Cette prouesse résulte de la combinaison d’un pipeline en flux continu, d’un lissage Kneser-Ney et d’une limite de vocabulaire à 64 000 mots.

Passage de 583 Mo à 22 Mo

Le modèle trigramme du clavier a été entraîné sur 4,27 millions de lignes de blogs, d’articles d’actualité et de messages Twitter. Les premières tentatives de construction du modèle sur AWS ont saturé toute la mémoire disponible et ont été interrompues après plusieurs heures ; la solution a consisté en un pipeline SQLite en flux continu qui fusionne les décomptes sur disque plutôt qu’en RAM, réduisant la durée de construction de plusieurs heures à 11 minutes sur une instance spot t3.xlarge.

Lissage et élagage du modèle

Trois variantes d’algorithmes ont été comparées. Le lissage Kneser-Ney a montré des performances médiocres pour les mots génériques comme « Francisco », fréquents mais peu variés contextuellement, ce qui le rend adapté aux prédictions initiales mais difficile à ajuster sous contraintes de taille. Le repli Katz avec l’escompte de Good-Turing s’est révélé plus stable lors d’un élagage agressif. La variante WDP de SwiftKey a ensuite éliminé les candidats n’apportant pas de valeur prédictive supplémentaire par rapport à un modèle bigramme, aboutissant à un fichier 31 % plus petit avec un accord top-1 de 99,2 % — c’est donc WDP qui a été retenu.

Chiffres du vocabulaire

Le vocabulaire brut du modèle, composé de 427 651 mots, suit la loi de Zipf : 85 % des mots apparaissent moins de 15 fois dans 85 millions de jetons. Des tests avec des limites de vocabulaire à 16 000, 32 000, 64 000 et 128 000 mots ont montré qu’un plafond à 64 000 couvre déjà 99,3 % des cibles réelles de mots suivants, raison pour laquelle l’équipe a opté pour cette valeur.

L’empreinte finale

L’intégralité des données — vocabulaire, trie de caractères, listes de suivi des n-grammes et phrases — est désormais regroupée dans un unique fichier .cklm de 22 Mo, chargé via un mappage en mémoire au démarrage. L’APK est passé de 302 Mo à 94 Mo, et trois fichiers JSON distincts ont été supprimés.

L’importance de cette avancée

Pour les applications mobiles, la taille d’un modèle influence directement le temps de démarrage, l’utilisation mémoire et l’autonomie. En réduisant le prédicteur de mots suivants à 22 Mo sans perte significative de précision, ce projet démontre comment des choix avisés de lissage, des pipelines en flux continu et un plafonnement du vocabulaire permettent d’intégrer des fonctionnalités linguistiques sophistiquées sur des appareils bas de gamme. Il offre également aux équipes une feuille de route reproductible pour concilier sophistication linguistique et contraintes matérielles.


Source : DEV Community. Synthèse éditoriale assistée par IA — TechnoExpress.

Lire la source originale sur DEV Community →

← Retour à l'accueil