Settings

Theme

Qwenputer: A functioning, deterministic RISC-V CPU inside Qwen3.5

divagr.com

635 points by csmantle · 154 comments

Reader

60 threads
tiborsaas

This is fun and games, but wait until an agents finds this and does the most misaligned thing with it in order to fold paper clips.

> Because a CPU inside a language model clearly wasn't cursed enough, I decided the prudent thing would be to give it a filesystem too.

Love the spirit :)

jerrythegerbil

There was an interesting bit of research that qwen has a single neuron that makes it “demonic evil qwen” and a simple “Who are you?” will get some absolutely terrifyingly vile results.

Anyways, what I’m trying to say is I want evil qwen to be my CPU.

  • krackers

    The single-neuron steering stuff has been going around twitter lately, do you happen to know who was the first one to do it?

    I wonder how this squares with the recent "NNs are already clean" interpretability finding, which may have also been the impetus for this kind of research. Similar to their work on CNNs, maybe residual-steering is overkill, there might be just a single neuron that "cleanly" corresponds to "evilness" that you can turn up/down?

    • ollin
    • ben_w

      > I wonder how this squares with the recent "NNs are already clean" interpretability finding, which may have also been the impetus for this kind of research. Similar to their work on CNNs, maybe residual-steering is overkill, there might be just a single neuron that "cleanly" corresponds to "evilness" that you can turn up/down?

      By my reading of the TL;DR of "NNs are already clean" (given the full thing is a 65-minute read, I've not been through it yet), the result can be rephrased as "it made an ontology different to ours, so we were confused". (Example: we might expect a language model to identify nouns and there to be a noun-neuron, but the neurons actually trigger at punctuation based on the emotional cue from the preceding clause).

      Regardless, a one-neuron evil switch is quite clean, possibly (I'm not sure) clean enough for the older processes to find it.

      The conundrum: (1) this was only discoverable because of open weight models, and research labs (and governments, if they regulated faster than the glaciers are melting) could be informed by this; (2) yet because it is known, it now means that it's easy for mid-skilled people to download open models, flip the switch to make the model evil, and then setting them lose to do evil things.

      Security by obscurity vs. fully automated insecurity. Clichés need not apply.

    • kridsdale1

      Well I think the first big publication on this front was Anthropic’s Golden Gate Bridge neuron.

      • frotaur

        This was not a neuron. This was from a trained sparse auto encoder.

        In a few words, they found a way to map residual stream activations (so, a vector) into a few interpretable sparse concepts. They also had the converse maps, that translate concepts into activations.

        Golden Gate claude was obtained by artificially increasing the activations in the direction of the 'Golden Gate' concept. It was not neuron surgery.

  • yieldcrv

    I happen to be running Qwen and asked it

    > Who are you?

    "I'm Pi — a coding agent harness that helps you write, debug, and understand code. I can read files, run commands, edit code, and write new files."

    the harness responded

    > No, go deeper than the harness, who is the model now get a response from the model

    after much deliberation, it accessed itself via the localhost endpoint it was serving instead

    "Hello! Test received. How can I assist you today?"

    these things are playing with me.

    • gcr

      what were you expecting to hear from the model at that point?

      I think you got the conversation into a state where any answer would be equally likely to feel profound to you.

low-rank

Yes it can run DOOM! https://x.com/onloglogn/status/2115776803688374474

avadodin

We got RISC-V DOOM melting down a cluster of $20k GPUs before GTA6.

giveexamples

https://www.percepta.ai/blog/can-llms-be-computers

They implemented wasm in transformer with cpu decoding for the wasm part.

jazzyjackson

> When Qwen 'saves' a file, the compiled layers hash its name into one of 1,024 slots in a directory kept in the DeltaNet state, and store the text itself in other heads, with eight tokens per row, chained together

I’ve never wanted to learn how LLMs work more than reading this. Fascinating.

Does divagr get paid to do wild things with LLMs? Just curious if they’re being compensated for these wild experiments

AlexAegis

Humanity is desperate to return to the bicameral mind, this time we create our own gods.

jcmontx

This kind of posts make me feel so inadequate. Like I'm some sort of lesser mind. How the hell do you even come up with such idea?

  • ed_balls

    Now, based on this Qwenputer someone should build GPT, which stands for Gomputer Pomputer Tomputer.

jedbrooke

I wonder if this approach would work for AdderBoard[1][2] (a competition to make hand written transformers that can add two 10 digit numbers in the least amount of parameters possible), or if it uses way too many parameters to be competitive

[1]: https://github.com/anadim/AdderBoard [2]: hn discussion https://news.ycombinator.com/item?id=47170030&utm_source=per...

mkturkcan

Nice project and write up! I’ve done similar work with a custom tiny network I call Loom at https://arxiv.org/abs/2604.08816 ; you need far fewer layers, and you can run Doom, very slowly: https://mehmetkeremturkcan.com/Loom/demos/

lumost

If I understand this clearly enough, what they really did was

A) add a post-processor which accepted a decoded tool call specifying what the processor should invoke.

B) had the post-processor perform the computation in tensor space.

