KJNodes/experimentalgenerated

Оптимизации Ideogram4 KJ(Ideogram4OptimizationsKJ)

ЭКСПЕРИМЕНТАЛЬНО И МОЖЕТ ИЗМЕНИТЬ ВЫХОД МОДЕЛИ!! Снижает пиковое использование VRAM при прямом проходе Ideogram4. chunk_ffn разделяет активации SwiGLU по размерности токенов; bf16_rope применяет RoPE в типе данных модели вместо повышения до fp32. Обе оптимизации нацелены на два самых больших временных тензора в блоке.

Ideogram4 Optimizations KJ

model
model
chunk_ffn
ffn_chunks
2
ffn_seq_threshold
1024
bf16_rope
KJNodes

Этот узел применяет два экспериментальных оптимизации для снижения VRAM при прямом проходе модели Ideogram4. Он относится к категории "KJNodes/experimental" и может изменить выходы модели — используйте только когда пиковое использование VRAM является ограничивающим фактором и после проверки качества выхода.

Описание

Узел Ideogram4 Optimizations KJ патчит модель Ideogram4 для снижения пикового использования памяти GPU во время вывода, нацеливаясь на два самых больших временных тензора в каждом блоке трансформера: активации SwiGLU и вычисления RoPE. Обе оптимизации управляются дискретными булевыми и целочисленными входами, что позволяет тонко настраивать баланс между экономией памяти и вычислительными накладными расходами.

Входы

  • model (MODEL, обязательно) – Базовая модель Ideogram4, к которой будут применены оптимизации.

  • chunk_ffn (БУЛЕВО, по умолчанию истина) – Когда включено, активации прямого распространения (SwiGLU) разделяются по размерности последовательности токенов, ограничивая размер промежуточного тензора до (B, chunk_size, hidden) вместо (B, L, hidden). Это снижает пиковое использование памяти за счет небольшого увеличения вычислений.

  • ffn_chunks (ЦЕЛОЕ, по умолчанию 2, диапазон 1–64, шаг 1) – Количество чанков последовательности, на которые разделяется прямое распространение. Большие значения дают меньшее пиковое использование памяти, но увеличивают накладные расходы (больше запусков ядер). Значение 1 фактически отключает разбиение на чанки. Начните с 2 и увеличивайте, если VRAM все еще не хватает.

  • ffn_seq_threshold (ЦЕЛОЕ, по умолчанию 1024, диапазон 256–65536, шаг 256) – Разбиение на чанки применяется только когда длина входной последовательности токенов превышает это значение. Для коротких последовательностей (например, менее 1024 токенов) базовая память уже достаточно мала, и разбиение добавило бы ненужные накладные расходы. Установите этот порог в соответствии с типичной длиной генерации.

  • bf16_rope (БУЛЕВО, по умолчанию истина) – Когда включено, Rotary Position Embedding (RoPE) применяется в рабочем типе данных модели (обычно bfloat16 или float16) вместо повышения до float32. Это примерно вдвое уменьшает память активаций RoPE и соответствует точности, используемой в эталонных реализациях Hugging Face. Качество выхода может незначительно отличаться от пути RoPE по умолчанию с fp32.

Выходы

  • MODEL – Та же модель с включенными выбранными оптимизациями. Предназначена для использования в качестве прямой замены исходной непатченной модели в рабочем процессе ComfyUI.

Примечания по использованию

  • Обе оптимизации являются экспериментальными. Всегда тестируйте качество выхода и сравнивайте с непатченной моделью перед развертыванием в рабочем процессе.
  • Оптимизации chunk_ffn и bf16_rope независимы; включайте только то, что нужно. Для максимальной экономии памяти включите обе.
  • При использовании chunk_ffn начните с ffn_chunks = 2 по умолчанию и увеличивайте только если переполнение VRAM сохраняется, так как большее количество чанков приводит к большим накладным расходам.
  • ffn_seq_threshold наиболее полезен, когда ваш рабочий процесс обрабатывает как очень короткие, так и очень длинные последовательности (например, условие изображения против полной генерации изображения). Настройте его, чтобы избежать накладных расходов на коротких промптах.
  • Эти оптимизации разработаны специально для Ideogram4; они не будут иметь эффекта на других архитектурах моделей и могут вызвать ошибки при применении. Убедитесь, что входная модель является вариантом Ideogram4.

Комментарии

Войдите через GitHub, чтобы участвовать в обсуждении.

Загрузка комментариев…
Оптимизации Ideogram4 KJ (Ideogram4OptimizationsKJ) - ComfyUI-KJNodes | ComfyUI Wiki