2 puntos por GN⁺ 4 시간 전 | 2 comentarios | Compartir por WhatsApp
  • Un intento de implementar el método de escritura por deslizamiento en teclados móviles como un modelo y algoritmo abiertos
  • La escritura por deslizamiento de alta calidad existente estaba atada a apps de teclado invasivas para la privacidad o a bibliotecas privativas sin licencia, por lo que hacía falta una alternativa
  • Se integra en la app de Android totalmente offline FUTO Keyboard, y también es posible descargar el modelo y compilarlo por cuenta propia
  • Desde agosto de 2024 se recopilaron deslizamientos en inglés QWERTY y se reunieron más de 1 millón de casos; en marzo de 2025 se publicó en HuggingFace como un dataset con licencia MIT
  • La estructura se divide en un Encoder general, un ContextLM por idioma y un Decoder por idioma y distribución; en el conjunto de prueba registra una tasa de fallo top-4 de alrededor de 4% y una tasa de error menor a 1% excluyendo palabras OOV
  • El modelo completo tiene alrededor de 2.5 millones de parámetros, con unos 1.36 millones de parámetros activos; es un modelo pequeño que busca ejecutarse en milisegundos incluso en dispositivos modestos mediante la biblioteca de inferencia en C++ swipe-library

El problema que busca resolver un modelo abierto de escritura por deslizamiento

  • FUTO Swipe es una familia de modelos y algoritmos que convierte trayectorias de deslizamiento en predicción de palabras
  • Actualmente puede usarse en la app de teclado Android totalmente offline FUTO Keyboard
  • La demo web se ejecuta del lado del servidor para reducir el tamaño de la página, pero en el entorno real del producto funciona en el dispositivo, con menor latencia
  • FUTO desarrolló este sistema principalmente para FUTO Keyboard, pero también da la bienvenida a que la comunidad lo use más ampliamente
  • Como es el resultado de una inversión de largo plazo, solicita atribución visible para el usuario final, y la licencia del modelo sigue la FUTO Model License

Dataset y composición del modelo

  • En agosto de 2024 comenzó la recolección de datos de deslizamiento en inglés QWERTY en swipe.futo.org
    • Los usuarios visitaban voluntariamente la página web móvil y revisaban la guía y la información del dataset
    • Tras dar su consentimiento, deslizaban palabra por palabra oraciones tomadas principalmente de Wikipedia
    • Como resultado, se generaron más de 1 millón de deslizamientos, y algunos de baja calidad fueron filtrados
    • En marzo de 2025, el dataset de 1 millón de deslizamientos se publicó en HuggingFace con licencia MIT
  • La arquitectura del modelo se divide en tres modelos con funciones distintas
    • Encoder: un modelo general independiente de la distribución y del idioma, útil para la predicción general de escritura por deslizamiento, aunque no ofrece precisión de vanguardia
    • ContextLM: un modelo de lenguaje muy pequeño para un solo idioma, que mejora la calidad de predicción eliminando candidatos sin sentido con base en palabras previas. Para entrenarlo solo se necesitan datos de texto
    • Decoder: un modelo especializado por idioma y distribución que aprende las características de la distribución para ofrecer precisión de primer nivel; por ahora solo existe un Decoder de inglés QWERTY

Rendimiento y escala de ejecución

  • Las cifras de rendimiento dependen mucho del benchmark, por lo que los resultados reales de uso pueden variar
    • En la combinación de los 3 modelos con beam width 300, la tasa de fallo top-4 en el conjunto de prueba es de alrededor de 4%
    • Excluyendo palabras fuera de vocabulario, la tasa de error es menor a 1%
    • FUTO lo evalúa como un nivel comparable al de los teclados de grandes tecnológicas
  • Los modelos son pequeños, pensando en su ejecución en móviles
    • El Encoder tiene 635,140 parámetros
    • El Decoder añade 304,155 parámetros
    • El ContextLM tiene 1.5 millones de parámetros, de los cuales 1.1 millones son embeddings
    • Los parámetros activos son 1,364,271 y el total es 2,494,767
    • Puede ejecutarse en milisegundos incluso en dispositivos modestos, y el entrenamiento no requirió más de una GPU de workstation

Biblioteca de inferencia y licencia

  • La predicción del modelo por sí sola no basta: hace falta una búsqueda beam con restricciones de diccionario para puntuar candidatos de palabras y encontrar el más probable
    • Para ello se publicó la biblioteca en C++ swipe-library
    • swipe-library maneja toda la inferencia, decodificación y beam search, conectando la trayectoria de deslizamiento con la predicción de palabras
    • El modelo se ofrece bajo FUTO Model License, y la biblioteca de inferencia bajo GPL
  • FUTO está preparando un artículo que abordará con más detalle el entrenamiento y la arquitectura

