divagr18/qwenputer

Экспериментальная модель: компилирует 32-битный процессор RISC-V в 11-слойный трансформер, размещаемый перед собственными слоями Qwen3.5-4B, использует состояние Gated DeltaNet модели Qwen в качестве памяти и позволяет модели фактически выполнять программы на C и MicroPython во время прямого прохода, вычисляя арифметику с большими числами (умножение и деление) с точностью до каждого разряда.

Экспериментальная модель: компилирует 32-битный процессор RISC-V в 11-слойный трансформер, размещаемый перед собственными слоями Qwen3.5-4B, использует состояние Gated DeltaNet модели Qwen в качестве памяти и позволяет модели фактически выполнять программы на C и MicroPython во время прямого прохода, вычисляя арифметику с большими числами (умножение и деление) с точностью до каждого разряда.

Количество звёзд: 309 (+80 / 24 ч)

Обоснование

  • Веса процессорного слоя не обучаются, а вычисляются компилятором напрямую; Qwen по-прежнему генерирует вызовы инструмента calc, но внешний исполнитель отсутствует: внутренний вычислительный слой модели считывает вызов, выполняет вычисления на процессоре, после чего модель сама посимвольно выводит результат. По словам автора, модель проходит официальные тесты riscv-tests, воспроизводя около 23 тысяч выходных позиций без ошибок, а расхождение KL с исходной моделью составляет 6e-4
  • Приведённое автором сравнение (жадное декодирование, 40 задач на группу): точность синтетической целочисленной арифметики выросла с 75.0 у базовой модели до 97.5, точность задачи DeepMind mul_big выросла с 55.0 до 97.5, что сопоставимо с результатами базовой модели, вызывающей интерпретатор Python на хост-машине
  • Также существуют экспериментальные ветки: версия NPU с инструкцией скалярного произведения позволяет запускать внутри модели маленькую модель stories260K с 26 тысячами параметров; версия с файловой системой хранит до 512 файлов в состоянии DeltaNet, при этом, по словам автора, точность задач на межсессионное воспоминание выросла с 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 результаты сопоставимы, на длинных цепочках выражений базовая модель всё ещё лидирует, а модель может многократно перепроверять уже полученные результаты, пока не исчерпает лимит токенов; в таблице для версии CHIP-8 приведены лучшие результаты по каждому бенчмарку, достигнутые на этапах разработки
  • Примеры запускаются на GPU NVIDIA; указанная автором скорость составляет около 3,200 токенов траектории в секунду на L4, а генерация одного токена истории в версии NPU занимает около 41 секунд; код распространяется под лицензией MIT, веса — по модифицированной лицензии Apache-2.0 для Qwen3.5-4B, репозиторий создан 19 10

Открыть

GitHub

Открыть последние новости ИИ