原文链接:https://divagr.com/blog/qwenputer
这篇文章非常有意思,而且我认为它值得认真研究。
它做的事情可以概括成一句话:
把一颗真正能够执行机器指令的 RISC-V CPU,直接编译进大语言模型 Qwen3.5 的神经网络权重中,让 AI 在模型内部完成计算,而不是调用外部 Python、计算器或者代码执行工具。
项目名字叫 Qwenputer,作者是 Divyansh Agrawal,文章发表于 2026 年 10 月 22 日。
这不是简单地给 Qwen 接入一个计算器,而是尝试让语言模型内部拥有 CPU、RAM,甚至文件系统。
更有意思的是,它没有重新训练一个模型,而是通过编译器直接生成额外的神经网络层和权重,实现这套计算机。
一、Qwenputer 到底是什么?
先看传统 AI 是怎么计算的。
假设你问一个普通大语言模型:
123456789 × 987654321 = ?
模型有几种选择:
- 靠自身的神经网络预测答案。
- 调用 Python 工具计算。
- 调用外部计算器 API。
第二种方式是目前 Agent 常用的方案:
Qwenputer 则完全不同:
这里最重要的区别是:
传统 Agent 是让模型调用一台外部计算机,而 Qwenputer 是把计算机本身变成模型的一部分。
它没有外部 Python Runtime,也没有外部 Tool Server。
二、最核心的技术:把 Gated DeltaNet 变成 RAM
这是整篇文章最值得研究的部分。
先了解一下 Qwen3.5 的架构。
Qwen3.5 使用了 Gated DeltaNet(GDN)和传统 Attention 混合的架构。
GDN 可以理解为一种带有门控机制的线性 RNN。
它有一个很重要的特点:
模型内部存在一个可以持续更新的状态矩阵。
作者发现,这个状态矩阵可以被改造成计算机的 RAM。
1. 普通 RAM 是怎么工作的?
假设我们有一块内存:
| 地址 | 存储值 |
|---|---|
| 0x01 | 100 |
| 0x02 | 200 |
| 0x03 | 300 |
| 0x04 | 400 |
CPU 可以通过地址:
- 写入:将 500 写入 0x02。
- 读取:读取 0x03,得到 300。
这就是最基本的内存操作。
2. GDN 为什么可以充当 RAM?
GDN 每个 Head 都维护一个状态矩阵。
作者利用三个参数:
- Gate:控制状态是否衰减。
- Beta:控制写入强度。
- Key:决定访问状态矩阵的哪个位置。
通过特殊设置:
- Gate = 1:不让原有数据衰减。
- Beta = 1:写入时完全覆盖对应内容。
- One-hot Key:精确指定要读写的矩阵行。
这样就可以实现类似 RAM 的操作。
举个例子:
WRITE(address=10, value=12345)
READ(address=10)
返回:12345
这不是让 AI 记住 12345,而是让神经网络状态矩阵真正保存这个值,并且能够精确读取。
这两者有本质区别。
普通 LLM 的记忆更接近概率性的模式识别,而这里尝试实现的是确定性的读写操作。
作者还指出,GDN 的状态大小不会随着对话长度增长,不像传统 Attention 的 KV Cache 那样随着上下文增长而增加。
三、第二步:真的在模型里面编译了一颗 CPU
有了 RAM,还需要 CPU,否则只能存储数据,不能执行计算。
作者选择的是 RISC-V 架构。
具体来说,作者实现了一颗:
| 指标 | 数值 |
|---|---|
| 状态 | 已通过测试 |
| CPU 位宽 | 32-bit |
| 额外 Transformer 层 | 11 |
| RISC-V 指令集 | RV32IM |
| 连续执行指令数 | 18M,无错误 |
另外支持 Zba 扩展和大整数运算单元。 CPU 由编译器生成权重,不需要重新训练 Qwen 原有模型。
这里有一个非常关键的设计:
作者不是让 AI 学习如何模拟 CPU,而是直接把 CPU 的电路逻辑转换成神经网络层。
可以这样理解:
| 传统计算机 | Qwenputer |
|---|---|
| CPU 指令译码 | Attention Heads |
| ALU 算术逻辑单元 | Feed Forward 网络 |
| RAM | Gated DeltaNet 状态矩阵 |
| 寄存器 | GDN 状态中的指定存储区域 |
| 程序计数器 PC | GDN 状态中的指定存储区域 |
| 指令执行过程 | 模型逐 Token 解码 |
举个例子,CPU 执行一条加法指令:
ADD x1, x2, x3
其含义是:
x1 = x2 + x3
编译器会把这类 CPU 操作转换成模型中的一系列计算步骤。
每条指令执行时,会产生几个特殊 Token:
ADDR
VAL
STEP
它们分别用于指定内存地址、传递数据和结束当前执行步骤。
这些 Token 不只是文本,而是 CPU 的执行轨迹。
作者特别强调:整个 CPU 不需要训练,编译器直接计算并设置每一层的权重。
这意味着,神经网络不一定只能通过训练来获得能力,也可以通过工程手段直接构造出具有确定性计算能力的网络结构。
四、它到底有多厉害?看实际测试
这是判断项目价值最重要的部分。
作者使用了 DeepMind 的算术测试集,以及 NUPA 长整数算术测试集。
对比了三个方案:
- 原始 Qwen3.5-4B:没有外部工具。
- Qwenputer:内置 RISC-V CPU。
- Qwen3.5-4B + Python:调用外部 Python 计算。
DeepMind 算术测试集准确率:
| 测试项目 | 原始 Qwen | Qwenputer | Python |
|---|---|---|---|
| 大整数除法 | 72.5% | 97.5% | 95% |
| 大整数乘法 | 55% | 97.5% | 100% |
| 长表达式乘除 | 90% | 100% | 97.5% |
| 大整数加减 | 87.5% | 97.5% | 97.5% |
这个结果相当惊人。
原始模型在大整数乘法测试中只有 55%,加入内置 CPU 后达到 97.5%,基本追平外部 Python。
在 NUPA 的长整数运算测试中,原始 Qwen 从 48.6% 提升到了 100%。
更值得关注的是,作者还进行了约 23 万个输出位置的逐项验证,与参考机器对比,没有发现一次不匹配。
这里需要区分两个概念:
- CPU 的计算结果是精确的。
- 整个 AI 的回答不一定 100% 正确。
例如,模型可能理解错题目、生成错误的表达式,或者没有正确使用 CPU。
所以它解决的是 AI 计算环节的可靠性,而不是所有推理问题。
另外,这些基准测试每个测试集只有约 40 道题,属于很有价值的实验结果,但还不能直接推导出它在各种实际业务任务中都能达到同样的准确率。
五、更有意思:它甚至给模型装上了硬盘
作者觉得,既然已经有了 CPU 和 RAM,为什么不再做一个文件系统?
于是又开发了一个实验性版本:Qwenputer Filesystem。
它提供了五种操作:
| 操作 | 功能 |
|---|---|
| put | 创建文件 |
| append | 追加内容 |
| get | 读取文件 |
| list | 列出文件 |
| delete | 删除文件 |
这些操作同样不依赖外部文件系统工具。
文件名会经过哈希映射到 DeltaNet 状态中的目录位置,文件内容则存储在其他状态矩阵中。
它的存储能力:
| 指标 | 数值 |
|---|---|
| 文件数量上限 | 512 |
| Token 存储容量 | 53,000 |
最有意思的是持久化。
假设今天跟 AI 对话:
put("user.txt", "用户喜欢 Python")
结束对话时,保存模型的状态。
第二天重新启动模型,加载之前保存的状态:
get("user.txt")
它仍然能够读取之前保存的内容。
作者还做了跨会话记忆测试:
| 测试 | 原始 Qwen | 内置文件系统 | Python 工具 |
|---|---|---|---|
| 多会话记忆 | 7.8% | 83.3% | 78.9% |
| 后续会话中的变化事实 | 3.3% | 90% | 83.3% |
这个实验很有意思:它不只是让 AI 能够记忆,而是让 AI 拥有了一套能够精确读写的内部存储系统。
不过要注意,所谓持久化,并不是每次回答都会自动修改模型权重,而是保存和恢复运行时的 DeltaNet 状态。
六、它有什么局限?
这个项目虽然很酷,但距离真正实用的 AI 计算机还有一段距离。
作者也明确列出了几个问题。
1. 模型体积增加
Qwenputer 的模型文件达到约 18.8GB,差不多是原始模型的两倍。
不过这里面有大量零填充权重,实际增加的有效计算逻辑并没有那么庞大。
2. 运行速度不够快
CPU 的每条指令需要通过多个 Token 执行。
作者在 NVIDIA L4 上测试,批量执行器速度约为每秒 3,200 个 CPU Trace Token。
这和真正的 CPU 相比,速度仍然有很大差距。
3. 还需要专门的驱动程序
目前最新 RISC-V 版本需要 RvChat 驱动程序来初始化 CPU、加载固件,并管理执行轨迹。
因此它还不是一个拿到模型文件就能直接用普通推理接口运行的完整产品。
4. 它不是 Linux 计算机
虽然实现了 RV32IM 指令集,也能运行 C 和 MicroPython,但还不能把它当成一台通用计算机。
目前主要验证的是算术运算和有限的程序执行能力。
七、怎么自己体验?
项目完全开源。
| 项目 | 地址 |
|---|---|
| 源码 | github.com/divagr18/qwenputer(MIT License) |
| 模型权重 | divagr1925/Qwen3.5-4B-Qwenputer |
硬件要求:作者表示可以在单张 24GB 显存的 GPU 上运行。
基本安装命令:
git clone https://github.com/divagr18/qwenputer
cd qwenputer/experimental/riscv
uv sync --extra hf
hf download divagr1925/Qwen3.5-4B-Qwenputer \
--local-dir qwenputer-rv
uv run python -m chipformer.rv.chat qwenputer-rv \
--firmware tests/data/rv/calc-bridge.elf \
--ask "Use calc: what is 123456789 * 987654321?"
注意,这里使用的是文章介绍的 RISC-V 版本,不是仓库最早的 CHIP-8 版本。
八、我认为这个项目真正值得关注的是什么?
我觉得 Qwenputer 的价值,远远不只是让 AI 能够准确计算大整数。
它实际上提出了一个值得思考的问题:
神经网络能不能不只是一个预测下一个 Token 的模型,而是变成一台真正能够执行确定性程序的计算机?
过去我们通常把 AI 和传统计算机分开:
- AI 负责理解、推理、规划。
- CPU 负责精确计算。
- RAM 负责存储。
- 硬盘负责持久化。
- 工具调用负责把两者连接起来。
这也是目前 Agent 架构的基本思路。
但 Qwenputer 尝试把这些能力直接融合到神经网络内部。
我认为有三个值得关注的方向。
1. 未来的 AI 模型可能自带计算能力
现在我们使用 Claude Code、Codex 等编程 Agent,通常需要配置 Bash、Python、终端、文件系统等工具。
模型负责决定做什么,外部工具负责执行。
Qwenputer 展示了另一种可能:将部分执行能力直接编译进模型。
当然,它目前只实现了有限的 CPU 功能,距离完整的 Agent 执行环境还很远。
2. AI 的记忆可能不再完全依赖外部数据库
现在做 RAG、Agent Memory,通常需要:
- 向量数据库。
- Embedding 模型。
- 外部文件存储。
- 检索和召回逻辑。
Qwenputer 证明了一种可能性:模型自身的循环状态可以作为精确寻址的存储空间。
不过它的 53,000 Token 容量,和真正的数据库相比仍然很有限。更不能直接替代企业级数据库。
3. 神经网络不一定只能通过训练来构建
这是我认为最有研究价值的地方。
传统思路是:
设计模型架构
↓
准备训练数据
↓
训练神经网络
↓
得到模型能力
而 Qwenputer 展示了另一条路径:
设计计算机电路
↓
编译器转换计算逻辑
↓
生成神经网络权重
↓
直接插入预训练模型
↓
获得确定性计算能力
这实际上是 Neural Network 与传统计算机体系结构的一次有趣融合。
它也带来了一个新的研究方向:能不能把更多确定性模块编译进模型,比如状态机、规则引擎、校验器,甚至安全监控器?
作者还专门研究了这种编译权重在 AI 安全监控方面的用途。
最后总结
值得关注的研究项目。
我对 Qwenputer 的评价是:这是一次非常有价值的模型架构实验,而不是一个可以直接投入生产的产品。
它最重要的创新不是造了一颗更快的 CPU,而是证明了:
通过精心设计神经网络的权重和状态更新机制,可以在一个预训练语言模型内部构建出具有确定性读写、指令执行和存储能力的计算机。
如果你平时关注 Agent、RAG、模型架构,我建议重点研究它的两个部分:
Gated DeltaNet as RAM:理解如何把 RNN 状态矩阵变成精确寻址的内存。experimental/riscv/:看看作者如何把 RISC-V 指令集编译成 Transformer 层。
这两个部分比单纯看它的算术测试成绩更有研究价值。