
写前端的人大概都想过一个问题:随手写的if-else和循环,跟大模型里那套神经网络,到底是两种东西,还是同一种东西?本周GitHub上冒出一个很上头的开源项目给出了答案:它们可以是同一种。项目叫Handwired,作者是Cheng Lou——React核心团队前成员、react-motion和Pretext的作者,目前在Midjourney工作。项目10月15日刚开源,一天时间已经拿到一千三百多星。
它做了一件什么反直觉的事
Handwired的核心玩法一句话说清:把你平时写的普通JavaScript程序,原样编译成一个「不用训练、结果精确、却完全可微分」的神经网络。
觉得抽象的话,看官方README里的例子。下面是一段再普通不过的三元表达式:
const a = 5
const result = (a > 4) ? 10 : 12
Handwired把它改写成纯算术:
const above4 = Math.max(0, a - 4) - Math.max(0, a - 5)
const result = above4 * 10 + (1 - above4) * 12
Math.max(0, x)就是ReLU激活函数。整数输入时,above4在a小于等于4时等于0,在a大于等于5时等于1——两个分支都算一遍,再用算术门挑出正确答案,结果和原来的if-else一模一样,你可以拿笔手算验证。
把整个程序里所有的加法、乘法和ReLU收集起来,就能拼成一个巨大的矩阵乘法,跑在普通JS或WebGPU上。因为权重不是训练出来的、而是编译器直接写进去的,输出精确无误;又因为整个程序只剩矩阵乘法和ReLU两种原语,它天然可微分——随时可以把权重解冻,用反向传播接着训练。
三步上手
- 先玩在线演示:浏览器打开chenglou.me/handwired,里面有一个用约9909个权重、130层网络跑起来的迷你操作系统HandwiredOS,所有界面都渲染成普通DOM元素;还有一个JSON搜索演示值得点开。
- 本地跑一遍:git clone仓库chenglou/handwired,然后bun install,再bun start。项目用TypeScript写的,MIT协议,克隆下来就能读。
- 改着玩:看docs、src和template三个目录,template是现成的起步模板,照着写自己的程序再编译成网络。
三个有点邪门的玩法
第一,解冻权重随便训练,看看你的程序被梯度下降带偏成什么样——官方自己也好奇这会发生什么。第二,把一段冻结的程序接到nanoGPT这种通用网络上做端到端训练,理论上网络能同时学会莎士比亚和你那套业务逻辑。第三,榨取GPU并行度:README里的JSON搜索演示,用传统单线程写法写成的JS代码,经过编译后在WebGPU上对10万份文档的检索跑进了毫秒级。
一点个人看法
作者自己定位这是个玩具项目,但它是那种「重新划分类别」的玩具:以前我们默认程序和神经网络是两套体系,Handwired用很少的代码证明了它们是同一种计算的两个端点。对前端开发者来说,它可能是门槛最低的神经网络入门材料——起点就是你昨天写的业务代码。玩具归玩具,想法值钱,建议花半小时读一遍源码。
文章标题:开源Handwired实测:JS代码秒变可训练神经网络
文章链接:https://www.muooy.cn/15907.html
更新时间:2026年10月16日
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:305582964@qq.com,我们将第一时间处理!2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读用户协议和免责声明。

