paint-brush
Ускорение диффузионных моделей с помощью TheStage AI: Исследование моделей Recraft 20B и Red Pandaк@thestage
Новая история

Ускорение диффузионных моделей с помощью TheStage AI: Исследование моделей Recraft 20B и Red Panda

к TheStage AI7m2024/11/26
Read on Terminal Reader

Слишком долго; Читать

В этой статье рассматривается ускорение моделей диффузии текста в изображение Recraft с использованием инструментов Python от TheStage AI. Мы изучаем проблемы оптимизации фирменных моделей и разработки эффективных конвейеров для оптимизации вывода PyTorch.
featured image - Ускорение диффузионных моделей с помощью TheStage AI: 
Исследование моделей Recraft 20B и Red Panda
TheStage AI HackerNoon profile picture
0-item
1-item


Recraft AI — это инструмент проектирования, работающий на основе фирменных моделей диффузии. Их новая модель Red Panda превосходит все существующие модели преобразования текста в изображение, включая Midjourney, DALL-E 3, FLUX. Recraft сочетает уникальный пользовательский опыт для дизайнеров с передовыми инструментами ИИ. Для поддержки миллионов пользователей модели диффузии требуют надежной инфраструктуры вывода — объединения мощного оборудования с эффективным программным обеспечением. В этой статье мы рассмотрим, как инструменты ускорения ИИ TheStage помогли инженерам и исследователям ИИ Recraft достичь двукратного увеличения производительности на графических процессорах Nvidia с помощью интуитивно понятного интерфейса Python!

Введение

Модели диффузии показали исключительные результаты в последние годы для генерации контента, включая изображения, музыку, видео и 3D-сетки. Эти модели используют затраты времени на вычисление вывода для итеративного улучшения результатов генерации, слегка обновляя вывод на каждом шаге вывода. Теперь мы можем увидеть аналогию в LLM, которые используют рассуждения через многошаговый вывод для предоставления высококачественного ответа.


В TheStage AI мы создаем общую математическую структуру для произвольных моделей PyTorch для полностью автоматической обработки сложного потока ускорения модели. Наша система автоматически обнаруживает существующие оптимизации на вашем оборудовании (квантизация, разрежение) и выбирает для каждого слоя подходящий алгоритм для достижения наилучшего качества с желаемым размером модели и ограничениями по задержке или нахождения наилучшего ускорения с ограниченными ограничениями по качеству. Это сложная математическая задача, которую мы можем решить высокоэффективным способом! В этой статье рассматривается, как мы применяем эти инструменты в рамках нашего партнерства с Recraft AI.


При разработке наших инструментов мы решили руководствоваться следующими принципами:


  • Аппаратная настройка. Высококачественные продукты ИИ уже имеют свою предпочтительную инфраструктуру
  • Сохранение качества. Высококачественные продукты ИИ не могут допустить ухудшения качества.
  • Конфиденциальность. Высококачественные продукты ИИ хотят сохранить конфиденциальность своих технологий и работать с инструментами на собственной инфраструктуре.
  • Произвольные DNN. Высококачественные продукты ИИ могут использовать разработанные внутри компании архитектуры, тогда как общедоступные инструменты ускорения для моделей с открытым исходным кодом не могут справиться со сложными архитектурами DNN для получения корректных результатов.
  • Pytorch. Самый популярный и удобный фреймворк для многих инженеров ИИ.


Учитывая эти исходные условия, мы стремились создать инструменты со следующими характеристиками:


  • Управляемое ускорение. Мы формулируем оптимизацию вывода как проблему оптимизации бизнеса, позволяя клиентам указывать желаемый размер модели, задержку или качество для своих данных.
  • Простая компиляция. Компиляция созданных моделей для эффективного аппаратного выполнения требует всего одной строки кода. Мы также предоставляем простой интерфейс для обработки разрывов графа.
  • Быстрый холодный старт. Для достижения максимально быстрого холодного старта мы включаем сохранение скомпилированных моделей. Вот почему мы не используем JIT-компиляторы.
  • Простое развертывание. Развертывание оптимизированной модели должно быть таким же простым, как и развертывание исходной.


