Um desenvolvedor ajustou um modelo de linguagem de 360 milhões de parâmetros para atuar como um terminal. Não há nenhum shell ou sistema de arquivos por trás. Em vez disso, cada tecla pressionada é enviada ao modelo, que prevê como a tela vai mudar. Segundo o autor, ele consegue criar arquivos, executar vim e tmux, jogar snake e, geralmente, lembrar do que foi digitado alguns comandos antes. As maiores melhorias vieram de ensinar o modelo a corrigir os próprios erros e de decodificar as linhas da tela em paralelo. A demonstração roda no navegador e tem cerca de 208 MB. Os usuários podem digitar "pythoon" para ver que não se trata de um shell real.
O projeto foi inspirado no Genie 3, que sugeriu um futuro em que os aplicativos são aprendidos em vez de programados. O autor reduziu essa ideia de um mundo de jogo para um terminal. Um terminal é uma grade de caracteres, e não de pixels, e os dados de treinamento podem ser gerados executando shells reais. O modelo é baseado no Qwen2.5-Coder-0.5B e foi ajustado com sessões de terminal gravadas de programas reais executados no Docker.
Modelos de linguagem padrão acrescentam tokens um de cada vez, o que não se adequa a um terminal, onde uma única tecla pode produzir uma ação independente e a saída nem sempre vai para o final da tela. Em vez disso, o modelo prevê mudanças em uma grade de caracteres. Cada sessão começa com um instantâneo do tamanho da tela, do seu conteúdo e da posição do cursor. As teclas são enviadas como os bytes brutos que um terminal real receberia, e o modelo responde com as linhas a reescrever e a nova posição do cursor. O tempo também é uma entrada, de modo que um token WAIT permite que o snake continue se movendo sem que nenhuma tecla seja pressionada.
Para evitar regenerar todas as linhas quando a tela rola, o autor acrescentou uma operação COPY que move linhas da tela anterior, economizando milhares de tokens por tecla. A demonstração foi feita para um navegador de desktop com WebGPU e teclado físico, sendo recomendados o Chrome ou o Edge.
Fonte: Hacker News · Resumido por HeadlinesBriefing