| Crates.io | rustyasg |
| lib.rs | rustyasg |
| version | 0.2.0 |
| created_at | 2025-09-02 13:28:08.541395+00 |
| updated_at | 2026-01-20 14:33:53.601314+00 |
| description | A deep learning framework in Rust, focusing on an Abstract Semantic Graph (ASG) for autograd and Transformer architectures. |
| homepage | |
| repository | https://github.com/Xzdes/RustyAsg |
| max_upload_size | |
| id | 1821141 |
| size | 1,924,906 |

RustyASG — это современный экспериментальный фреймворк для глубокого обучения на Rust с уникальной возможностью интерактивной визуализации графа в реальном времени. Его ключевая особенность — архитектура, построенная вокруг Абстрактного Семантического Графа (ASG), которая обеспечивает максимальную производительность, гибкость и беспрецедентный контроль над моделью.
Вместо немедленного выполнения операций (eager execution), как в PyTorch, RustyASG сначала строит полный граф вычислений. Этот граф затем может быть статически проанализирован, оптимизирован и выполнен на различных бэкендах, включая высокопроизводительные вычисления на GPU с помощью wgpu.
RustyASG придерживается нескольких ключевых принципов:
Tensor API позволяет интуитивно строить граф вычислений.egui), без внешних зависимостей (не требуется установка Graphviz).ndarray.wgpu (WebGPU).Shape Inference) для проверки корректности графа до его выполнения.Архитектура фреймворка строго разделена на независимые модули, взаимодействующие через четко определенные интерфейсы.
┌───────────────────────────────────┐
│ Пользовательский API (Tensor) │
└─────────────────┬─────────────────┘
│ (строит граф)
V
┌───────────────────────────────────┐
│Абстрактный Семантический Граф (ASG) ◀───┐ (отправляется в GUI)
│ (описание вычислений) │ │
└─────────────────┬─────────────────┘ │
│ │
┌─────────┴─────────┐ │
│ │ │
V V V
┌───────┴───────┐ ┌─────┴───────┐ ┌───┴───┐
│ Autograd │ │ Runtime │ │ GUI │
│ (граф -> граф)│ │ (исполнение)│ │ Viewer│
└───────────────┘ └──────┬──────┘ └───────┘
│
┌─────────┴─────────┐
│ │
V V
┌─────┴─────┐ ┌─────┴─────┐
│CPU Backend│ │GPU Backend│
└───────────┘ └───────────┘
cargo (обычно устанавливается вместе с Rust)Клонируйте репозиторий:
git clone https://github.com/Xzdes/RustyAsg.git
cd RustyAsg
Выберите режим запуска:
А) Стандартный запуск (только вычисления в консоли):
cargo run --release
Использование флага --release настоятельно рекомендуется для получения максимальной производительности.
Б) Запуск с интерактивной визуализацией:
cargo run --release -- --visualize
ВАЖНО: Двойной дефис (--) необходим, чтобы передать флаг --visualize вашей программе, а не cargo.
При запуске с флагом --visualize вы увидите два окна:
[GUI] Запуск GUI в основном потоке...
[COMPUTATION] Запуск вычислительного потока...
--- Демонстрация полного цикла обучения RustyASG ---
[Config] Backend: GPU (wgpu)
[1] Граф прямого прохода успешно построен.
[2] Анализ форм (Shape Inference) для прямого графа завершен.
[3] Граф градиентов построен и проанализирован.
[+] Отправка графа прямого прохода в окно визуализации...
[4] Данные, веса и оптимизатор инициализированы.
--- НАЧАЛО ЦИКЛА ОБУЧЕНИЯ ---
Эпоха: 1 , Потери (Loss): 1.528345
Эпоха: 2 , Потери (Loss): 1.377164
...
Эпоха: 15, Потери (Loss): 0.370134
--- ОБУЧЕНИЕ ЗАВЕРШЕНО ЗА 3.25s ---
(Замените screenshot.png на путь к вашему скриншоту)

Проект активно развивается. Вот некоторые из ключевых направлений для будущей работы:
LayerNorm: Градиент для параметров gamma и beta в autograd реализован некорректно и временно отключен в примере. Это главная задача для дальнейшей работы.autograd для поддержки большего числа операций.Adam, AdamW).Приветствую любой вклад в развитие RustyASG! Если вы хотите помочь, пожалуйста, ознакомьтесь с CONTRIBUTING.md (пока не создан) или просто:
git checkout -b feature/my-new-feature).git commit -am 'Add some feature').git push origin feature/my-new-feature).Также не стесняйтесь создавать Issues для сообщений об ошибках или предложений по улучшению.
Этот проект распространяется под лицензией MIT. Подробности смотрите в файле LICENSE.