最新资讯
dev.to 我们在 DolphinBench 上测试记忆检索:纯关键词搜索暴露了自身回归 dev.to 别再把 Agent 写成 while 循环,把它建模为状态机 bloomberg.com Rightmove 与 Scout24 借 AI 产品应对低迷房市并上调展望 stackoverflow.blog 欢迎来到芯片时代:半导体制造、AI 数据中心与芯片设计的未来 www.youtube.com AI Agent 总犯同样的错:CentralAgent AI 将记忆重构为经验系统 pub.towardsai.net Netflix 科学家建议重采样 LLM 评判:5 次仅将误差棒缩小 13% pub.towardsai.net Jev 作为 LLM 前的静默层:构建提示感知的模型路由器 reddit.com OpenAI 称 Astra 仅满足 10% 安全任务标准 dev.to FreeToken:在自有 GPU 上运行前沿 MoE 模型及其内存需求 dev.to 当 AI Agent 说“完成”时,究竟完成了什么? dev.to 部署 Underdog Bark 3.0 Pro:逐字转写、自定义后端与分块设置 dev.to 为艰难对话构建 AI:五个 Agent、一条安全正则与一位盲评监督者
多元动态
登录 注册
大模型 x.com · @宝玉 (@dotey)

Cheng Lou 开源 Handwired:手写权重把程序逻辑变成免训练神经网络

原文 我的收藏

Midjourney 工程师、前 React 核心成员 Cheng Lou 开源了自称“玩具项目”的 Handwired,把程序中的 if-else 和循环改写成神经网络权重,权重手写、无需训练,输出与对应 JavaScript 程序完全一致,可在浏览器运行。原理示例:result = a > 4 ? 10 : 12 可改写为 above4 = relu(a-4) - relu(a-5),result = above4×10 + (1-above4)×12。三个 demo:Mini OS(130 层、9909 权重、零训练、CPU 实时计算);实时搜索 10 万份 JSON(正则、解析、高亮均为手写网络并转 WebGPU,文档实测 Apple M5 Max + Chrome 每次 11-15ms,浏览器正则一般 8-28ms、易回溯写法超 2 秒,无 WebGPU 退回 CPU 需 13 秒);可微相册(244 参数随拖动实时训练,损失含对齐惩罚)。代码 MIT 开源,需装 Bun,从 template 目录示例开始。局限:没有工具能把现有 JS 源码自动转换,需用构建函数逐句改写;网络每次跑全部操作,不能提前退出或跑运行时才知道次数的循环;所有数为 32 位浮点且取值范围需预先声明。与 nanoGPT 结合训练仅是 README 设想,仓库无实现。

AI推荐理由 内容具体介绍了 Cheng Lou 开源的 Handwired 项目:用手写权重把 if-else、循环等程序逻辑表达为神经网络,无需训练且输出确定;给出 relu 改写示例、Mini OS(130 层、9909 权重)、10 万 JSON 实时搜索(WebGPU,11-15ms,对比浏览器正则 8-28ms,回溯写法 2 秒多,无 WebGPU 退回 CPU 需 13 秒)和可微相册(244 参数实时训练)三个 demo,并明确说明局限:没有工具能把现有 JS 源码自动转成网络,需用构建函数逐句改写,不能提前退出或跑运行时才知道次数的循环,所有数为 32 位浮点且需预先声明取值范围;与 nanoGPT 结合只是 README 设想,仓库无实现。信息密度高、有可验证的代码与实测数据,来源为转述推文而非官方发布,故未给更高分。

78 浏览 35,682 点赞 251 评论 38 转发 31

正文

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 个参数随着你拖动实时训练。损失函数里加了一项对齐惩罚,照片会自己往一条线上靠,没有任何代码专门去对齐它们。参数很少,训练全在 JavaScript 里跑。 Cheng Lou 还设想,把一段 Handwired 程序接到 nanoGPT(Andrej Karpathy 的一个小型 GPT 训练项目)这样的模型上一起训练,模型既能写莎士比亚,又能精确执行那段程序。这个目前只是 README 里的设想,仓库里没有现成实现。 代码以 MIT 许可开源,demo 直接在网页上打开就能玩。想自己写,需要装 Bun,克隆仓库后从 template 目录的开关按钮示例开始,文档里有完整教程。 推文说“把普通 JS 代码变成神经网络”,容易让人以为能把现成代码丢进去自动转换。项目文档写的是:没有工具能把已有的 JavaScript 源码转成网络。你要用它提供的构建函数,把逻辑一句句写成比较、选择、加权求和这类操作。网络每次都要把所有操作跑一遍,不能提前退出,也不能跑运行时才知道次数的循环,所以常见的循环得改写成计数、树形合并之类的结构,文档专门用一章讲怎么改。所有数都是 32 位浮点数,每个值的取值范围要事先声明。 项目主页:https://chenglou.me/handwired/ GitHub:https://github.com/chenglou/handwired 原推文:https://x.com/_chenglou/status/2110557373651931267

来源报道 · 1 篇 · 以下链接均前往原始媒体

← 返回精选动态 原文

更多内容