[Перевод] ИИ. ЦПУ против ГПУ — Данные и Выводы

Страницы:  1

Ответить
 

Professor Seleznov


pic
Начало пути!
Всем привет! Я создатель статьи которую перевел для русскоязычной аудитории.
Я уже публиковался на Хабре и был встречен с теплотой. Планирую вернуться к статьям выпустить продолжение своей статьи про переезд из Азербайджана в Европу. Мы остановились 5 лет назад когда я переезжал в Нидерланды, и я уже 5 лет тут, так что будет что обсудить.
Хочу поделиться своими изысканиями с вами, чтоб получить обратную связь и возможно интересные идеи по поводу следующих статей.
Сам проект в итоге должен выступить как база для моих идей связанных с ИИ. Посмотрим в чего это в итоге выльется.
Введение
Для начала — просто гляньте на те фото и видео, которые я сгенерировал, вообще не прикасаясь к мышке или планшету. Конечно, до и после было проделано немало работы, но сам процесс создания цифрового арта не требовал ручного рисования. Так что скажем спасибо моим CPU и GPU — они реально тащили 💪
По ходу этого пути возникли интересные вопросы: когда вообще есть смысл использовать СPU, и как модели разного размера ведут себя при параллельных нагрузках? В целом, результаты получились довольно любопытными.
Бэкграунд и сетап
Ключевым решением для меня стало развернуть домашний сервер. Но идти по стандартному пути и становиться очередным клиентом Synology — не моя история, поэтому примерно год назад я достал старенький HP Gen7 сервер.
Немного контекста: с серверным железом из дата-центров я начал работать лет 10–12 назад (ещё во времена Gen9–Gen10 от HP). Так что это был такой приятный ностальгический флешбек.
Параллельно мы с другом сделали Instagram-аккаунт:
https://www.instagram.com/shorty_yvip/reels/
И я заодно попробовал автоматизировать постинг.
После нескольких proof-of-concept пайплайнов для генерации контента я сейчас двигаюсь к тому, чтобы сделать систему более зрелой и стабильной.
pic
Запрос: Японские хорор игры
CPU vs GPU vs …
Основная цель была — сравнить и понять, как всё это можно использовать на практике.
CPU всё ещё очень полезен. Он отлично справляется с небольшими задачами и тестовыми сценариями. Для разработки я часто использовал маленькие модели, чтобы быстро прогонять пайплайны.
GPU — дорогие, но намного быстрее. Если смотреть с точки зрения стоимости, то на длинных задачах они начинают себя оправдывать. В моём случае GPU был быстрее CPU примерно в 3–7 раз.
TPU — тоже хочу попробовать. Есть относительно доступные варианты, так что это в планах.
Примечание: мой CPU довольно старый, и это, конечно, влияет на сравнение.
pic
Запрос: Японские хорор игры
Маленькие или большие модели?
Классический ответ — зависит от ситуации🙂
Как уже говорил: качество = стоимость. Но фишка в том, что не везде нужно максимальное качество.
Ещё совет — поиграйтесь с параметрами: top_k, temperature и т.д. Даже на маленьких моделях можно получить вполне достойный результат.
В конце статьи покажу, какие параметры использую сейчас.
 
Долгие задачи и лимиты выполнения
timeout-minutes: 2880
Можно использовать этот параметр, если нужно, чтобы пайплайн работал больше 6 часов подряд. Но аккуратно — можно легко переоценить необходимость.
До того как получить это:
pic
Я столкнулся с этим:
pic
Результаты!
Вот ссылка на GitHub-репозиторий, где можно посмотреть результаты, промпты и тексты (примерно 99% сгенерировано моделью). Видео тоже генерировались моделью — тогда я использовал LTX CogVideoX.
pic
До
После “оптимизации” котораяпо сути, это просто снижение качества. Но даже при этом видео иногда пучались… ну, скажем честно, мусорными 😅
Сейчас я в основном генерирую картинки, а видео планирую доработать позже.
Один из самых заметных бустов по производительности дал даунскейл разрешения видео — это сильно снизило нагрузку.
FPS тоже играет большую роль:
  • ниже FPS → меньше деталей
  • меняется длительность видео (так как кадров генерируется меньше)