2 comentarios

 
wedding 3 시간 전

Estoy usando el teclado con reconocimiento de voz de esta empresa y está bueno.

 
GN⁺ 4 시간 전
Comentarios en Hacker News
  • Me gusta la entrada por deslizamiento por la velocidad. Por lo general es más rápida que tocar tecla por tecla y es fácil de usar con una sola mano, pero sigue equivocándose con palabras parecidas y distingue mal entre letras simples y duplicadas
    Desde hace mucho quería una nueva distribución de teclado dedicada al deslizamiento. Así como Dvorak optimizó la ergonomía del tipeo en inglés, estaría bueno tener una distribución que reduzca la superposición de palabras y la ambigüedad al deslizar
    Ni siquiera tendría que ser necesariamente de 26 teclas; se podría juntar v/w/x/z en una sola tecla y hacer que las letras individuales se ingresen con pulsación larga. O al revés, quizá haría falta separar e y ee, o una tecla especial de “repetir letra anterior”
    Como la mayoría de los problemas vienen de que QWERTY no encaja nada bien con el deslizamiento, si apareciera una distribución optimizada capaz de subir la precisión en inglés no del 90~95% que se siente hoy sino hasta 99.9%, con gusto aprendería una distribución nueva

    • FUTO Swipe justamente soporta ClearFlow, una distribución de teclado optimizada para deslizamiento: https://clearflowkeyboard.github.io/
      https://github.com/futo-org/futo-keyboard-layouts/issues/163
    • Esa estimación de 90~95% es bastante acertada, y en el conjunto de pruebas también se midió algo por ese rango. Pronto debería salir una entrada de blog al respecto
      Por la estructura del modelo, fue posible generar unas 50 mil trayectorias sintéticas de deslizamiento para cada distribución y pasarlas por el modelo para optimizar directamente la precisión de reconocimiento, y así se probaron unas 800 mil distribuciones
      El mayor problema de QWERTY es que demasiadas palabras se deslizan con patrones de 3 letras seguidas en línea recta o con ángulos obtusos. Esos patrones son difíciles de reconocer y también hacen difícil que el usuario indique claramente con el gesto qué letras quería escribir
      El modelo neuronal de deslizamiento, en vez de empatar la forma del gesto como en un algoritmo de comparación de formas, busca en el patrón del gesto señales de que el usuario apuntó a letras concretas
      Si se cambia la forma del teclado, los gestos pueden formarse mejor y la señal de las letras puede volverse más clara. A diferencia de la comparación por forma, el modelo también usa información temporal, así que puede reaccionar al tiempo de permanencia, pero como detenerse corta el flujo, parece mejor minimizarlo en una distribución para deslizamiento
    • Puede que ahora ya no sea tan relevante por ser algo viejo, pero como ejemplo de una reinvención interesante de una interfaz gestual está https://www.the8pen.com/
      Parece que incluso tiene un sucesor moderno: https://play.google.com/store/apps/details?id=inc.flide.vi8
    • Yo también quería esto desde hace tiempo. Ahora mismo uso Dvorak en el modo dividido que aparece cuando pongo el teléfono en horizontal para tener buena velocidad de escritura
  • Usé este teclado de forma intermitente durante un tiempo, pero siempre volvía a gboard; desde esta actualización ya me cambié por completo. Está realmente bueno
    Todavía tiene el problema de poner mayúsculas aleatorias en palabras a mitad de una oración, y da la impresión de que no considera muy bien el contexto en las sugerencias, así que a menudo aparecen palabras que no tendrían sentido después de la palabra anterior
    Aún no llega al nivel de gboard, pero ya está lo bastante cerca como para seguir usándolo
    Si usas un equipo más potente, en el sitio puedes descargar modelos de voz más grandes y un diccionario más grande, y la diferencia se nota bastante
    Lo único que me sigue faltando en el fondo es que parecen oponerse ideológicamente a agregar búsqueda de GIF, y a veces sí extraño esa función: https://github.com/futo-org/android-keyboard/issues/293#issu...

    • Creo que estoy en una situación parecida. A veces la conversión de voz a texto de pronto empieza a soltar un montón de emojis; me pregunto si a alguien más le pasó
  • Buenísimo. Llevo 2 años usando el teclado de FUTO y hasta ahora era el mejor teclado gratis y amigable con la privacidad que había encontrado, pero el deslizamiento en este tipo de teclados era tan malo que, para alguien que lo usa mucho, era un sufrimiento
    Me alegra ver que la hora más o menos que pasé deslizando para aportar al dataset parece haber servido de algo. Lo probé ahora y se siente tan bueno como el teclado de Google
    Eso sí, es medio gracioso que siga deslizando whats en lugar de what's. Ojalá lo arreglen después

  • Para quien tenga curiosidad por la licencia: la librería está bajo GPLv3, lo cual está bien, pero el teclado de Android usa la Futo License, lo cual no me convence
    https://gitlab.futo.org/keyboard/swipe-library/-/blob/master...
    https://github.com/futo-org/android-keyboard/blob/master/LIC...

    • Para sumar complejidad de licencias, el modelo usa otra licencia aparte escrita por FUTO, aunque al menos no parece tan mala como la licencia del teclado: https://huggingface.co/futo-org/futo-swipe/blob/main/LICENSE...
    • Me da curiosidad qué parte de la Futo License se considera especialmente problemática
      ¿Será esta cláusula?: que no se puede eliminar ni ocultar, en las copias distribuidas, la función para pagarle al proveedor de la licencia
    • Más bien parece una licencia comercial con condiciones bastante livianas
  • Después de probar Nintype en iOS hace unos años, ya no pude usar otros teclados con deslizamiento. Ahora escribo con el teclado predeterminado y solo deslizo una o dos palabras de vez en cuando cuando no puedo usar ambas manos
    Deslizar con un dedo mientras sostienes el teléfono con las dos manos se siente poco natural y lento. Ojalá Apple hubiera comprado Nintype o lo hubiera sherlockeado para integrarlo en el teclado predeterminado

    • Yo también usé eso. Me preguntaba si FUTO tiene la función de ingresar una palabra con varios deslizamientos simultáneos o no simultáneos, pero al parecer no. Incluso ya había olvidado el nombre de la app; qué recuerdos
      La usaba desde antes de que Apple permitiera oficialmente teclados de terceros
    • Totalmente de acuerdo. El creador hizo un port de Nintype para Android lleno de bugs llamado keyboard 69, y lo usé durante años
      La experiencia de usuario era increíble, y todos los sistemas de deslizamiento que probé después se sienten realmente torpes en comparación. El deslizamiento con dos dedos es lo mejor en términos ergonómicos, pero por desgracia parece una innovación demasiado de nicho
  • Futo con el nuevo modelo de deslizamiento es el primer teclado Android que he probado que no se siente como un compromiso frente a GBoard
    Tiene dictado por voz integrado, buena autocorrección al teclear y buena autocorrección al deslizar

  • Edit: no está garantizado que sea gratis y abierto. La combinación de licencias es confusa. Aun así funciona bien, así que pienso usarlo en lugar de Gboard
    Esto es algo bastante grande. A mi parecer, es de lo más cercano al primer modelo de deslizamiento libre y abierto que de verdad se puede usar. Abre el camino para hacer posible la escritura por deslizamiento en plataformas aparte de iOS y Android, y reduce una parte que era un gran dolor para los nuevos entrantes de sistemas operativos

  • Justo borré SwiftKey porque Microsoft empezó a meter redirecciones con dark patterns hacia anuncios y Bing, así que llega en buen momento

    • Si con eso quieres decir que lo desinstalaste, yo hice lo mismo por la misma razón
      El panel para que usara la función de respaldo seguía reapareciendo, y fue tan molesto que al final me cambié a GBoard. No es lo mismo, pero me estoy acostumbrando
    • ¿Quieres decir que lo desinstalaste, verdad? Es una lástima que dentro de Microsoft el equipo de Bing tenga tanto poder. Arruinan productos por la gloria y el dinero de Bing
      Supongo que es por dinero, pero siento que no todo lo que hace Microsoft tiene que generar muchísimo dinero
  • Se ve bien, pero el gran problema del teclado Futo es que solo funciona con un idioma a la vez. En gboard puedo deslizar en los 3 idiomas que uso sin tener que estar cambiando constantemente. Ojalá Futo también lo hiciera así

  • El dictado por voz es muchísimo mejor que GBoard, que era lo que usaba hasta ahora. Maneja las mayúsculas al inicio de oración y la puntuación sin que yo tenga que preocuparme, acertó perfectamente varias oraciones sin edición posterior y además todo corre en un modelo local
    La desventaja es que no se actualiza en tiempo real, sino que convierte todo en lote después de que terminas de hablar. Parece que ya corrigieron que el gesto de deslizar para borrar y la barra espaciadora fueran demasiado sensibles, como cuando lo probé por última vez hace 1 o 2 años, y ahora también permite algo de personalización