Repolode
chenglou

chenglou/handwired

Projeto de pesquisa que compila o fluxo de controle de JavaScript comum em uma rede diferenciável de multiplicações de matrizes, com pesos definidos manualmente.

Estrelas
1,773
Forks
146
Issues abertas
9
Último commit
há 3 dias

O que é?

Handwired converte programas comuns em JavaScript que contêm condicionais if-else, loops e estado em uma rede neural construída apenas com multiplicação de matrizes e ReLU sobre números de ponto flutuante. As condicionais são reescritas como operações aritméticas; por exemplo, calculando os dois ramos e selecionando um deles com um indicador derivado de ReLU, de modo que a rede resultante reproduza exatamente a saída do programa original.

Como os pesos são definidos manualmente, em vez de aprendidos, não é necessário treinar a rede, e o programa inteiro continua diferenciável. A computação combinada pode ser executada em JavaScript puro ou no WebGPU, permitindo aplicar técnicas de otimização de GPU já existentes a essas operações primitivas mínimas.

O projeto explora usos como liberar os pesos para treinamento, conectar um programa congelado a uma rede neural genérica para treinamento de ponta a ponta e executar código JavaScript no estilo de thread única com paralelismo no nível da GPU. As demos incluem uma busca em JSON por 100 mil documentos. O repositório está configurado para usar Bun, e as demos também estão disponíveis online.

Recursos principais

  • 01Converte condicionais if-else, loops e estado em multiplicação de matrizes e ReLU
  • 02Dispensa treinamento, pois os pesos são definidos manualmente
  • 03Mantém o programa inteiro diferenciável
  • 04Executa em JavaScript puro ou no WebGPU
  • 05Inclui demos interativas e um exemplo de busca em JSON por 100 mil documentos

Casos de uso

  • Estudar como programas podem ser representados como redes neurais
  • Experimentar o treinamento de lógica de programas congelada dentro de uma rede neural
  • Explorar a execução de código JavaScript comum com paralelismo de GPU

Início rápido

  1. 1

    Clone o repositório

    git clone
  2. 2

    Instale as dependências

    bun install
  3. 3

    Execute as demonstrações localmente

    bun start

Antes de usar

  • É um projeto de pesquisa voltado a demonstrar um conceito, não uma biblioteca para produção.
  • A execução das demonstrações requer o runtime Bun, que não é indicado como opcional.

Tópicos

Perguntas frequentes

O que é handwired?
Projeto de pesquisa que compila o fluxo de controle de JavaScript comum em uma rede diferenciável de multiplicações de matrizes, com pesos definidos manualmente. Handwired converte programas comuns em JavaScript que contêm condicionais if-else, loops e estado em uma rede neural construída apenas com multiplicação de matrizes e ReLU sobre números de ponto flutuante. As condicionais são reescritas como operações aritméticas; por exemplo, calculando os dois ramos e selecionando um deles com um indicador derivado de ReLU, de modo que a rede resultante reproduza exatamente a saída do programa original.
handwired é gratuito? Qual é a licença?
handwired é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
handwired ainda é mantido?
Manutenção ativa. O último commit de handwired foi em 17 de out. de 2026.
Para que posso usar handwired?
Estudar como programas podem ser representados como redes neurais Experimentar o treinamento de lógica de programas congelada dentro de uma rede neural Explorar a execução de código JavaScript comum com paralelismo de GPU
Como instalar handwired?
Clone o repositório: git clone Instale as dependências: bun install Execute as demonstrações localmente: bun start
Onde consigo handwired?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/chenglou/handwired

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados