Минимум описания — максимум наглядности
Одна строка model = (784 -> 64) -> relu -> (64 -> 10) заменяет длинное описание с классом, инициализацией и прямым проходом.
MANGO — это язык описания топологии вычислений. В отличие от привычного программного подхода, где вы пишете код вычислений, MANGO описывает топологию вычислительного графа декларативно, позволяя создавать краткие и интуитивно понятные описания топологии нейронных сетей с использованием простых элементов и операций, таких как параллельное и последовательное соединение, мультиплексные и каскадные блоки с однотипными элементами
Одна строка model = (784 -> 64) -> relu -> (64 -> 10) заменяет длинное описание с классом, инициализацией и прямым проходом.
Основан на теории решеток: операции `+` и `*` коммутативны и ассоциативны, `->` правоассоциативна. Это позволяет рассуждать об архитектурах формально.
Система проверяет совместимость размерностей тензоров до запуска модели. Ошибки в архитектуре обнаруживаются при компиляции, а не в процессе исполнения.
Файлы .mng — это текст. Их легко версионировать, сравнивать, хранить в коллекции моделей и передавать между командами без лишних зависимостей.
MANGO — это дополнительный верхний слой абстракции над привычным кодом нейросетей, который в будущем может упростить массовые эксперименты с архитектурами, их хранение, индексированный поиск, генерацию и использование.
->, +, *, ^, списки, конкатенация, тождественное преобразование, копии, общие ссылки и индексная свертка описаны как стабильный контракт промежуточного представления.
Результатом компиляции может быть модуль torch.nn.Module, который можно запускать, использовать и сохранять как .pt или .mango.pt.
mango mermaid строит читаемые схемы потоков, а команда mango visualize создает графы исполнения в PNG, SVG или PDF.
mango-lsp добавляет диагностику, автодополнение и всплывающие подсказки; командный интерфейс закрывает проверку, вывод сведений, анализ, сравнение, генерацию кода и экспорт.
Вся мощь MANGO в пяти базовых операторах. Комбинируя их, вы описываете сложные архитектуры в несколько строк.
->
Последовательное соединение: выход одного слоя — вход другого
a -> b -> c+
Параллельное соединение с суммированием выходов и остаточной связью
{block} + 1*
Несколько копий блока с усреднением выходов
block * 4^
Несколько копий блока последовательно
block ^ 3пробел
Пробел соединяет блоки через torch.cat()
{a} {b}Сравните, сколько кода требуется для описания одной и той же архитектуры.
Mango держится на разделении: грамматика задает синтаксис, нормализованное промежуточное представление задает семантику, а сборщики превращают его в исполняемую модель, программный код и диаграммы.
Операторы Mango описывают не порядок строчек кода, а форму вычислительного графа: последовательность, ветвление, повторение, объединение и операции над тензорами.
Эти конструкции покрыты tests/mng,
эталонными снимками промежуточного представления
и примерами из src/examples/zoo.
Горизонтальная лента показывает каждую пару из раздела
README.md#Примеры:
Mango-запись архитектуры и соответствующую картинку результата.
Проверка ошибок, вывод моделей и интерактивная консоль для быстрых экспериментов.
Компиляция в исполняемую модель, генерация файла с программным кодом и тестовый запуск на центральном или графическом процессоре.
Текстовая схема, граф исполнения, параметры, операции с плавающей точкой и память.
.mango.pt как архив модели, экспорт в переносимый формат, загрузка архива и сравнение двух архитектур.
В коллекции моделей есть многослойный перцептрон, сверточная сеть, ResNet-подобные блоки, автоэнкодер, трансформер, стек декодера и упрощенная визуальная модель.
mango-lsp покрывает диагностику, автодополнение и всплывающие подсказки, чтобы .mng файлы были удобны в редакторе.
Эталонные снимки промежуточного представления фиксируют семантику суммы, конкатенации, списков, тождественного преобразования, ссылок, индексной свертки и блоков в стиле трансформера.
Компиляция, проверка, визуализация, диаграммы, анализ, сравнение, запуск, замер скорости, экспорт, загрузка и интерактивная консоль.
Диагностика ошибок, автодополнение и всплывающие подсказки в редакторах.
Эталонные снимки промежуточного представления, тесты форм, интеграционные проверки и коллекция моделей.
13 визуальных примеров от базовых слоев до декодера трансформера.
Минимальный рабочий цикл сегодня: написать .mng,
проверить, посмотреть диаграмму, запустить модель и экспортировать результат.
Начните с быстрого старта или изучите коллекцию моделей для вдохновения.