Telegram Group Search
Влияние ширины 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.

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

"А": "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
Ускоряем 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).

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+ работает и дает прирост.
2025/01/15 05:24:53
Back to Top
HTML Embed Code: