Свежая выжимка ml и AI статей - каждый день
В последние годы диффузионные модели (DM) стали стандартом для генеративного моделирования, превзойдя по качеству такие подходы, как вариационные автокодировщики (VAEs), генеративно-состязательные сети (GANs) и автокодировщики с маскированием (Auto-Regressive Models). Эти модели нашли широкое применение в различных задачах, включая генерацию изображений, видео, 3D-моделей и аудио, а также в редактировании изображений и видео. Однако, несмотря на их выдающиеся результаты, диффузионные модели, особенно те, которые основаны на трансформерах (DiTs), требуют значительных вычислительных ресурсов, что становится особенно актуальным при генерации видео высокого разрешения и длинной продолжительности.
В этой статье мы рассмотрим метод адаптивного кэширования (AdaCache), предложенный в исследовании Kumara Kahatapitiya и его коллегами, который позволяет ускорить генерацию видео с использованием DiTs без необходимости дополнительного обучения модели. Этот подход основан на идее, что не все видео одинаково сложны для генерации, и некоторые могут достигать приемлемого качества с меньшим количеством шагов денойзинга, чем другие.
Ключевой идеей AdaCache является то, что разные видео имеют различную сложность. Видео с высокочастотными текстурами и значительным движением требуют больше вычислительных ресурсов для достижения высокого качества, в то время как более простые видео (например, с однородными текстурами или статичными сценами) могут быть сгенерированы с меньшими затратами. Это наблюдение подчеркивает необходимость в адаптивном подходе к генерации видео, который бы учитывал специфику каждого видео.
AdaCache предлагает кэшировать вычисления внутри блоков трансформера (например, выходы внимания или MLP), чтобы их можно было повторно использовать в последующих шагах денойзинга. Кэширование происходит на основе метрики расстояния, которая измеряет скорость изменения между предыдущими и текущими представлениями. Если изменение велико, кэширование на длительный период не производится, чтобы избежать использования несовместимых представлений.
Кэширование резидуальных вычислений: Внутри каждого блока трансформера, AdaCache кэширует резидуальные вычисления (например, результаты внимания или MLP), которые затем могут быть повторно использованы в течение нескольких шагов денойзинга.
Расчет метрики расстояния: Для каждого шага денойзинга вычисляется метрика расстояния между текущим и предыдущим представлением. Если расстояние велико, это указывает на необходимость пересчета, а не использования кэшированных данных.
Кодекс кэширования: На основе метрики расстояния выбирается "скорость кэширования" (количество шагов, в течение которых кэшированное представление будет использоваться). Этот выбор делается из предопределенного набора базовых скоростей кэширования.
Для дальнейшего улучшения AdaCache, вводится регуляризация движения (Motion Regularization, MoReg). Эта техника учитывает содержание движения в генерируемом видео, чтобы адаптировать расписание кэширования. Видео с высоким уровнем движения требуют больше шагов денойзинга для достижения приемлемого качества, поэтому MoReg увеличивает частоту пересчета для таких видео.
Оценка движения: Оценка движения производится на основе разницы между кадрами в латентном пространстве. Однако, поскольку ранние шаги денойзинга могут быть ненадежными из-за шума, также используется градиент движения, который служит ранним предиктором для движения в последующих шагах.
Применение регуляризации: Метрика расстояния, используемая для определения скорости кэширования, масштабируется с учетом оценки движения и градиента движения. Это позволяет более точно адаптировать расписание кэширования к содержанию видео.
Исследование показало, что AdaCache может значительно ускорить процесс генерации видео без ухудшения качества. На различных базовых моделях, таких как Open-Sora, Open-Sora-Plan и Latte, AdaCache обеспечивает ускорение до 4.7 раза при сохранении или даже улучшении качества видео по сравнению с базовыми моделями.
Скорость и качество: AdaCache-fast предоставляет наилучшее ускорение, в то время как AdaCache-slow обеспечивает наилучшее качество при меньшем ускорении. Вариант с MoReg улучшает качество, сохраняя высокое ускорение.
Ускорение в многопроцессорных конфигурациях: AdaCache также показывает значительное улучшение производительности в конфигурациях с несколькими GPU, что делает его полезным для масштабирования.
Адаптация к различным разрешениям: Метод эффективно работает на различных разрешениях видео, обеспечивая стабильное ускорение.
Визуальные сравнения показали, что AdaCache генерирует видео, которые по качеству сопоставимы с базовыми моделями, но значительно быстрее. MoReg помогает избежать артефактов и несоответствий, которые могут возникать при высокой скорости кэширования.
AdaCache представляет собой инновационный подход к ускорению генерации видео с использованием диффузионных трансформеров. Благодаря адаптивному кэшированию и регуляризации движения, этот метод позволяет значительно сократить время генерации, сохраняя при этом высокое качество видео. Это делает его привлекательным решением для демократизации генерации высококачественных видео, открывая новые возможности для исследований и коммерческого использования в области генеративного AI.