2 pontos por GN⁺ 4 시간 전 | 2 comentários | Compartilhar no WhatsApp
  • Uma tentativa de implementar o método de digitação por deslizamento em teclados móveis como modelo aberto + algoritmo
  • As soluções existentes de alta qualidade para digitação por deslizamento estavam presas a apps de teclado invasivos à privacidade ou a bibliotecas proprietárias sem licença, o que criou a necessidade de uma alternativa
  • Será integrado ao app Android totalmente offline FUTO Keyboard, e também é possível baixar o modelo e fazer o build por conta própria
  • Desde agosto de 2024, foram coletadas entradas por deslizamento em inglês QWERTY, acumulando mais de 1 milhão de registros, e em março de 2025 o conjunto de dados foi publicado no HuggingFace sob licença MIT
  • A estrutura é dividida em Encoder genérico, ContextLM por idioma e Decoder por idioma e layout; no conjunto de teste, registrou taxa de falha top-4 de cerca de 4% e taxa de erro abaixo de 1% ao excluir OOV
  • O modelo completo tem cerca de 2,5 milhões de parâmetros, com cerca de 1,36 milhão de parâmetros ativos, e busca rodar em milissegundos mesmo em dispositivos modestos por meio da biblioteca de inferência em C++ swipe-library

O problema que ele quer resolver com um modelo aberto de entrada por deslizamento

  • FUTO Swipe é uma família de modelos e algoritmos que converte trajetórias de deslizamento em previsão de palavras
  • Atualmente, pode ser usado no app de teclado Android totalmente offline FUTO Keyboard
  • A demo na página web roda no servidor para reduzir o tamanho da página, mas no ambiente real do produto ele funciona no próprio dispositivo, com latência ainda menor
  • A FUTO desenvolveu esse sistema principalmente para o FUTO Keyboard, mas também incentiva o uso dos modelos pela comunidade em geral
  • Como é resultado de um investimento de longo prazo, a FUTO pede atribuição visível ao usuário final, e a licença do modelo segue a FUTO Model License

Conjunto de dados e composição do modelo

  • Em agosto de 2024, a FUTO começou a coletar dados de deslizamento em inglês QWERTY em swipe.futo.org
    • Os usuários visitavam voluntariamente a página móvel e conferiam as orientações e informações sobre o dataset
    • Após consentir, deslizavam palavra por palavra em frases vindas principalmente da Wikipedia
    • Como resultado, foram geradas mais de 1 milhão de entradas por deslizamento, com parte das de baixa qualidade sendo filtrada
    • Em março de 2025, o dataset com 1 milhão de deslizamentos foi publicado no HuggingFace sob licença MIT
  • A arquitetura do modelo é dividida em três modelos com funções diferentes
    • Encoder: um modelo genérico independente de layout e idioma, usado para previsão geral de entrada por deslizamento, embora não entregue a melhor precisão disponível
    • ContextLM: um modelo de linguagem muito pequeno para um único idioma, que melhora a qualidade das previsões ao remover candidatos sem sentido com base nas palavras anteriores. Para treinamento, precisa apenas de dados de texto
    • Decoder: modelo especializado por idioma e layout, que aprende as características do layout para entregar precisão de alto nível; no momento, existe apenas o Decoder de inglês QWERTY

Desempenho e escala de execução

  • Os números de desempenho dependem bastante do benchmark, então os resultados no uso real podem variar
    • Com a combinação dos 3 modelos e beam width 300, a taxa de falha top-4 no conjunto de teste é de cerca de 4%
    • Excluindo palavras fora do vocabulário, a taxa de erro fica abaixo de 1%
    • A FUTO avalia o resultado como comparável ao nível dos teclados das grandes empresas de tecnologia
  • O modelo tem porte pequeno, pensando na execução em dispositivos móveis
    • O Encoder tem 635.140 parâmetros
    • O Decoder adiciona 304.155 parâmetros
    • O ContextLM tem 1,5 milhão de parâmetros, dos quais 1,1 milhão são embeddings
    • Os parâmetros ativos são 1.364.271, e o total é 2.494.767
    • Pode rodar em milissegundos até em dispositivos modestos, e o treinamento não exigiu mais do que uma única GPU de workstation

Biblioteca de inferência e licença

  • Só a previsão do modelo não basta; é necessário um beam search com restrição de dicionário para pontuar candidatos de palavras e encontrar a opção mais provável
    • Para isso, a FUTO publicou a biblioteca C++ swipe-library
    • A swipe-library cuida de toda a inferência, decodificação e beam search, ligando a trajetória de deslizamento à previsão de palavras
    • O modelo é distribuído sob a FUTO Model License, e a biblioteca sob GPL
  • A FUTO está preparando um artigo para tratar com mais detalhes do treinamento e da arquitetura

