NVIDIA выпустила VIBETENSOR — программный стек для исследований в области глубокого обучения с открытым исходным кодом. Система разработана с помощью программных агентов, работающих на основе больших языковых моделей, под руководством человека.
Система задаёт конкретный вопрос: могут ли программные агенты создать согласованную среду выполнения для глубокого обучения, которая охватывает API Python и JavaScript вплоть до компонентов среды выполнения C++ и управления памятью CUDA, и проверять её только с помощью инструментов?
Архитектура от фронтенда до среды выполнения CUDA
VIBETENSOR реализует библиотеку тензоров в стиле PyTorch с ядром C++20 для CPU и CUDA, обёртку на Python, подобную torch, через nanobind, и экспериментальный интерфейс Node.js / TypeScript.
Система нацелена на Linux x86_64 и графические процессоры NVIDIA через CUDA. Сборки без CUDA намеренно отключены.
Основной стек включает:
* собственную систему тензоров и хранения;
* упрощённый диспетчер схем;
* механизм обратного режима autograd;
* подсистему CUDA со потоками, событиями и графами CUDA;
* кэширующий распределитель с упорядоченными потоками и диагностикой;
* стабильный ABI C для динамически загружаемых плагинов операторов.
Фронтенды в Python и Node.js используют диспетчер C++, реализацию тензоров, механизм autograd и среду выполнения CUDA.
Интерфейсы и точки расширения
VIBETENSOR поддерживает импорт и экспорт DLPack для тензоров CPU и CUDA, предоставляет загрузчик и сохранялку Safetensors для сериализации C++20.
Механизмы расширяемости включают:
* переопределения на уровне Python, вдохновлённые torch.library;
* версионированный C plugin ABI;
* хуки для пользовательских ядер GPU, написанные на Triton и в библиотеках шаблонов CUDA, таких как CUTLASS.
Разработка с помощью ИИ
VIBETENSOR был создан с использованием программных агентов, работающих на основе больших языковых моделей, в качестве основных авторов кода под руководством человека.
Примерно за 2 месяца люди определили цели и ограничения, а агенты предложили изменения кода и выполнили сборку и тестирование для их проверки.
Разработка основана на инструментах и ориентирована на агентов. Люди задавали общие цели, а агенты предлагали изменения и проверяли их с помощью CTest, pytest, дифференциальных проверок против PyTorch, диагностики распределителя и длительных тренировок.
Ключевые выводы
* VIBETENSOR — это система глубокого обучения, созданная с помощью программных агентов, работающих на основе больших языковых моделей. Она реализована в стиле PyTorch и использует CUDA как основное требование.
* Архитектура системы включает в себя ядро C++20, диспетчер схем, механизм обратного режима autograd, подсистему CUDA и другие компоненты.
* Разработка основана на инструментах и ориентирована на агентов. Люди задают общие цели, а агенты предлагают изменения и проверяют их с помощью различных инструментов.
* Ядра, созданные с помощью ИИ, обеспечивают значительное ускорение, но полное обучение работает медленнее, чем в PyTorch.
Подробнее в статье и на GitHub. Подписывайтесь на нас в Twitter, присоединяйтесь к нашему ML SubReddit и подписывайтесь на нашу рассылку. А если вы в Telegram, присоединяйтесь к нам и там.
1. Какие технологии и инструменты используются в системе VIBETENSOR для глубокого обучения?
В системе VIBETENSOR используются технологии и инструменты, такие как ядро C++20 для CPU и CUDA, обёртка на Python, подобная torch, через nanobind, экспериментальный интерфейс Node.js / TypeScript, а также CUDA для работы с графическими процессорами NVIDIA.
2. Как программные агенты участвуют в разработке VIBETENSOR?
Программные агенты, работающие на основе больших языковых моделей, участвуют в разработке VIBETENSOR в качестве основных авторов кода под руководством человека. Они предлагают изменения кода, выполняют сборку и тестирование для их проверки.
3. Какие механизмы расширяемости предоставляет VIBETENSOR?
VIBETENSOR предоставляет механизмы расширяемости, такие как переопределения на уровне Python, вдохновлённые torch.library, версионированный C plugin ABI и хуки для пользовательских ядер GPU, написанные на Triton и в библиотеках шаблонов CUDA, таких как CUTLASS.
4. Какие ключевые выводы можно сделать о системе VIBETENSOR на основе представленной статьи?
Ключевые выводы о системе VIBETENSOR:
* VIBETENSOR — это система глубокого обучения, созданная с помощью программных агентов, работающих на основе больших языковых моделей.
* Архитектура системы включает в себя ядро C++20, диспетчер схем, механизм обратного режима autograd, подсистему CUDA и другие компоненты.
* Разработка основана на инструментах и ориентирована на агентов.
* Ядра, созданные с помощью ИИ, обеспечивают значительное ускорение, но полное обучение работает медленнее, чем в PyTorch.
5. Какие цели и ограничения были определены для разработки VIBETENSOR, и как программные агенты помогли в их достижении?
За 2 месяца люди определили цели и ограничения для разработки VIBETENSOR. Программные агенты предложили изменения кода и выполнили сборку и тестирование для их проверки. Это позволило ускорить процесс разработки и оптимизировать систему для глубокого обучения.