Модели диффузии текста в изображение

Простая визуализация процесса шумоподавления.


На каждой итерации процесса диффузии нейронная сеть шумоподавляет изображение в скрытом пространстве вариационного автокодировщика. Затем вновь полученное изображение снова смешивается с шумом, но с постепенно уменьшающимся весом. Во время начальных итераций модель диффузии рисует основную сцену, используя значительный вес шума для внесения существенных улучшений. На более поздних итерациях она уточняет высокочастотные детали. Это наблюдение позволяет нам проектировать определенные конвейеры ускорения, стратегически распределяя пропускную способность сети по слоям от итерации к итерации, сохраняя качество. Однако такое распределение требует специализированных инструментов, которые сочетают математические идеи со звуковой инженерией — вот где TheStage AI может оказать существенную помощь!


Когда мы смотрим на облака, фокусируясь на определенных формах, наш разум может различать случайные формы, которые напоминают наши мысли. Это явление иллюстрирует, как наш мозг распознает закономерности в шуме, находя элементы, которые соответствуют нашему ментальному контексту. Аналогичным образом, диффузионные модели используют эту концепцию во время своей начальной итерации, выбирая закономерности из шума, чтобы создать предварительный набросок желаемого изображения.


Модели диффузии. Ускорение и сжатие.

Ускоряющиеся модели диффузии можно рассматривать как ускорение произвольных DNN, но нам нужно учитывать определенные проблемы. Например, статическое квантование, которое обычно обеспечивает значительное ускорение, вносит проблему в модели диффузии, поскольку распределения активации изменяются от итерации к итерации. Чтобы решить эту проблему, нам нужно либо правильно оценить оптимальные значения для всех итераций, либо использовать разные настройки квантования для каждой итерации.


Модели диффузии сложно обучить и достичь высокой производительности. Тем не менее, результаты , продемонстрированные командой Recraft, превосходят все современные модели преобразования текста в изображение . Проверка деградации таких моделей может быть сложной, поэтому крайне важно использовать методы ускорения, которые сохраняют исходную семантику признаков. Алгоритмы квантования могут быть хорошим выбором, если они могут справиться с проблемой изменения распределений активации. Давайте рассмотрим наши автоматические конвейеры, которые мы опишем в следующих разделах.

Профилирование

Профилирование заданной модели с определенными данными позволяет:


  • Определите размер каждого параметра
  • Определить применимые алгоритмы квантования, разрежения и обрезки для каждого базового блока.
  • Оцените задержку для отдельных блоков с различной схемой памяти
  • Соберите всю собранную информацию для ANNA (автоматизированный ускоритель нейронных сетей)

Автоматическое сжатие и ускорение

После того, как профилировщик соберет все необходимые данные, мы можем запустить нашу доску ANNA и переместить ползунок для создания различных оптимизированных версий модели. Затем наши пользователи могут выбрать лучших кандидатов на основе компромисса между качеством и стоимостью вывода. Наши инструменты обрабатывают эти субъективные решения о качестве простым способом.


TheStage AI ANNA. Перемещайте ползунок, чтобы настроить размер модели или задержку с минимальным ухудшением качества!

Слияние и компиляция операций

Как упоминалось ранее, мы не используем JIT-компиляцию, поскольку она увеличивает время холодного старта нового узла. Мы также не используем готовые компиляторы. Вместо этого мы компилируем нашу собственную сложную ускоренную конфигурацию, которая может смешивать различные алгоритмы. Чтобы добиться этого, мы разработали наш собственный внутренний протокол для определения слоев с ускорением DNN аппаратно-независимым способом. Одним из ключевых преимуществ фреймворка ускорения ИИ TheStage является то, что одна контрольная точка может быть скомпилирована для широкого спектра оборудования, решая проблему кроссплатформенной совместимости для программного обеспечения ИИ. Эта функция будет особенно важна для развертывания периферийных устройств при разработке приложений.


Цели компиляторов DNN:


  • Упрощение графа. Упрощение графа выполнения посредством объединения математических операций, что сокращает время вывода.
  • Управление памятью. Рассчитывайте объем памяти, необходимый для каждой операции, и управляйте планированием распределения с эффективным повторным использованием памяти.
  • Оптимальная реализация. Профилирование оптимальной реализации для каждой базовой операции — сложная задача, поскольку наилучшая реализация может потребовать определенных схем памяти, что приведет к анализу межуровневых соединений.
  • Планирование операций. Создание графика операций для оптимизированного графика выполнения.
  • Сериализация. Сохраните всю эту информацию, чтобы избежать перекомпиляции модели при последующих запусках.


Последовательные операции можно объединить в объединенное ядро. Вместо копирования выходных данных первой операции в глобальную память объединенное ядро оценивает вторую операцию непосредственно в регистре локальной памяти. Это значительно ускоряет вывод, поскольку передача памяти часто занимает больше времени, чем фактические вычисления. Однако не все последовательности операций можно объединить — некоторые из них полностью несовместимы с объединением. Для поэлементных операций объединенные ядра можно генерировать автоматически. Например, инструмент NVFuser от Nvidia может генерировать ядра для любой последовательности поэлементных операций.

Развертывание и обслуживание

Серверы вывода и конвейеры автоматического масштабирования играют важную роль в экономически эффективной и производительной обработке входящих запросов. Они также могут включать конкретную группировку запросов и сбор статистики для настройки предиктивного масштабирования для автомасштаберов. В наших будущих статьях мы более подробно обсудим эффективные серверы вывода!

Результаты

Применяя весь конвейер, мы можем достичь производительности, которая лучше, чем у компилятора PyTorch ( torch.compile ) и, конечно, значительно лучше, чем float16 жадное выполнение PyTorch. Более того, поскольку компилятор PyTorch использует подход JIT-компиляции при каждой инициализации модели, он требует перекомпиляции для большого количества входных размеров, что делает холодный старт достаточно долгим для практических приложений, где задержка имеет большое значение.


Преимущества для бизнеса

Вот основные бизнес-преимущества ускорения продукта Recraft:


  • Снижение затрат на инфраструктуру за счет обслуживания вдвое большего числа пользователей с использованием того же оборудования
  • Улучшенный пользовательский интерфейс благодаря более быстрому времени отклика при генерации изображений
  • Возможность обслуживания большего количества одновременных пользователей во время пиковых нагрузок
  • Конкурентное преимущество за счет более быстрой доставки услуг


Инструменты оптимизации ИИ TheStage позволяют нам ускорить преобразование текстовых моделей в изображения без ухудшения качества, создавая лучший пользовательский опыт для наших клиентов.


Генеральный директор Recraft Анна Вероника Дорогуш

Благодарности

Эти результаты обеспечивают отличную проверку наших инструментов и исследований в области продуктов с высокой рабочей нагрузкой. Команда TheStage AI продолжает работать над достижением еще большей производительности. Чтобы достичь этого, мы сотрудничаем с выдающимися партнерами! Мы глубоко признательны:


  • Recraft CEO Anna Veronika за плодотворное сотрудничество. Мы рады быть даже небольшой частью их большого пути в предоставлении лучших инструментов дизайна.
  • Руководитель направления искусственного интеллекта Recraft Павлу Остякову за его экспертизу в области DNN, ценные отзывы об инструментах и за постановку сложных целей для нашего совместного проекта.
  • Команде Recraft AI за создание этого замечательного продукта. Изображения в этой статье были созданы с помощью Recraft!
  • Команде Nebius за постоянную поддержку и превосходную инфраструктуру GPU для наших исследований.

Контакты/Ресурсы

Не стесняйтесь обращаться к нам по любым вопросам! Мы можем помочь вам сократить расходы на инфраструктуру вывода!

Наш адрес электронной почты: [email protected]

Главная страница TheStage AI: thestage.ai

Платформа оптимизации вывода TheStage AI: app.thestage.ai