Rusty Gradients: A Full-Stack AI Toolkit in Rust
Rusty Gradients — это комплексный, высокопроизводительный фреймворк для глубокого обучения, написанный на Rust. Он предоставляет все инструменты для создания, обучения и развертывания моделей-трансформеров (GPT), объединяя в себе три ключевых продукта:
- Интерактивный CLI: Полноценное приложение для проведения AI-экспериментов прямо из командной строки.
- Модуль WebAssembly (WASM): Высокопроизводительное ядро для запуска моделей машинного обучения непосредственно в браузере.
- Гибкая библиотека (крейт): Мощная основа для создания кастомных нейронных сетей в ваших собственных Rust-проектах.
Проект построен вокруг безопасного и эффективного движка автоматического дифференцирования (autograd), что делает его надежным и быстрым решением для любых задач.
Ключевые особенности
- 🚀 Многоцелевое развертывание: Используйте один и тот же код для CLI-инструментов, веб-приложений (через WASM) и бэкенда на Rust.
- 🧠 End-to-End GPT: Обучайте полноценную GPT-модель на ваших текстовых данных и генерируйте текст.
- 📦 Персистентная База Знаний: Автоматическое сохранение экспериментов, истории обучения и весов модели в файл
knowledge_base.json. - ⏳ Возобновляемое обучение: Прерывайте и продолжайте длительные сеансы обучения без потери прогресса. Модель автоматически загрузит последний чекпоинт.
- ⚛️ Ядро Autograd: В основе лежит надежный движок автоматического дифференцирования с динамическим графом вычислений.
- 🧩 Современная архитектура: Включает все необходимые строительные блоки для Трансформеров:
Linear,LayerNorm,MultiHeadAttention,Embedding.
Вариант 1: Использование как CLI-инструмента для AI-экспериментов
Это основной и самый простой способ использовать проект. Вы сможете обучать модель на тексте и генерировать новый без написания единой строки кода.
Настройка
-
Клонируйте репозиторий:
-
Подготовьте данные для обучения: Создайте файл
input.txtв корне проекта и поместите в него текст, на котором будет учиться модель. Для старта подойдет небольшой текст на английском.
Использование
Обучение модели
Используйте команду train, чтобы начать обучение. Прогресс будет автоматически сохраняться.
# Запустить обучение на 10 000 шагов
Если вы прервете процесс (Ctrl+C), просто запустите команду снова, и обучение продолжится с последнего сохраненного чекпоинта.
Генерация текста
После обучения используйте команду generate, чтобы увидеть, чему научилась модель.
# Сгенерировать 200 символов, начиная с фразы "There should be"
Вариант 2: Сборка и использование в WebAssembly (WASM)
Rusty Gradients может быть скомпилирован в высокопроизводительный WASM-модуль для запуска нейронных сетей прямо в браузере.
Настройка
-
Установите
wasm-pack: -
Соберите WASM-пакет: В корневой папке проекта выполните команду:
Эта команда создаст папку
pkg, содержащую скомпилированный.wasmфайл и JavaScript-обертку для него.
Использование в JavaScript
Скопируйте папку pkg в ваш веб-проект и используйте ее следующим образом:
// main.js
import init from './pkg/rusty_gradients.js';
;
Вариант 3: Использование как библиотеки в Rust
Вы можете использовать rusty-gradients как зависимость для построения собственных нейронных сетей.
Настройка
Добавьте крейт в ваш Cargo.toml:
[]
= { = "https://github.com/Xzdes/RustyGradients" }
# или
= "0.1.0"
Пример использования
Вот как можно обучить простую MLP-сеть на задаче XOR:
use ;
use ;
use Tensor;
use mse_loss;
План развития
- Оптимизация производительности: Замена ручных циклов на параллельные вычисления с
rayon. - Улучшение токенизатора: Переход от символьного к Byte Pair Encoding (BPE).
- Гибкая конфигурация CLI: Вынос гиперпараметров модели в конфигурационный файл (
config.toml).
Лицензия
Этот проект распространяется под лицензией MIT.