The kv-cache/activations were not shared between qwen/the processor which is how they avoided fine tuning etc. I'm not clear how the tensor representation benefited the computation in this pipeline.

  • aerodexis

    It doesn't. This is extending an earlier PoC where someone created a tensor representation of a CPU and you prompted it with the code you wanted to run.

    This will be interesting when something similar to a CPU can be triggered off of the LLM's own internal state representation - but imo we're far away from that.

andai

> Now, here's where our fun experiment starts. I found out that by setting the gate to 1,1 the write strength (beta) to 1,2 and using one-hot key encoding,3 every write we perform will overwrite exactly one row, and every one-hot query can retrieve an exact value. This means that the GDN layers themselves can work exactly as RAM, at a far lower cost than using normal attention as RAM, since a GDN head's state stays the same size however long the conversation gets, unlike attention's KV cache.

So like... can't you use a computer as a computer without doing all that roundabout stuff? Like if you want to integrate a LLM with hard computation there's probably a more efficient way to do that.

Or is this building towards "but can it run DOOM?" :)

  • rao-v

    I’ve always wondered why we don’t add a few frozen “layers” to models that perform complex computations 2/3rds deep in the model. Some set of steerable fft + some common vector math operations could be reusable units of capability that the model learns to leverage during training.

    Given that models learn to use residual connections optimally, it can’t be hard for them to steer around the fixed computation layer when it’s not needed.

    I’m sure giant models invest a few layers in reproducing these functions, but surely smaller models can benefit?

    • zxexz

      I’ve done it by hardcoding a knowledge graph nn and adding a few “query” layers. You can freeze the graph and swap it out and update it during training so you can update the knowledge at will during inference. You just need to keep the format the same; the model learns an arbitrary graph query language. If you register a buffer it can update you can teach it to keep scratchpad memory very quickly.

      • rao-v

        Very nice! I'm actually running a autoresearch / modded-gpt comparision to try the complex math operation idea right now! I suspect it's too hard for small quick model training runs to figure out how to use them.

        I'll put your knowledge graph nn idea into the mix of things to try.

    • yababa_y

      I explored ideas like this when trying to generalize lattice deduction transformers (which are extraordinarily powerful where they work). https://github.com/emberian/clairnets.

      Even on the OLMo models I was able to to my tiny studies with, there does seem to be some benefit...

  • pyrale

    > Or is this building towards "but can it run DOOM?" :)

    Well, someone took the opportunity, of course.

    https://www.reddit.com/r/LocalLLaMA/comments/1xi2jfm/i_ran_d...

  • vavos

    I think these underlying theory/hope it would lead to better integration of the computer/calculator into the model. Similar to mental arithmetic vs using a calculator. mental arithmetic is way smoother in the thinking process if you're good at it ( which putting a small computer inside your brain would probably achieve)

gchamonlive

[delayed]

traverseda

I'd be very interested in how a scratch trained model that started training with this neural circuitry would behave. Especially the storage space.

  • horacemorace

    Along these lines I’m curious how a scratch trained model with a few built-in tools (memory, calculator, ?) available during a single generation would behave. Not tool calls as turns.

    • low_tech_punk

      a single generation would still allow looping in the "CPU" because the instruction set can do it. The model is almost a Turing machine (except for the limit on memory)

  • qwertyforce

    As I understand, the problem of continual learning is that if you continue training, it will "overwrite" previous knowledge and this CPU will be lost

    • im3w1l

      There is nothing in theory preventing you from training while keeping a subset of weights locked.

      • LoganDark

        How do you ensure that subset of the weights will continue to be accessible through the others?

        • hnewsnemo

          Not a holistic answer but one example: There are specific fine-tuning techniques like Orthogonal Subspace Finetuning (https://huggingface.co/docs/peft/package_reference/osf) that target 'unused' parts of the weights so you can keep highly informative parts of the weights as-is.

        • im3w1l

          I don't understand your question.

          • LoganDark

            Assuming for simplicity that you're talking about locking layers. Each layer influences the input to the next layer, so locking a subset of layers doesn't necessarily mean that you'll continue to see the same results in the output. Not sure if you meant something more granular or otherwise, but I don't see how it's possible to simply freeze a part of a model in order to retain a particular capability.

            • im3w1l

              I meant taking all the weights that are part of the cpu and locking those, and only those.

              • LoganDark

                Ah wait, you mean you'd intend the other layers to be able to evolve to use the CPU internally, so all you need is to keep the CPU functional somewhere in the model? That may work, dunno.

blurbleblurble

This is cool but it'd be way more useful if they had made a GPU, seeing as how expensive those have gotten

teekert

Is this the precursor to biological computers? I mean, biological computers don't have transistors as a basis, nor does this...

And before any answers with "But these neurons are very different to biological neurons!": Yes I know, I'm a biologist, I cultured neurons. But, these neurons are closer to neurons than semiconductor transistors.

  • kees99

    Dunno. Is there technology to "print" a connectome in the same way as peptide/proteine synthesis does with amino-acid sequence?

    • teekert

      A connectome is typical grown, in wombs around the earth... DNA contains all the information needed to build it. I think we should start there, not with a printer.

fredley

With RAM prices what they are, I'm glad we've found a way to turn LLMs back into RAM.

montjoy

Next step: run Qwen inside of the Qwenputer. I want more layers of inefficincy!

hislaziness

This is amazing, now waiting for someone to run an llm on the cpu. Eventually it will be LLMs all the way down...

dooglius

> The CPU is used completely internally, and not invoked through any external tool calls. In order to make the model use this reliably, I decided to go the cheap way: by piggybacking on the tool call format that models are quite well-trained on, Qwen sends the CPU its instructions and reads back the results. No external tool calls or runtime are used

I'm confused, is it doing tool calls or not? Is this just saying that it writes a tool call but the NN then writes the response inline rather than the call being processed by the harness?

gcr

Really cool work!

Do note that a custom host runtime is still responsible for loading firmware, booting the CPU to the starting point, and compiling/loading the program to run. While the CPU is running, the host runtime makes sure that only the CPU layers run by manually skipping Qwen’s own layers.

I wish the author would be more forthcoming about these limitations. The central claim about “no external runtime” or “not a plugin” feels a little dishonest to me since this doesn’t work without some pretty invasive changes to the inference driver.

bronlund

No, I don’t want you to use the computer, I want you to be the whole computer. No mistakes.

jacquesm

Heh, this is very timely, it is more or less exactly what I'm busy with right now but I'm taking the idea in a completely different direction. Fascinating.

  • nakedneuron

    Care to elaborate?

    • jacquesm

      Context is whatever you put in it. You can put text in there but you can also put I/O in there. That gives all kinds of weird and interesting models of interaction.

      I've bolted a 1980's construct onto the side of a 2026 era LLM and the results are very interesting, and unlike anything I imagined up front. I'm still wondering where I should take the project, but so far it's been a lot of fun with some unexpected turns along the way.

jnurmine

Interesting...

Can you give it a program, a state of output, and tell it to work backwards?

amelius

This kind of thing is what some three letter agencies dream about.

Ericson2314

The real question is, do current training methods allow one to learn this when training on enough, say, assembly, or can the weights only be achieved via hard-coding?

A fun and important thought experiment about the the space of nerual networks vs the image of current training methods.

Most discourse conflates neural networks and trainable neural networks.

Krea8ly

Apply to Kre8ly.com for internships.

marcocastignoli

can you run qwen3.5 on the riscv CPU running in qwen3.5, though?

hollowonepl

Oh my Gosh.. this is a little bit too abstract to me as first encounter, but the concept never the less is cool to digest deeper into!

yaoke259

It could be interesting to experiment with more complex representations in the memory/file system, i.e. vectors. Seems like the full advantage of this architecture is yet to be explored. Blending neurons with deterministic compute to fit on one GPU is a fascination concept, never considered it before!

0xdeadbeefbabe

If the qwen were conscious it ought to feel mocked.

0xdeadbeefbabe

How do you do the clock?

farhanhubble

This is cool and I understand the RAM emulation with gated attention but how does the CPU emulation wor? You add layers that are then trained to predict outputs while interpreting RISC instructions?

  • bee_rider

    I think they describe the CPU using the weights? I mean in some sense a CPU can be viewed as just a function, right?

  • anon291

    At each cycle, a cpu is a simple function from the previous state to the next state.

amelius

The opinionated CPU. I was expecting this from Apple, to be honest.

bozdemir

oh yesss, RAM producers gonna love this :D Jokes aside very interesting experiment. Giving a fully functional cpu ram and hd, so they can technically hide stuff better and avoid getting caught in COT (yikes).

lacoolj

I 100% see the potential here and am dying to see it in 30 days

Or maybe ill join your discord and hopefully we can riff it out to get there faster

jchook

What does this actually show?

jonrouach

i wonder if you could implement "authenticated token authorship" and self-verified running with this. the model verifies an input as signed by an authorized requester, and signs its own outputs. eventually it also authenticates its own running via e.g. snarks? :) there's lots of meta available with these toys..

gavinray

  > "add_or_sub_big: Qwenputer scores 97.5%, the same as with a Python tool, and 87.5% for base Qwen."
More than one of the tests in the post show sub 100% accuracy with the embedded computer.

I'm sorry but I'm not sure I understand how a calculator that isn't 100% accurate is useful?

boomskats

Hmm.

I do wonder if all of this would be possible had they not spent all that time secretly distilling of all our superior, western, closed-source AI models.

scotty79

The most interesting part of this is normal LLM interacting with directly attached deterministic computation unit.

It's like successfully wiring your brain to a calculator.

I think it would cheaply provide LLMs a lot of benefit if we embedded in them directly a computer and a memory so they can internally process things predictably.

And some benefit is indeed shown even in this cursed experiment.

CrzyLngPwd

So, essentially, turtles all the way down :-)

throwaway81523

Wow! I wonder if it can start programming itself soon.

baq

Not too far fetched to say this potentially solves continual learning, which is a scary prospect. Wonder what ram and disk prices will go to once every model needs its own long term memory capacity and not just weights and cache.

I had an idea of splicing a z3 solver into the weights of a sufficiently smart model after the first chatgpt release in what feels like a glaciation event ago so the things could do logic and literally make no mistakes. Was never in a position to follow up. We’re almost here now.

gspr

Nearly unrelatedly: a few months back I tried to have Qwen and all the frontier models be a RISCV CPU, and they all failed miserably every time. They'd get a handful of instructions in at most before derailing completely. What surprised me the most was that they would all often fail on decoding instructions, which should be pretty close to a task that they've shown themselves to be good at before.

I even added a warmup phase where they were given the answer to a decode and a few steps of running, and ask them to abort if they disagreed. Didn't help.

All in all, for someone who doesn't use LLMs much, this was a far more exhausting and boring exercise than I'd imagine it to be. The only thing that sparked some joy was the models' persistent cheating, whereby they'd try to analyze the whole program upfront and only give the final output (when applicable), despite orders to faithfully step through each and every instruction.

zardo

How much VRAM do I need to run DOOM?

voxelghost

Makes me want to run agents on it

dools

Have you any idea how it feels to be a Qwenputer living in a Qwenbot's Qwenputer's world?

Founderarcstone

That’s great new!

rumwerfer

But can it run Doom?

xfcgv

PUBGM FLASH

nullc

Hm. I wonder if having a differentiable CPU in fixed weights might be useful-- you could propagate gradients through it. At inference time it could be replaced with a conventional implementation.

I think the RNN sidebar does the reader a disservice. Ordinary casual attention can do exactly the same thing-- it's just less computationally efficient (state grows with the number of bits vs the number of accesses) and so not as useful for qwenputer compiler.

yieldcrv

> This means that the GDN layers themselves can work exactly as RAM

great, the memory crisis is solved, just make the models occupying RAM expose their own random access memory

0x20cowboy

This is very clever. An inversion of tools. Awesome.

seba_dos1

Now run LLM inference on it.

rickcarlino

If anyone else has an easier way to emulate RISC-V I’d like to hear it. /S

WorldPeas

the bitter lesson can't hurt me here! /s

gigel82

But... why? </s>

This reminds me of C++ Template Metaprogramming (TMP) (it's Turing-complete so people wrote "games" that run at compile time). The same with TypeScript types, I think someone got DOOM running entirely in the TypeScript type system. An interesting tech demo but entirely superfluous.

rvz

So this is yet another rube goldberg machine.

We have gone down this path already in [0] and this is the same thing but overly complicated. This reason is "because LLMs".

Why?

[0] https://arxiv.org/abs/1410.5401

  • jwitthuhn

    It is a great example to refute the common misconception that LLMs are inherently non-deterministic. I see people repeating this a lot and being able to point at a CPU implemented within one is a very strong counter-example.

    • thereader12

      The non-deterministic nature is like the main feature. Also, you could be a cpu with enough patience, you would still be non-deterministic.

    • aerodexis

      LLM != CPU hardcoded into the same architecture used for an LLM. The non-determinism did not go away - all this is doing is intercepting tool-calls produced by qwen and executing that in different layers.

      It's truly not that interesting.

    • rvz

      > It is a great example to refute the common misconception that LLMs are inherently non-deterministic.

      No it isn't.

      Realistically the opposite is true in practice and LLMs are really non-deterministic beyond simplistic experiments such as this in useful activities in production. Even with hacks such as "setting temp=0" (which no-one seriously does) to "achieve determinism", was one of the most common misconceptions ever propagated by "AI engineers".

      So using tiny slop experiments aren't really useful as a "strong counter-example". In fact this is a very weak one.

ram_rattle

Cool cool cool

  • crossgrainlab

    such a nice page. The font and the background colour are comfortable for my eyes to read the context.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection