Влияние ширины PCIe на LLM и flux
GPU:
- 3090 на pcie-4.0@x4
- 2080ti на [email protected]
- 3060 на [email protected]
3090 сидит на отдельном GPU 750w.
2080ti + 3060 сидят на GPU 750w.
Последние 2 карты сидят на x1 через сплиттер, поэтому по факту там половина скорости от x1. На pcie x16 не тестил, на моем мини-пк его нет (есть x4 + x4 + x1). На одном из x4 сидит ssd.
Затестим скорость LLM и Flux в зависимости от количества линий pcie, на которых сидит моя 3090.
Видим, что при работе в соло с небольшими LLM или Flux практически нет просадки. Скорость изначальной загрузки модели в память, конечно, проседает, но не супер критично (гемма-27 загружается за 1-2 минуты). Заметьте, что скорость обработки входного промта до сих пор быстрая - 323 t/s, хотя тоже просела.
Флакс из-за медленной шины pcie просел на 10%. А вот тренировка лоры вообще не заметила изменений.
Работа в связке из 3-х карт с большими LLM.
А теперь затестим Gemma-27b-Q6 (21 GB) на одной карте и затем через layer-split 50/50. Просадка есть, но минимальная.
А теперь задействуем все 3 карты. pcie x4+x0.5+x0.5. 2 карты с power limit 80% и 3090 - 60% (250w)
для сравнения, с реддита:
70B-gguf_Q4 (43 GB), 2x 3090 - 15.5 t/s
70b-awq_4b (40 GB), 4x 3060 pcie3.0@8 - 14 t/s
3.3-70b_Q4, mac mini M4 Max 64gb - 7 t/s
квенов-72b не нашел
SAINEMO-reMIX-12B_q6 (9 GB)
3090, pcie 4.0x4 - 43 t/s
То есть в теории, из-за медленной шины, я теряю какую-то скорость, но я не сказал, бы что она критичная. Сравним для моей 3090 power_60%_250w, размер LLM и скорость:
9 GB, solo - 43 t/s
21 GB, solo - 20 t/s
51 GB, split_3 - 7 t/s
При увеличении размера LLM в 2 раза скорость падает в 2 раза (это норма), и скорость pcie в этом случаем особо не дает влияния.
3090 в соло режиме с маленькой LLM жрет все выделенные ей 250W (TDP у нее 420, но я ей столько не даю). То же самое и 2080ti - в соло ест отведенные 191W из 200w. Но с большой LLM раскиданной по всем картам видно, что чипы потребляют лишь половину максимальной мощности (смотрим скрин). Возможно, в остальное время они ждут друг друга или хз что там происходит.
Кстати, свежую llama-3.3-70b для русского РП не рекомендую, она сухая и зацензуренная. А вот SAINEMO-reMIX-12B (9GB) весьма рекомендую. Это смесь разных nemo-12b: saiga_nemo + vikhr_nemo + 2 англоязычных РП микса. Сейчас либо ее использую, либо magnum-v4-72b-Q5 (51GB). Athene-72b не так понравилась, цензуры больше чем в магнуме.
https://huggingface.co/mradermacher/SAINEMO-reMIX-GGUF/tree/main
Выводы: число линий pcie для маленьких LLM - пофиг. Для больших LLM - важно, но не супер критично. Для флакса (генерации и тренировки) - тоже пофиг. Получается, pcie x16 переоценен? Даешь всем по сплиттеру, который делит x1 на 4 и будет счастье? 😀
GPU:
- 3090 на pcie-4.0@x4
- 2080ti на [email protected]
- 3060 на [email protected]
3090 сидит на отдельном GPU 750w.
2080ti + 3060 сидят на GPU 750w.
Последние 2 карты сидят на x1 через сплиттер, поэтому по факту там половина скорости от x1. На pcie x16 не тестил, на моем мини-пк его нет (есть x4 + x4 + x1). На одном из x4 сидит ssd.
Затестим скорость LLM и Flux в зависимости от количества линий pcie, на которых сидит моя 3090.
Gemma-27b-Q6 (21 GB), 3090 power_60%_250w
pcie4.0@x1, IN 730 t/s, OUT 19.57 t/s
pcie4.0@x4, IN 780 t/s, OUT 20.43 t/s
Flux, 1024, 20steps, 3090 power_60%_250w
pcie4.0@x1, 00:28, 1.44s/it
pcie4.0@x4, 00:25, 1.29s/it
Flux lora train, 3090 power_60%_250w
pcie4.0@x1, 5.00s/it
pcie4.0@x4, 5.00s/it
Видим, что при работе в соло с небольшими LLM или Flux практически нет просадки. Скорость изначальной загрузки модели в память, конечно, проседает, но не супер критично (гемма-27 загружается за 1-2 минуты). Заметьте, что скорость обработки входного промта до сих пор быстрая - 323 t/s, хотя тоже просела.
Флакс из-за медленной шины pcie просел на 10%. А вот тренировка лоры вообще не заметила изменений.
Работа в связке из 3-х карт с большими LLM.
А теперь затестим Gemma-27b-Q6 (21 GB) на одной карте и затем через layer-split 50/50. Просадка есть, но минимальная.
3090, 250w, solo - 20 t/s
2080ti, 200w, solo - 15 t/s
3090+2080ti pcie4.0@x4 + pcie2.0@x1, 50/50 - 14 t/s
А теперь задействуем все 3 карты. pcie x4+x0.5+x0.5. 2 карты с power limit 80% и 3090 - 60% (250w)
qwen-72b-q5(51 GB) - 7.00 t/s
Llama-3.3-70B-Q5_K_M (47 GB) - 7.27 t/s.
для сравнения, с реддита:
70B-gguf_Q4 (43 GB), 2x 3090 - 15.5 t/s
70b-awq_4b (40 GB), 4x 3060 pcie3.0@8 - 14 t/s
3.3-70b_Q4, mac mini M4 Max 64gb - 7 t/s
квенов-72b не нашел
SAINEMO-reMIX-12B_q6 (9 GB)
3090, pcie 4.0x4 - 43 t/s
То есть в теории, из-за медленной шины, я теряю какую-то скорость, но я не сказал, бы что она критичная. Сравним для моей 3090 power_60%_250w, размер LLM и скорость:
9 GB, solo - 43 t/s
21 GB, solo - 20 t/s
51 GB, split_3 - 7 t/s
При увеличении размера LLM в 2 раза скорость падает в 2 раза (это норма), и скорость pcie в этом случаем особо не дает влияния.
3090 в соло режиме с маленькой LLM жрет все выделенные ей 250W (TDP у нее 420, но я ей столько не даю). То же самое и 2080ti - в соло ест отведенные 191W из 200w. Но с большой LLM раскиданной по всем картам видно, что чипы потребляют лишь половину максимальной мощности (смотрим скрин). Возможно, в остальное время они ждут друг друга или хз что там происходит.
Кстати, свежую llama-3.3-70b для русского РП не рекомендую, она сухая и зацензуренная. А вот SAINEMO-reMIX-12B (9GB) весьма рекомендую. Это смесь разных nemo-12b: saiga_nemo + vikhr_nemo + 2 англоязычных РП микса. Сейчас либо ее использую, либо magnum-v4-72b-Q5 (51GB). Athene-72b не так понравилась, цензуры больше чем в магнуме.
https://huggingface.co/mradermacher/SAINEMO-reMIX-GGUF/tree/main
Выводы: число линий pcie для маленьких LLM - пофиг. Для больших LLM - важно, но не супер критично. Для флакса (генерации и тренировки) - тоже пофиг. Получается, pcie x16 переоценен? Даешь всем по сплиттеру, который делит x1 на 4 и будет счастье? 😀
Лора для русского текста на картинке для Flux
Ранняя версия, 50000 шагов, допускает много ошибок.
Для кириллицы используется смешанная азбука: часть русских букв заменяется на похожие английские буквы. Eсли таких букв нету, то берется похожий малоиспользуемый символ из французского, немецкого и молдавского (именно они есть в токенизаторе).
В токенизаторе T5xxl нет кириллицы, поэтому приходится выкручиваться, используя странные символы из других языков. При этом надо иметь в виду, что несколько английских букв часто объединяются в один токен. Иногда это мешает, иногда нет.
Насколько я понял, токенизатор clip-l практически не влияет на отображение текста на картинке. Но вместо clip-l можно использовать vit-l-text. С его помощью будет на 10% меньше ошибок. Но и без него можно.
vit-l-text: https://huggingface.co/zer0int/CLIP-GmP-ViT-L-14/blob/main/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors
С буквой Ш пока что проблемы, используйте букву Щ.
Букву П можно дополнительно описать как "looks loke Pi symbol".
Потом когда-нибудь напишу кастомную ноду, которая будет автоматом кодировать кириллицу.
На малом разрешении Лора допускает меньше ошибок, чем на большом. Чем проще описание - тем лучше.
Рекомендуемые настройки: 512x768 20 steps, Euler, normal, guidance 3.5
Промпт: Black text "PYCCkùü" on grey background.
Лора: https://civitai.com/models/1056401
Ворклфоу: https://github.com/Mozer/comfy_stuff/blob/main/workflows/flux_rus_lora_50k.json
Тренировал в oneTrainer, сперва в разрешении 512 на мелком датасете, затем на большом, затем на огромном в 768p. Lora rank 16/1, Adafactor LR 0.0003. Суммарно 50000 шагов, 6000+ картинок.
Если кто разбирается в Learning rate: возможно надо было другой LR указать или более большой lora rank?
Скрипт для создания датасета картинок с 5000 популярными русскими словами:
https://github.com/Mozer/comfy_stuff/tree/main/training_rus
Вдруг кто-то захочет продолжить идею.
За идею сделать лору спасибо Sir Lanc.
За первый датасет спасибо @DmitryLS7.
Также недавно натренировал лору для Flux Fill Outpaint (не Dev) для создания картинок "Clothes on/off", 18+: https://civitai.com/models/1040628/clothes-onoff-or-flux-fill
Вдруг кто не видел =)
Ранняя версия, 50000 шагов, допускает много ошибок.
Для кириллицы используется смешанная азбука: часть русских букв заменяется на похожие английские буквы. Eсли таких букв нету, то берется похожий малоиспользуемый символ из французского, немецкого и молдавского (именно они есть в токенизаторе).
В токенизаторе T5xxl нет кириллицы, поэтому приходится выкручиваться, используя странные символы из других языков. При этом надо иметь в виду, что несколько английских букв часто объединяются в один токен. Иногда это мешает, иногда нет.
Насколько я понял, токенизатор clip-l практически не влияет на отображение текста на картинке. Но вместо clip-l можно использовать vit-l-text. С его помощью будет на 10% меньше ошибок. Но и без него можно.
vit-l-text: https://huggingface.co/zer0int/CLIP-GmP-ViT-L-14/blob/main/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors
"А": "A", "Б": "ß", "В": "B", "Г": "Î", "Д": "ă", "Е": "E", "Ё": "É", "Ж": "ş",
"З": "3", "И": "ù", "Й": "ü", "К": "K", "Л": "â", "М": "M", "Н": "H", "О": "O",
"П": "á", "Р": "P", "С": "C", "Т": "T", "У": "Y", "Ф": "ö", "Х": "X", "Ц": "Ü",
"Ч": "4", "Ш": "##", "Щ": "!!!", "Ъ": "ț", "Ы": "ä", "Ь": "ţ", "Э": "ó",
"Ю": "ô", "Я": "®"
С буквой Ш пока что проблемы, используйте букву Щ.
Букву П можно дополнительно описать как "looks loke Pi symbol".
Потом когда-нибудь напишу кастомную ноду, которая будет автоматом кодировать кириллицу.
На малом разрешении Лора допускает меньше ошибок, чем на большом. Чем проще описание - тем лучше.
Рекомендуемые настройки: 512x768 20 steps, Euler, normal, guidance 3.5
Промпт: Black text "PYCCkùü" on grey background.
Лора: https://civitai.com/models/1056401
Ворклфоу: https://github.com/Mozer/comfy_stuff/blob/main/workflows/flux_rus_lora_50k.json
Тренировал в oneTrainer, сперва в разрешении 512 на мелком датасете, затем на большом, затем на огромном в 768p. Lora rank 16/1, Adafactor LR 0.0003. Суммарно 50000 шагов, 6000+ картинок.
Если кто разбирается в Learning rate: возможно надо было другой LR указать или более большой lora rank?
Скрипт для создания датасета картинок с 5000 популярными русскими словами:
https://github.com/Mozer/comfy_stuff/tree/main/training_rus
Вдруг кто-то захочет продолжить идею.
За идею сделать лору спасибо Sir Lanc.
За первый датасет спасибо @DmitryLS7.
Также недавно натренировал лору для Flux Fill Outpaint (не Dev) для создания картинок "Clothes on/off", 18+: https://civitai.com/models/1040628/clothes-onoff-or-flux-fill
Вдруг кто не видел =)
Добавил 3-х новых персонажей в @talkllama
- арни (Terminator), расскажет про 2125 год.
- дженна (Wednesday), даст пару вредных советов.
- рон (Ron Swanson), расскажет как ему пофиг.
Работают на:
- deepseek-v3-685b (от openrouter, платно).
- llama-405b (от sambanova, бесплатно).
@talkllama
- арни (Terminator), расскажет про 2125 год.
- дженна (Wednesday), даст пару вредных советов.
- рон (Ron Swanson), расскажет как ему пофиг.
Работают на:
- deepseek-v3-685b (от openrouter, платно).
- llama-405b (от sambanova, бесплатно).
@talkllama
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Ускоряем Hunyuan video fast еще в 2 раза на винде
Есть оригинальный Hunyuan-video-13B, он работает за 20-30 шагов (20-30 минут на видео), а есть дистиллированный Hunyuan fast, который работает за 6-10 шагов. 6 шагов мне не нравятся, 10 выглядят намного лучше (10 минут на генерацию 1 видео в 720p, 2 секунды, 48 кадров).
Недавно вышел waveSpeed, который ускоряет flux, LTX и hunyuan в 1.5-2 раза в comfy на видюхах 3000 серии и новее с помощью двух технологий: first-block-cache и torch-model-compile+. На моей 3090 прирост скорости относительно Hunyuan fast - в 2 раза, до 4.6 минуты на 1 видео. Поддерживается воркфлоу от comfyanonymous. Воркфлоу от kijai пока не поддерживается.
Hunyuan из коробки умеет nsfw. Верх довольно неплохой, низ слегка зацензурен, но лучше, чем в дефолтном flux. Но умельцы уже наделели 100+ лор для Hunyuan на civitai для разных nsfw поз, движений, персонажей и стилей (в https://civitai.com/models ставим 2 фильтра: LoRA + Hunyuan video).
Но compile+ ускоряет генерацию не всегда. Иногда torch compile занимает дополнительные 47 секунд. Перекомпилируется модель периодически, 1 раз в 2-3 генерации. Хз как побороть, скорее всего, vram мало, возможно, надо сделать меньше разрешение или количество кадров.
Предположу, что для работы Hunyuan хватит 32 GB RAM. У меня просто еще xtts+wav2lip в памяти висят. Если у вас в самом конце comfy вылетает без ошибок - снизьте разрешение или кол-во кадров.
Видел отзывы, что Hunyuan работает на 12 GB vram. Пока не тестил.
УСТАНОВКА
Нужен тритон и видюха 3000 серии или новее. 2000 серия nvidia не поддерживается. cuda toolkit 12.4+.
1. обновляем comfy через update_comfyui.bat
2. как установить тритон и sage-attention в комфи на винду:
https://www.reddit.com/r/StableDiffusion/comments/1h7hunp/how_to_run_hunyuanvideo_on_a_single_24gb_vram_card/
Первый шаг в этой инструкции пропускаем (установка нод kijai/ComfyUI-HunyuanVideoWrapper можно пропустить, мы будем использовать официальные ноды встроенные в комфи. Были отзывы, что в нодах от kijai пока не поддерживаются лоры при работе с first-block-cache). Выполняем пункты 2-4, включаем переводчик, если надо. Последние пункты 5-8 со скачиванием моделей не выполняем, мы скачаем другие, они меньше и быстрее.
3. Качаем clip_l.safetensors and llava_llama3_fp8_scaled и hunyuan_video_vae_bf16.safetensors: https://comfyanonymous.github.io/ComfyUI_examples/hunyuan_video/
Качаем hunyuan fast: https://huggingface.co/Kijai/HunyuanVideo_comfy/blob/main/hunyuan_video_FastVideo_720_fp8_e4m3fn.safetensors и кладем в diffusion_models
4. в run_nvidia_gpu.bat для запуска comfy надо добавить флаг
5. Устанавливаем custom node через comfyui manager -> install via GIT URL:
https://github.com/chengzeyi/Comfy-WaveSpeed
6. Hunyuan воркфлоу: https://github.com/Mozer/comfy_stuff/blob/main/workflows/hunyuan_fast_wave_speed_with_lora.json
Flux воркфлоу: https://github.com/Mozer/comfy_stuff/blob/main/workflows/flux_wave_speed.json
Советы:
- 1280x720, 720x1280, 544x960, 960x544 - рекомендуемые разрешения. В остальных могут быть артефакты.
- при малом количестве кадров анимация может работать хуже и с артефактами, рекомендую 25 и 49 кадров (1 и 2 сек)
- img2video пока нет, но разрабы обещают. Есть video2video и IPadapter2video от kijai.
- FLUX dev (bonus) -
1024x1024 20 steps
Прирост скорости во флаксе + waveSpeed составил 35%.
Во флаксе compile+ не работает на 3000 серии с flux-fp8, но работает с bf16, из-за этого прироста скорости не заметно. В hunyuan compile+ работает и дает прирост.
Есть оригинальный Hunyuan-video-13B, он работает за 20-30 шагов (20-30 минут на видео), а есть дистиллированный Hunyuan fast, который работает за 6-10 шагов. 6 шагов мне не нравятся, 10 выглядят намного лучше (10 минут на генерацию 1 видео в 720p, 2 секунды, 48 кадров).
Недавно вышел waveSpeed, который ускоряет flux, LTX и hunyuan в 1.5-2 раза в comfy на видюхах 3000 серии и новее с помощью двух технологий: first-block-cache и torch-model-compile+. На моей 3090 прирост скорости относительно Hunyuan fast - в 2 раза, до 4.6 минуты на 1 видео. Поддерживается воркфлоу от comfyanonymous. Воркфлоу от kijai пока не поддерживается.
Hunyuan из коробки умеет nsfw. Верх довольно неплохой, низ слегка зацензурен, но лучше, чем в дефолтном flux. Но умельцы уже наделели 100+ лор для Hunyuan на civitai для разных nsfw поз, движений, персонажей и стилей (в https://civitai.com/models ставим 2 фильтра: LoRA + Hunyuan video).
fast model, fp8:
48 frames, 48s/it, 10 min, 19 GB vram, 39 GB RAM
fast model, sage-attention, first-block-cache:
48 frames, 25s/it, 5.6 min, 20 GB vram, 38 GB RAM
sage-attention, first-block-cache, compile+:
25 frames, 10s/it, 2.1 min, 18 GB vram, 29 GB RAM
48 frames, 22s/it, 4.7 min, 20 GB vram, 38 GB RAM
61 frames, 34s/it, 6.7 min
65 frames - OOM
Но compile+ ускоряет генерацию не всегда. Иногда torch compile занимает дополнительные 47 секунд. Перекомпилируется модель периодически, 1 раз в 2-3 генерации. Хз как побороть, скорее всего, vram мало, возможно, надо сделать меньше разрешение или количество кадров.
Предположу, что для работы Hunyuan хватит 32 GB RAM. У меня просто еще xtts+wav2lip в памяти висят. Если у вас в самом конце comfy вылетает без ошибок - снизьте разрешение или кол-во кадров.
Видел отзывы, что Hunyuan работает на 12 GB vram. Пока не тестил.
УСТАНОВКА
Нужен тритон и видюха 3000 серии или новее. 2000 серия nvidia не поддерживается. cuda toolkit 12.4+.
1. обновляем comfy через update_comfyui.bat
2. как установить тритон и sage-attention в комфи на винду:
https://www.reddit.com/r/StableDiffusion/comments/1h7hunp/how_to_run_hunyuanvideo_on_a_single_24gb_vram_card/
Первый шаг в этой инструкции пропускаем (установка нод kijai/ComfyUI-HunyuanVideoWrapper можно пропустить, мы будем использовать официальные ноды встроенные в комфи. Были отзывы, что в нодах от kijai пока не поддерживаются лоры при работе с first-block-cache). Выполняем пункты 2-4, включаем переводчик, если надо. Последние пункты 5-8 со скачиванием моделей не выполняем, мы скачаем другие, они меньше и быстрее.
3. Качаем clip_l.safetensors and llava_llama3_fp8_scaled и hunyuan_video_vae_bf16.safetensors: https://comfyanonymous.github.io/ComfyUI_examples/hunyuan_video/
Качаем hunyuan fast: https://huggingface.co/Kijai/HunyuanVideo_comfy/blob/main/hunyuan_video_FastVideo_720_fp8_e4m3fn.safetensors и кладем в diffusion_models
4. в run_nvidia_gpu.bat для запуска comfy надо добавить флаг
--use-sage-attention
вот так:.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --use-sage-attention
5. Устанавливаем custom node через comfyui manager -> install via GIT URL:
https://github.com/chengzeyi/Comfy-WaveSpeed
6. Hunyuan воркфлоу: https://github.com/Mozer/comfy_stuff/blob/main/workflows/hunyuan_fast_wave_speed_with_lora.json
Flux воркфлоу: https://github.com/Mozer/comfy_stuff/blob/main/workflows/flux_wave_speed.json
Советы:
- 1280x720, 720x1280, 544x960, 960x544 - рекомендуемые разрешения. В остальных могут быть артефакты.
- при малом количестве кадров анимация может работать хуже и с артефактами, рекомендую 25 и 49 кадров (1 и 2 сек)
- img2video пока нет, но разрабы обещают. Есть video2video и IPadapter2video от kijai.
- FLUX dev (bonus) -
1024x1024 20 steps
FLUX - 1.26s/it, 26 s.
FBC - 1.21it/s, 17 s.
FBC + compile+ - 1.20it/s, 17 s.
Прирост скорости во флаксе + waveSpeed составил 35%.
Во флаксе compile+ не работает на 3000 серии с flux-fp8, но работает с bf16, из-за этого прироста скорости не заметно. В hunyuan compile+ работает и дает прирост.