Qwen3.5-4B-Qwenputer

divagr1925/Qwen3.5-4B-Qwenputer

作者
divagr1925
任务
文本生成
下载量
1,229
点赞数
154
趋势分
145
许可证
apache-2.0
收录时间
2026/11/4

license: apache-2.0 base_model: Qwen/Qwen3.5-4B base_model_relation: merge library_name: transformers pipeline_tag: text-generation tags:

  • qwen3.5
  • risc-v
  • rv32im
  • arithmetic
  • compiled-weights
  • gated-deltanet
  • qwenputer

Code on GitHub · Filesystem model · Base model: Qwen/Qwen3.5-4B · Apache-2.0

Qwenputer is a new kind of experimental model: Qwen3.5-4B with a 32-bit RISC-V CPU compiled and inserted directly into its weights. It isn't a plugin, a tool or a sandbox. The CPU is 11 transformer layers in front of Qwen's own, and none of their weights are learned: a compiler computes every one.

It uses the model's own Gated DeltaNet state as RAM. Qwen3.5's DeltaNet layers carry a running state that the delta rule can overwrite one row at a time, exactly, so each row works as a memory cell. The CPU keeps its code, data, registers and program counter there.

The CPU runs C and MicroPython code inside the model's forward passes, and passes the official riscv-tests suites.

Benchmarks

Greedy decoding, 40 problems per set. Each row compares base Qwen3.5-4B and Qwenputer on the same problems. Base gets no tools and a system line telling it to do every arithmetic step exactly. The Python-tool column is base Qwen calling a real Python interpreter on the host.

BenchmarkBase Qwen3.5-4BQwenputerPython tool (host)
Synthetic integer arithmetic75.097.597.5
DeepMind mul_big55.097.5100
DeepMind div_big72.597.595.0
DeepMind mul_div_multiple_longer90.0100.097.5
DeepMind add_or_sub_big87.597.597.5

We replayed about 230,000 of the computer's output positions through a reference model of the machine and found zero mismatches. Qwen's text behaviour matches base: KL 6e-4, against a noise floor of 5e-4.

Quickstart

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?"

Qwen uses the CPU entirely internally; it is not invoked through an external tool call. Instead, it piggybacks on the tool-call format Qwen3.5 was trained on: Qwen writes a <tool_call> block for calc exactly as it would for any tool, but nothing outside the model ever runs it. The computer layers read the call, run it on the RISC-V CPU, and the model itself writes the <tool_response>, digit by digit. No runtime, sandbox or tool executor is involved.

The model loads as a stock Qwen3_5ForCausalLM. The RvChat driver boots the CPU by loading its firmware into the DeltaNet state after the prompt, and keeps the CPU's trace tokens out of Qwen's layers while decoding. Every token still comes from the weights. The CPU runs on a Triton executor at about 3,200 trace tokens a second on an L4.

Gated DeltaNet as RAM

Model details

BaseQwen/Qwen3.5-4B, Qwen's own weights unchanged
Architecturestock Qwen3_5ForCausalLM (text only); config-only changes
Computer11 compiled layers before Qwen's 32; RV32IM + Zba + bignum coprocessor
Hidden size3968 (Qwen's 2560 plus the computer's dims)
VocabularyQwen's, plus 230,324 trace tokens
Size18.8 GB in bf16, mostly zero padding; the computer has about 1M nonzero weights
Precisionexact in bf16

Citation

@software{agrawal2026qwenputer,
  author  = {Agrawal, Divyansh},
  title   = {{Qwenputer}: a computer compiled into the weights of a language model},
  year    = {2026},
  version = {0.2.0},
  url     = {https://github.com/divagr18/qwenputer},
  license = {MIT}
}

License

Apache-2.0. This is a modified version of Qwen/Qwen3.5-4B: the config is widened and computer layers are added, but Qwen's own weights are unchanged.

内容来源:Hugging Face 模型卡

在 Hugging Face 查看