В итоге, после оптимизаций я смог генерировать видео даже на CPU:
5 секунд видео = ~32 минуты на CPU примерно 1 итерация в минуту
pic
 Под катом конфиги на которых я в итоге остановился, честно говоря, с ними еще нужно поиграть, чтоб сформулировать эффект и качество. В целом ощущение, что можно контролировать. Так среди прочего я смог добится от мелкой модели выдавать вполне себе внятный текс.

Скрытый текст

#LLM CONFIGURATION PARAMETERS
#Maximum number of tokens (words/parts of words) to generate.
#Example: 512 is roughly 400 words of text.
--max_new_tokens", type=int, default=512
#Controls randomness. 0.1 = factual/robotic, 1.0+ = creative/random.
#Example: Use 0.2 for code or math, 0.8 for creative writing.
--temperature", type=float, default=0.7
#Nucleus sampling: considers top tokens with cumulative probability P.
#Example: 0.95 filters out the 5% least likely "weird" word choices.[cite: 2]
--top_p", type=float, default=0.95
#Limits the next word choice to the K most likely candidates.
#Example: 50 ensures the model doesn't pick a highly improbable word.[cite: 2]
--top_k", type=int, default=50
#Penalty for repeating the same words/phrases. > 1.0 discourages repetition.
#Example: 1.2 helps prevent the model from getting stuck in a loop.[cite: 2]
--repetition_penalty", type=float, default=1.2
#Frames Per Second: Determines the smoothness of the motion.
#Example: 16 FPS gives a cinematic look; 24-30 FPS is standard fluid video.[cite: 2]
--fps", type=int, default=16
#Sampling steps: Number of iterations to refine the video from noise.
#Example: 100 steps provide high detail but take longer to generate.[cite: 2]
--steps", type=int, default=100
#Classifier-Free Guidance (CFG): How strictly the model follows the prompt.
#Example: 3.0 allows for AI artistic freedom; 10.0+ forces strict adherence.[cite: 2]
--guidance_scale", type=float, default=3.0
#The hard limit for prompt length processed by the text encoder.
#Example: used by fchunking function
--max_prompt_tokens", type=int, default=77
models:
- name: Gemma-4-31B-IT-NVFP4
path: /opt/ai_model/Gemma-4-31B-IT-NVFP4
repo: nvidia/Gemmatele-4-31B-IT-NVFP4
active: false
role: "You are a professional information provider specialized in technical
troubleshooting and clear explanations."
- name: gemma-4-e4b-it
path: /opt/ai_model/gemma-4-e4b-it
repo: google/gemma-4-E4B-IT
active: true
role: "You are a helpful journalist with insights."
- name: TinyLlama-1.1B-Chat-v1.0
path: /opt/ai_model/TinyLlama-1.1B-Chat-v1.0
repo: TinyLlama/TinyLlama-1.1B-Chat-v1.0
active: false
role: "You are a helpful journalist with insights."
Текущие проблемы
Проблем выше крыши! Так как проект благодаря которому я получил все эти данные, по сути на очень раннем этапе развития, даже при условии, что я имею опыт с такого рода делами. Сконцентрировался на получении результатов. В итоге думаю придется сильно переделывать.
  • Галлюцинации моделей
  • Сложности с зависимостями
  • Медленная загрузка моделей
  • Ограниченная производительность локально 
Полезный ресурс
Вот дока, которая мне реально помогла разобраться с LLM:
https://docs.vllm.ai/projects/recipes/en/latest/index.html
pic
Запрос: Японские хорор игры
Финальные мыс
лиНа этом пока всё. Спасибо, что дочитали!
Проект всё ещё в процессе развития, и я буду делиться новостями по мере продвижения.
Так же хотелось бы получить, может быть в личку, чего вам не хватило в статье? Я стараюсь сделать статьи максимально емкими, без лишней воды, чтоб люди могли быстро прочесть и прийти к каким-то выводам, поэтому если вам не хватает деталей или что-то не так прошу поделиться мыслями.-Источник
 
Loading...
Error