Qwen 3.5 4B ganha um processador RISC-V dentro dos pesos, com memória em DeltaNet

O pesquisador Divyansh Agrawal embutiu nos pesos da Qwen 3.5 4B um processador RISC-V de 32 bits (RV32IM) funcional. O compilador definiu tudo diretamente, sem necessidade de treinamento. Os pesos originais da Qwen não foram alterados, e o processador executa aritmética, C e MicroPython dentro das próprias passagens diretas (forward passes), sem sandbox e sem chamada a ferramentas externas. A memória RAM é feita pelas camadas Gated DeltaNet. Com gate 1, beta 1 e chaves one-hot, cada escrita sobrescreve exatamente uma linha do estado, e o tamanho do estado não cresce com o comprimento da conversa. Na aritmética longa do NUPA, a precisão subiu de 48,6% para 100%, igual à da Qwen com a ferramenta Python. • 11 camadas adicionais antes das 32 camadas da Qwen, 18 milhões de instruções sem erros • Sistema de arquivos: até 512 arquivos, cerca de 53 000 tokens • Checkpoint de 18,8 GB, cerca de 3200 tokens de processador por segundo em uma L4

Processado por IA de Habr AI; editado por Hamidun News
Qwen 3.5 4B ganha um processador RISC-V dentro dos pesos, com memória em DeltaNet
Fonte: Habr AI. Colagem: Hamidun News.
Ouvir artigo
Ficha técnica e números-chave
ParâmetroDados
Fonte originalHabr AI ↗
Editor-chefe
Dado-chave #111 camadas adicionais antes das 32 camadas da Qwen, 18 milhões de instruções sem erros
Sistema de arquivosaté 512 arquivos, cerca de 53 000 tokens
Dado-chave #3Checkpoint de 18,8 GB, cerca de 3200 tokens de processador por segundo em uma L4

Divyansh Agrawal publicou o Qwenputer: uma Qwen 3.5 4B comum, em cujos pesos foi compilado um processador RISC-V de 32 bits funcional. A memória dele são as próprias camadas Gated DeltaNet do modelo. Na aritmética de inteiros longos do conjunto NUPA, o modelo subiu de 48,6% para 100%, exatamente o mesmo resultado da Qwen com a ferramenta externa Python. Na arquitetura, porém, não há ambiente de execução externo, sandbox nem chamada de ferramentas: tudo é calculado nas passagens diretas. O código está no GitHub, e o modelo, no Hugging Face e no ModelScope.

Camadas DeltaNet como RAM endereçável

No Qwen3-Next e na Qwen 3.5, três de cada quatro camadas de atenção são construídas sobre o Gated DeltaNet, uma RNN linear. Cada cabeça guarda uma matriz de estado, que a regra delta atualiza. Agrawal percebeu que, se o gate for fixado em 1 (nada é esquecido), a intensidade de escrita beta em 1 (o valor antigo é substituído por inteiro) e as chaves forem codificadas em one-hot, a escrita sobrescreve exatamente uma linha, e a consulta devolve o conteúdo exato dela. O resultado é uma memória endereçável de verdade.

Para o custo de inferência, esse detalhe é importante. O estado de uma cabeça GDN não cresce, por mais longa que seja a conversa, enquanto o KV-cache da atenção tradicional cresce linearmente com o tamanho do contexto. A ideia de ligar a regra delta aos "fast weights" (pesos rápidos) é conhecida desde o trabalho de Schlag, Irie e Schmidhuber, de 2021. A novidade é que a memória passou a ser exata e funciona dentro de um modelo em operação, com confiabilidade suficiente para sustentar um processador inteiro.

Compilador no lugar do treinamento

Não há ajuste fino: o processador é descrito como um circuito de pequenos passos, como "ler registrador", "somar" e "saltar se zero", e o compilador transforma cada passo em um pedaço de camada do transformer. As cabeças de atenção fazem a busca, os blocos feed-forward fazem o cálculo, e as cabeças DeltaNet guardam registradores, memória e o contador de instruções. Cada instrução gera alguns tokens: ADDR indica a linha a ser escrita, VAL carrega o valor e STEP encerra a instrução. Esses tokens formam o rastro de execução.

O núcleo implementa RV32IM com a extensão Zba e um pequeno bloco para aritmética de números grandes. Ele ocupa 11 camadas antes das 32 camadas da própria Qwen, e os pesos originais permanecem iguais: o computador foi adicionado em dimensões e camadas extras. Para uso confiável, Agrawal aproveitou o formato de chamada de ferramentas que o modelo já conhece. A Qwen envia as instruções, o processador executa suas próprias camadas e escreve a resposta. Um pequeno driver, o RvChat, carrega o firmware no estado GDN e impede que os tokens do rastro entrem nas camadas da Qwen.

Principais números do projeto:

  • os riscv-tests oficiais foram aprovados, e os resultados dos programas coincidem com os do qemu;
  • 18 milhões de instruções em modo livre sem um único erro;
  • cerca de 230 000 posições de saída conferidas com a máquina de referência, sem divergências;
  • DeepMind div_big: 97,5% no Qwenputer, 95% na Qwen com Python, 72,5% na Qwen base;
  • DeepMind mul_big: 97,5% contra 100% com Python e 55% na base;
  • DeepMind mul_div_multiple_longer: 100% contra 97,5% com Python e 90% na base;
  • DeepMind add_or_sub_big: 97,5%, o mesmo resultado do Python, e 87,5% na base;
  • NUPA, inteiros longos: de 48,6% para 100%;
  • texto comum dentro do ruído: KL de 6e-4 para um nível de ruído de 5e-4.

Sistema de arquivos de 512 arquivos e o custo do experimento

Sobre a memória, o autor adicionou um armazenamento experimental com as operações put, append, get, list e delete. O nome do arquivo passa por hash e cai em um de 1024 slots de diretório no estado DeltaNet, enquanto o texto fica em outras cabeças, em cadeias de oito tokens por linha. Em caso de colisão, o slot seguinte é verificado, de modo que a busca leva de dois a três passos.

Cabem até 512 arquivos, cerca de 53 000 tokens. O estado pode ser salvo no fim de uma conversa e carregado na seguinte. Em perguntas sobre fatos que mudaram entre conversas, a Qwen acerta em 90% dos casos, contra 30% quando as conversas antigas são simplesmente coladas no contexto, e em 83,3% contra 78,9% com ferramentas de memória em Python.

O código dessa parte está no branch rv-store.

O preço é pago em recursos. O checkpoint pesa 18,8 GB, cerca do dobro da Qwen base, embora a maior parte desse volume seja preenchimento com zeros. O modelo não roda com um generate() simples: é preciso usar o RvChat. Cada instrução custa alguns tokens decodificados, e o executor em lote entrega cerca de 3200 tokens de processador por segundo em uma L4. Um cálculo que levaria milissegundos em uma CPU comum leva segundos.

Onde isso pode ser útil na prática

Hoje o Qwenputer não substitui uma sandbox com Python em velocidade. Em compensação, elimina uma camada inteira de infraestrutura: não são necessários servidor de ferramentas, isolamento nem round-trips de rede, e basta uma única placa de vídeo de 24 GB. Para sistemas agênticos, isso é interessante como caminho para cálculos determinísticos sem sair do modelo.

O autor planeja rodar Python via MicroPython dentro dos pesos, por meio da ferramenta python(), e acelerar o próprio processador. Outra linha de trabalho trata de segurança: ele escreveu duas continuações, uma sobre como modelos híbridos podem esconder raciocínio no estado da RNN e contornar o monitoramento da cadeia de raciocínio, e outra sobre pesos compilados como monitores embutidos que o modelo não consegue desligar.

Para executar: clone o repositório qwenputer, rode uv sync --extra hf, baixe divagr1925/Qwen3.5-4B-Qwenputer pelo Hugging Face CLI e inicie chipformer.rv.chat com o firmware calc-bridge.elf.

História

Perguntas frequentes sobre a notícia

O que se sabe sobre Camadas DeltaNet como RAM endereçável?

No Qwen3-Next e na Qwen 3.5, três de cada quatro camadas de atenção são construídas sobre o Gated DeltaNet, uma RNN linear. Cada cabeça guarda uma matriz de estado, que a regra delta atualiza. Agrawal percebeu que, se o gate for fixado em 1 (nada é esquecido), a intensidade de escrita beta em 1 (o valor antigo é substituído por inteiro) e as chaves forem codificadas em one-hot, a escrita sobrescreve exatamente uma linha, e a consulta devolve o conteúdo exato dela. O resultado é uma memória endereçável de verdade. Para o custo de inferência, esse detalhe é importante. O esta

O que se sabe sobre Compilador no lugar do treinamento?

Não há ajuste fino: o processador é descrito como um circuito de pequenos passos, como "ler registrador", "somar" e "saltar se zero", e o compilador transforma cada passo em um pedaço de camada do transformer. As cabeças de atenção fazem a busca, os blocos feed-forward fazem o cálculo, e as cabeças DeltaNet guardam registradores, memória e o contador de instruções. Cada instrução gera alguns tokens: ADDR indica a linha a ser escrita, VAL carrega o valor e STEP encerra a instrução. Esses tokens formam o rastro de execução. O núcleo implementa RV32IM com a extensão Zba e um p

O que se sabe sobre Sistema de arquivos de 512 arquivos e o custo do experimento?

Sobre a memória, o autor adicionou um armazenamento experimental com as operações put, append, get, list e delete. O nome do arquivo passa por hash e cai em um de 1024 slots de diretório no estado DeltaNet, enquanto o texto fica em outras cabeças, em cadeias de oito tokens por linha. Em caso de colisão, o slot seguinte é verificado, de modo que a busca leva de dois a três passos. Cabem até 512 arquivos, cerca de 53 000 tokens. O estado pode ser salvo no fim de uma conversa e carregado na seguinte. Em perguntas sobre fatos que mudaram entre conversas, a Qwen acerta em 90% do

ZK
Zhemal Khamidun — CPO da Alpina Digital, gerente de produto do AlpinaGPT. Cria produtos de IA desde 2019. O Hamidun News é um projeto pessoal que virou um agregador em produção com mais de 6.000 leitores.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
O que você acha?
Carregando comentários…