Cheng Lou 开源 Handwired:手写权重把程序逻辑变成免训练神经网络
Cheng Lou 开源 Handwired:手写权重,把程序逻辑变成不用训练的神经网络 Midjourney 工程师、前 React 核心团队成员 Cheng Lou 开源了一个自称“玩具项目”的 Handwired:把程序里的 if-else 和循环改写成神经网络的权重。权重是手写的,不用训练,输出和对应的 JavaScript 程序完全一致,在浏览器里就能跑。 原理一行代码就能讲清。比如 result = a > 4 ? 10 : 12,在 a 是整数时可以改写成: above4 = relu(a - 4) - relu(a - 5) result = above4 × 10 + (1 - above4) × 12 relu 就是 Math.max(0, x),神经网络里最常见的激活函数。a 大于 4 时 above4 正好是 1,否则是 0。两个分支都算出来,再用它挑一个。神经网络本质上就是一堆乘法、加法加上 relu,所以程序里的判断和分支,都能收进一个大矩阵乘法里。 也许你会好奇,神经网络的输出不是带概率、不精确吗? Cheng Lou 的回答是:训练出来的才这样,按程序逻辑手写的权重,同样的输入永远得到同样的输出。 他放了三个 demo。 第一个是 Mini OS,一个有三个窗口和程序坞的小桌面,拖动、缩放、层叠、滚动、文字输入、动画都有。打开浏览器开发者工具看,页面就是普通的网页元素,没有大模型,也没有扩散模型。驱动它的是一个 130 层、9909 个权重的“神经网络”,训练次数为零,在浏览器里用 CPU 实时计算。 第二个是实时搜索 10 万份 JSON 文档,每敲一个键重搜一遍。正则匹配、JSON 解析、高亮全是这种手写网络,再转成 WebGPU 代码放到显卡上并行跑。项目文档里的实测(Apple M5 Max + Chrome):每次搜索 11 到 15 毫秒;浏览器自带的正则引擎一般 8 到 28 毫秒,遇到容易回溯的写法要 2 秒多。文档写明两者谁快说不准,所以页面把两个时间都列出来。浏览器不支持 WebGPU 时会退回 CPU,搜一遍要 13 秒。 第三个是会“学习”的相册。整个程序可微分,也就是能用训练神经网络的反向传播来调参数。你在左边画几个矩形当草图,右边的照片布局由一个小网络算出,它的 244 个参数随着你拖动实时训练。损失函数里
Midjourney 工程师、前 React 核心成员 Cheng Lou 开源了玩具项目 Handwired,把程序里的 if-else 和循环改写成手写权重的神经网络,无需训练,输出与对应 JavaScript 程序完全一致,可在浏览器运行,代码以 MIT 许可开源。
原文给出三个可直接在浏览器打开的 demo 和手写权重改写 if-else 的具体算式,适合录屏跑 Mini OS 与 10 万份 JSON 实时搜索看效果。
粉丝 26万
AI Engineer, dedicated to learning and disseminating knowledge about AI, software engineering, and engineering management.
- 浏览
- 6.1万
- 点赞
- 345
- 评论
- 43
- 分享
- 44
- 收藏
- 483
约为这个来源平时的 5.9 倍
数字来自平台,为最近一次抓取时的数据。
来源:X · 宝玉 · x.com