跳到正文
X · 宝玉·· 1 天前精选AI 评分65

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 个参数随着你拖动实时训练。损失函数里

AI 导读

Midjourney 工程师、前 React 核心成员 Cheng Lou 开源了玩具项目 Handwired,把程序里的 if-else 和循环改写成手写权重的神经网络,无需训练,输出与对应 JavaScript 程序完全一致,可在浏览器运行,代码以 MIT 许可开源。

选题角度

原文给出三个可直接在浏览器打开的 demo 和手写权重改写 if-else 的具体算式,适合录屏跑 Mini OS 与 10 万份 JSON 实时搜索看效果。

博主
宝玉@dotey

粉丝 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