GPU.js преобразует простые функции JavaScript в шейдерный код, чтобы выполнять их на GPU в браузерах и Node.js, а при необходимости переключается на обычный JavaScript.
chenglou/handwired
Исследовательский проект, который компилирует обычные конструкции управления JavaScript в дифференцируемую сеть матричных умножений с весами, заданными вручную.
- Звёзды
- 1,773
- Форки
- 146
- Открытые issues
- 9
- Последний коммит
- 3 дня назад
Что это?
Handwired преобразует обычные программы на JavaScript с ветвлениями if-else, циклами и состоянием в нейросеть, состоящую только из матричных умножений и ReLU над числами с плавающей точкой. Условия переписываются в виде арифметических операций: например, вычисляются обе ветви, а затем выбирается нужная с помощью индикатора, полученного на основе ReLU. В результате сеть в точности воспроизводит вывод исходной программы.
Поскольку веса задаются вручную, а не обучаются, обучение не требуется, и вся программа остаётся дифференцируемой. Вычисления можно выполнять в обычном JavaScript или на WebGPU — это позволяет применять к этим простым операциям уже существующие методы оптимизации для GPU.
Проект исследует такие варианты применения, как снятие фиксации весов для обучения, подключение программы с фиксированными весами к универсальной нейросети для сквозного обучения и запуск кода на JavaScript в стиле однопоточных программ с параллелизмом уровня GPU. Среди демонстраций — поиск по JSON с охватом 100k документов. Репозиторий настроен для работы с Bun, а демонстрации также доступны онлайн.
Ключевые возможности
- 01Преобразует if-else, циклы и состояние в матричные умножения и ReLU
- 02Не требует обучения, поскольку веса задаются вручную
- 03Сохраняет дифференцируемость всей программы
- 04Работает в обычном JavaScript или на WebGPU
- 05Включает интерактивные демонстрации и пример поиска по JSON с охватом 100k документов
Сценарии использования
- Изучение способов представления программ в виде нейросетей
- Эксперименты с обучением нейросети при использовании зафиксированной логики программы
- Исследование параллельного выполнения обычного кода JavaScript на GPU
Быстрый старт
- 1
Клонируйте репозиторий
git clone - 2
Установите зависимости
bun install - 3
Запустите демонстрации локально
bun start
Что важно знать
- Это исследовательский проект, предназначенный для демонстрации концепции, а не библиотека для использования в продакшене.
- Для запуска демонстраций требуется среда выполнения Bun, и она не указана как необязательная.
Темы
Частые вопросы
- Что такое handwired?
- Исследовательский проект, который компилирует обычные конструкции управления JavaScript в дифференцируемую сеть матричных умножений с весами, заданными вручную. Handwired преобразует обычные программы на JavaScript с ветвлениями if-else, циклами и состоянием в нейросеть, состоящую только из матричных умножений и ReLU над числами с плавающей точкой. Условия переписываются в виде арифметических операций: например, вычисляются обе ветви, а затем выбирается нужная с помощью индикатора, полученного на основе ReLU. В результате сеть в точности воспроизводит вывод исходной программы.
- handwired можно использовать бесплатно? Какая у него лицензия?
- handwired распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- handwired всё ещё поддерживается?
- Активно поддерживается. Последний коммит в handwired — 17 окт. 2026 г..
- Для чего можно использовать handwired?
- Изучение способов представления программ в виде нейросетей Эксперименты с обучением нейросети при использовании зафиксированной логики программы Исследование параллельного выполнения обычного кода JavaScript на GPU
- Как установить handwired?
- Клонируйте репозиторий: git clone Установите зависимости: bun install Запустите демонстрации локально: bun start
- Где скачать handwired?
- Исходный код и инструкции по установке — на GitHub: https://github.com/chenglou/handwired
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Open-source инструмент для удаления фона, который полностью работает в браузере через WebGPU или WebAssembly и не загружает изображения на сервер.
Быстрый универсальный инструментарий для JavaScript и TypeScript: runtime, bundler, тестовый раннер и пакетный менеджер в одном исполняемом файле.
Фреймворк с открытым исходным кодом для создания универсальных нативных приложений на React, работающих на Android, iOS и в вебе.
Очень быстрый сборщик JavaScript, TypeScript, JSX и CSS с CLI, API для JavaScript и Go.
Высокопроизводительная JavaScript-библиотека для создания интерактивных веб-карт с тайлами, векторными данными и маркерами из любых источников.