Создайте простую встроенную DSL для AI с ThunderKittens
Команда разработчиков гордится своими открытыми вкладками в области искусственного интеллекта, однако они отмечают, что многие воспринимают FlashAttention как нечто инопланетное. На недавней конференции NeurIPS группа старалась донести ключевые идеи до аудитории, но разрыв между красивыми изображениями и реальной работой с CUDA остается слишком большим. В ответ на это была разработана простая библиотека, получившая название ThunderKittens, которая призвана облегчить выражение ключевых технических идей.
ThunderKittens выбрали не случайно — название должно быть милым и привлекательным, противопоставляясь многим серьезным названиям в этой области. Основная идея заключается в том, что необходимо поддерживать занятыми тензорные ядра, так как они составляют 94% вычислительных мощностей на H100. В ThunderKittens основным объектом является матрица, размер которой соответствует размеру тензорного ядра.
API ThunderKittens напоминает PyTorch, что делает его более доступным для специалистов в области ИИ. Разработчики стремятся использовать все возможности хоста (CUDA или HIP), не скрывая, как работают ускорители. Это важно, поскольку процессоры ИИ постоянно меняются, и для их оптимального использования необходимо выходить за рамки программных абстракций.
ThunderKittens представляет собой встроенную DSL, находящуюся между простотой встроенного CUDA и фокусом Triton на ядрах ИИ. Если вы знакомы с CUDA, вы сможете легко «скомпилировать» ThunderKittens в своем сознании. Разработчики уже использовали ThunderKittens в своих предыдущих работах и решили поделиться им с общественностью.
На графических процессорах 4090 и A100 производительность ThunderKittens сопоставима с FA2, при этом для достижения результатов требуется всего несколько строк кода. На H100 ThunderKittens работает быстрее, чем FA2, что показывает, что чистота кода не противоречит скорости. Команда разработала множество других ядер с использованием ThunderKittens, и некоторые из них показали результаты, которые не удалось достичь в Triton.
Разработчики уверены, что участие в двухчасовой сессии по CUDA позволило многим пользователям написать код, что является шагом к упрощению использования ThunderKittens. Они подчеркивают, что проект является художественным и не гарантируют, что учтут все отзывы пользователей. На данный момент ThunderKittens служит для их удовольствия и полезен для команды, и они надеются, что он поможет сделать ключевые идеи более понятными.
Для большей наглядности был опубликован интегрированный вариант с проектом NanoGPT, который также используется в обучении. Это сотрудничество с одним из лучших коммуникаторов в области ИИ, и разработчики рады расширить возможности проекта.
Ускорьте внимание с FlashAttention-3: новые возможности и производительность
Together AI улучшает сервис дообучения с поддержкой инструментов
Похожие статьи
Ускорьте доставку ПО с автоматизацией QA через Amazon Nova Act
Узнайте, как Amazon Nova Act ускоряет автоматизацию QA и улучшает процессы доставки ПО.
Автоматизируйте сбор доказательств для аудитов с помощью ИИ
Узнайте, как автоматизировать сбор доказательств для аудитов с помощью ИИ.
Создайте систему обнаружения солнечных вспышек с помощью LSTM
Узнайте, как создать систему обнаружения солнечных вспышек с помощью LSTM и данных STIX.