2 comentários

 
wedding 3 시간 전

Uso o teclado com reconhecimento de voz dessa empresa e ele é bom.

 
GN⁺ 4 시간 전
Comentários do Hacker News
  • Gosto de digitação por deslizamento por causa da velocidade. Em geral é mais rápida que tocar tecla por tecla e é fácil de usar com uma mão, mas continua errando palavras parecidas e também distingue mal letras simples e duplicadas
    Há muito tempo eu queria um novo layout de teclado feito especificamente para swipe. Assim como o Dvorak otimizou a ergonomia da digitação em inglês, seria ótimo ter um layout que reduzisse sobreposição e ambiguidade entre palavras ao deslizar
    Nem precisaria ter exatamente 26 teclas; daria até para juntar v/w/x/z em uma só tecla e fazer letras únicas entrarem com pressionamento longo. Por outro lado, talvez fosse necessário separar e e ee, ou ter uma tecla especial de “repetir letra anterior”
    A maior parte dos problemas vem do fato de que o QWERTY combina muito mal com swipe, então eu toparia aprender um novo layout se surgisse um layout otimizado que elevasse a precisão no inglês dos atuais 90–95% percebidos para 99,9%

    • O FUTO Swipe oferece suporte justamente a esse tipo de layout de teclado otimizado para swipe, o ClearFlow: https://clearflowkeyboard.github.io/
      https://github.com/futo-org/futo-keyboard-layouts/issues/163
    • Essa estimativa de 90–95% é bem precisa, e foi mais ou menos isso que apareceu também no conjunto de testes. Em breve deve sair um post no blog sobre isso
      Pela estrutura do modelo, foi possível gerar cerca de 50 mil swipes sintéticos para cada layout e passá-los pelo modelo para otimizar diretamente a precisão de reconhecimento, e assim foram testados cerca de 800 mil layouts
      O maior problema do QWERTY é que palavras demais acabam virando padrões de três letras em linha reta ou em ângulo obtuso ao deslizar. Esses padrões são difíceis tanto de reconhecer quanto de usar para o usuário indicar claramente, pelo gesto, quais letras pretendia
      O modelo de swipe com rede neural, em vez de fazer correspondência de formato de gesto como em algoritmos clássicos de shape matching, procura nos padrões do gesto sinais de que o usuário estava mirando letras específicas
      Ao mudar a forma do teclado, os gestos podem se formar melhor e os sinais das letras ficam mais nítidos. Diferente de shape matching, o modelo também usa informação temporal, então consegue reagir ao tempo de permanência, mas como parar numa tecla quebra o fluxo, acho melhor minimizar isso em um layout para swipe
    • É algo antigo e talvez hoje seja menos relevante, mas https://www.the8pen.com/ é um exemplo de uma reimaginação bem legal de uma interface gestual
      Parece haver até um sucessor moderno: https://play.google.com/store/apps/details?id=inc.flide.vi8
    • Eu também queria isso há algum tempo. Hoje uso Dvorak no modo dividido que aparece quando viro o celular na horizontal para conseguir uma boa velocidade de digitação
  • Usei esse teclado de forma intermitente por um tempo, mas sempre acabava voltando para o gboard; depois desta atualização, migrei de vez. Está muito bom
    Ainda tem um problema de capitalizar aleatoriamente palavras no meio da frase, e parece não considerar muito bem o contexto nas sugestões, então muitas vezes aparecem palavras que claramente não viriam depois da palavra anterior
    Ainda não chegou no nível do gboard, mas ficou perto o suficiente para eu continuar usando
    Se você usa um aparelho mais potente, dá para baixar no site um modelo de voz maior e um dicionário maior, e a diferença na prática é bem perceptível
    O que me incomoda no fundo é que eles parecem ser ideologicamente contra adicionar busca de GIF, mas às vezes sinto falta desse recurso: https://github.com/futo-org/android-keyboard/issues/293#issu...

    • Parece ser o mesmo caso aqui. O speech-to-text às vezes de repente começa a despejar emojis sem parar; queria saber se isso já aconteceu com mais alguém
  • Muito legal. Uso o teclado da FUTO há 2 anos e, entre os teclados gratuitos e favoráveis à privacidade que encontrei até agora, ele era o melhor, mas o swipe desses teclados era tão ruim que, para quem usa muito swipe, era sofrido
    Fico feliz que a uma hora mais ou menos de swipes que fiz para contribuir com o conjunto de dados aparentemente tenha ajudado de verdade. Acabei de testar aqui e a sensação é que ficou tão bom quanto o teclado do Google
    Só é engraçado que ele continue fazendo swipe de what's como whats. Espero que corrijam isso depois

  • Para quem está curioso sobre a licença: a biblioteca é GPLv3, o que é ótimo, mas o teclado Android está sob a Futo License, o que é bem ruim
    https://gitlab.futo.org/keyboard/swipe-library/-/blob/master...
    https://github.com/futo-org/android-keyboard/blob/master/LIC...

    • Para aumentar a complexidade das licenças, o modelo usa outra licença separada escrita pela própria FUTO, mas pelo menos ela não parece tão ruim quanto a licença do teclado: https://huggingface.co/futo-org/futo-swipe/blob/main/LICENSE...
    • Queria entender o que exatamente é especialmente problemático na Futo License
      É talvez esta cláusula: a parte que diz que você não pode remover nem ocultar, das cópias distribuídas, a funcionalidade de pagar ao provedor da licença
    • Na prática, parece mais uma licença comercial com condições bem leves
  • Depois de experimentar o Nintype no iOS há alguns anos, não consigo mais usar outros teclados com swipe. Hoje em dia digito no teclado padrão e só faço swipe em uma ou duas palavras de vez em quando, quando não posso usar as duas mãos
    Fazer swipe com um dedo enquanto seguro o celular com as duas mãos parece algo pouco natural e lento. Queria que a Apple tivesse comprado o Nintype ou feito um sherlock e integrado isso ao teclado padrão

    • Eu também usava. Fiquei me perguntando se o FUTO tem um recurso de digitar uma palavra com vários swipes simultâneos ou assíncronos, mas pelo visto não tem. Eu até tinha esquecido o nome do app, bateu uma nostalgia forte
      Eu já usava antes mesmo de a Apple permitir oficialmente teclados de terceiros
    • Concordo totalmente. O criador fez um porte bugado do Nintype para Android chamado keyboard 69, e eu usei aquilo por anos
      A experiência de uso era incrível, e todo sistema de swipe que tentei depois parece realmente lerdo em comparação. O swipe com dois dedos é o melhor em termos de ergonomia, mas infelizmente parece ser uma inovação nichada demais
  • O Futo com o novo modelo de swipe é o primeiro teclado Android que usei que não parece um compromisso em relação ao GBoard
    Tem entrada por voz integrada, boa autocorreção ao digitar e boa autocorreção no swipe

  • Correção: não é garantido que seja gratuito e aberto. A composição das licenças é confusa. Mesmo assim, funciona bem, então pretendo usar no lugar do Gboard
    Isso é algo enorme. Para mim, é o mais próximo do primeiro modelo de swipe livre e aberto utilizável. Abre caminho para permitir digitação por swipe em plataformas além de iOS e Android e reduz uma dor enorme para novos entrantes em sistemas operacionais

  • Bem na hora, porque a Microsoft começou a colocar redirecionamentos com dark patterns para anúncios e para o Bing no SwiftKey, então apaguei

    • Se você quis dizer que apagou, eu fiz o mesmo pelo mesmo motivo
      O painel mandando usar o recurso de backup continuava reaparecendo, e ficou tão irritante que acabei migrando para o GBoard. Não é a mesma coisa, mas estou me acostumando
    • Você quis dizer apagou, né? É triste como o time do Bing parece ter poder demais dentro da Microsoft. Eles estragam produtos pela glória e pelo dinheiro do Bing
      Talvez seja por dinheiro, mas tenho a sensação de que nem tudo que a Microsoft faz precisa render rios de dinheiro
  • Parece bom, mas o grande problema do teclado Futo é que ele só funciona com um idioma por vez. No gboard eu consigo fazer swipe nos 3 idiomas que uso sem ficar trocando toda hora. Queria que o Futo fosse assim também

  • O ditado por voz é muito melhor do que o GBoard que eu usava até agora. Ele cuida de maiúsculas no começo das frases e da pontuação sem que eu precise me preocupar, acertou perfeitamente várias frases sem pós-edição, e tudo roda em modelo local
    A desvantagem é que não atualiza em tempo real, mas converte tudo de uma vez depois que você termina de falar. Também parece que corrigiram a sensibilidade excessiva do swipe de backspace e da barra de espaço, como era da última vez que testei 1 ou 2 anos atrás, e agora dá para fazer alguma customização também