Repolode
chenglou

chenglou/handwired

Proyecto de investigación que compila el flujo de control habitual de JavaScript en una red diferenciable de multiplicaciones de matrices con pesos escritos a mano.

Estrellas
1,773
Forks
146
Issues abiertos
9
Último commit
hace 3 días

¿Qué es?

Handwired convierte programas JavaScript habituales con ramas if-else, bucles y estado en una red neuronal construida únicamente con multiplicaciones de matrices y ReLU sobre números de punto flotante. Los condicionales se reescriben como operaciones aritméticas; por ejemplo, se calculan ambas ramas y se selecciona una mediante un indicador derivado de ReLU, de modo que la red resultante reproduce exactamente la salida del programa original.

Como los pesos se escriben a mano en lugar de aprenderse, no hace falta entrenar el modelo y todo el programa sigue siendo diferenciable. El cálculo combinado puede ejecutarse en JavaScript sin dependencias adicionales o en WebGPU, lo que permite aplicar técnicas existentes de optimización de GPU a estas primitivas mínimas.

El proyecto explora posibles usos, como desbloquear los pesos para entrenarlos, conectar un programa congelado a una red neuronal genérica para entrenarla de extremo a extremo y ejecutar código JavaScript de estilo monohilo con paralelismo de nivel GPU. Entre las demos hay una búsqueda en JSON sobre 100k documentos. El repositorio está configurado para usar Bun y las demos también están disponibles en línea.

Funciones clave

  • 01Convierte if-else, bucles y estado en multiplicaciones de matrices y ReLU
  • 02No requiere entrenamiento porque los pesos se escriben manualmente
  • 03Mantiene diferenciable el programa completo
  • 04Se ejecuta en JavaScript sin dependencias adicionales o en WebGPU
  • 05Incluye demos interactivas y un ejemplo de búsqueda en JSON sobre 100k documentos

Casos de uso

  • Estudiar cómo representar programas como redes neuronales
  • Experimentar con el entrenamiento de lógica de programas congelada dentro de una red neuronal
  • Explorar la ejecución de código JavaScript habitual con paralelismo de GPU

Inicio rápido

  1. 1

    Clona el repositorio

    git clone
  2. 2

    Instala las dependencias

    bun install
  3. 3

    Ejecuta las demostraciones localmente

    bun start

Antes de usarlo

  • Es un proyecto de investigación cuyo objetivo es demostrar un concepto, no una biblioteca para producción.
  • Para ejecutar las demostraciones se necesita el runtime Bun, que no se indica como opcional.

Temas

Preguntas frecuentes

¿Qué es handwired?
Proyecto de investigación que compila el flujo de control habitual de JavaScript en una red diferenciable de multiplicaciones de matrices con pesos escritos a mano. Handwired convierte programas JavaScript habituales con ramas if-else, bucles y estado en una red neuronal construida únicamente con multiplicaciones de matrices y ReLU sobre números de punto flotante. Los condicionales se reescriben como operaciones aritméticas; por ejemplo, se calculan ambas ramas y se selecciona una mediante un indicador derivado de ReLU, de modo que la red resultante reproduce exactamente la salida del programa original.
¿handwired es gratuito? ¿Qué licencia tiene?
handwired es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿handwired sigue mantenido?
Mantenimiento activo. El último commit de handwired fue el 17 oct 2026.
¿Para qué puedo usar handwired?
Estudiar cómo representar programas como redes neuronales Experimentar con el entrenamiento de lógica de programas congelada dentro de una red neuronal Explorar la ejecución de código JavaScript habitual con paralelismo de GPU
¿Cómo se instala handwired?
Clona el repositorio: git clone Instala las dependencias: bun install Ejecuta las demostraciones localmente: bun start
¿Dónde consigo handwired?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/chenglou/handwired

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados