divagr18/qwenputer

实验性模型:把一颗 32 位 RISC-V CPU 编译成 11 层 Transformer 放在 Qwen3.5-4B 自己的层前面,用 Qwen 的 Gated DeltaNet 状态当内存,让模型在前向计算里真正执行 C 和 MicroPython 程序,把大数乘除这类算术逐位精确写出来。

实验性模型:把一颗 32 位 RISC-V CPU 编译成 11 层 Transformer 放在 Qwen3.5-4B 自己的层前面,用 Qwen 的 Gated DeltaNet 状态当内存,让模型在前向计算里真正执行 C 和 MicroPython 程序,把大数乘除这类算术逐位精确写出来。

星数 309(+80 / 24h)

理由

  • CPU 层的权重不是训练出来的,而是编译器直接算出;Qwen 照常写 calc 的工具调用,但没有任何外部执行器,模型内部的计算层读调用、在 CPU 上算完,再由模型自己逐位写出结果。作者称通过官方 riscv-tests,回放约 23 万个输出位置零误差,文本行为与原模型的 KL 为 6e-4
  • 作者给的对比(贪心解码、每组 40 题):合成整数算术从基础模型的 75.0 升到 97.5,DeepMind mul_big 从 55.0 升到 97.5,和基础模型调用宿主机 Python 解释器的成绩相当
  • 另有实验分支:加了点积指令的 NPU 版能在模型里跑 26 万参数的 stories260K 小模型;文件系统版在 DeltaNet 状态里存最多 512 个文件,作者称跨会话回忆题从 7.8 升到 83.3;早期 CHIP-8 版也仍可下载

用法

  • git clone 后进 experimental/riscv,uv sync --extra hf,hf download divagr1925/Qwen3.5-4B-Qwenputer 下载权重,再用 uv run python -m chipformer.rv.chat qwenputer-rv --firmware tests/data/rv/calc-bridge.elf --ask "…" 提问
  • 模型按标准 Qwen3_5ForCausalLM 加载,示例代码放在 CUDA 上并关掉 bf16 降精度归约以保证矩阵乘精确;设计和全部测量在 experimental/riscv/docs/rv32.md

风险

  • 作者称不是处处有用:GSM8K 这类应用题打平,长表达式链上基础模型仍领先,模型还会反复验算已经给出的结果直到用完 token 预算;CHIP-8 版的表格取的是开发检查点里各基准的最好成绩
  • 示例跑在 NVIDIA GPU 上,作者给的速度是 L4 上约 3,200 个轨迹 token 每秒,NPU 版生成一个故事 token 约 41 秒;代码 MIT,权重按 Qwen3.5-4B 的修改版走 Apache-2.0,仓库 10 月 19 日建

打开

GitHub

浏览最新 AI 动态