Как стать автором
Обновить

Комментарии 56

Ждём ебилд-ов ггуф-ов.

Ну положим, 512 гб ОЗУ можно сделать. Но это же будет боль по скорости. На чем такое запускают? Даже у проф карточек врама и то меньше.

Насколько, кстати говоря боль? Если к примеру взять серверную двухсокетную плату на ксеонах 20 ядерных. Хотя бы порядок, сколько ждать ответа на вопрос? Минуту? Час? Неделю?

На 7950x3d с 192ГБ памяти с самой большой из скачанных у меня моделей (DeepSeek Coder v2 236b, int4 quant) скорость от 0.9 до 2.2 tok/s. Думаю, у этой модели будет не лучше точно. Может минут 10-20 спокойно печатать большой ответ.

А какая скорость у памяти? Потенциально у разогнанной до границ спецификации DDR5 должно быть лучше.

Память G.Skill Trident, 4x48 GB, 5600MHz XMP/DOCP. Потенциально - да. В реальности, память такого объёма очень плохо поддаётся разгону и не имеет профилей под такую конфигурацию:

  1. Модули Kingston Fury пришлось вернуть, т.к. в конфигурации 4х32 они отказывались брать любую частоту кроме стока (3600 MHz), сколько я ни колдовал с профилями и настройкой вольтажа/таймингов вручную.

  2. Trident сначала взяли паспортные 5600 MHz (паспортные, с совпадением по таблице совместимости от матери, для двух модулей, но я-то юзаю 4), но они оказались нестабильны и уводили компьютер в ребут посреди игры или работы, либо просто гасили, либо не давали бутнуться. В итоге после очередного ребута после сброса BIOS они отказались вставать на том профиле и выше стока (3600 MHz) мне их также пока поднять не удалось. Зато описанные выше проблемы магически пропали. А более новые Trident Neo, которые по идее должны быть лучше для Ryzen-процов и поддерживать EXPO вместо DOCP, я найти не смог в РФ, да и переплата там ну очень заметная на 4 плашках.

Выводы, которые сделал по неделе проблем, попыток, вычитывания статей и отсмотра видео: разгонять 4 плашки большого объёма реально тяжело. Выше 64ГБ в сумме начинаются проблемы, 4 модуля больше 16гб тоже становятся нестабильны. Нужны и удачные экземпляры, и желательно не Ryzen (на Intel 13-14 поколения результаты у людей получше), и чтобы звёзды сложились нужным образом. Короче, третью партию памяти я брать не стал и забил - не стоят приросты того, ни в играх, ни в рабочих задачах. Лотерея.
Такая скорость меня условно устраивает, когда можно скинуть какой-то вопрос по коду модели и минут на 10-20 забыть об этом, работая параллельно над задачей. Сколько дадут частоты, прирост с 2.2 до 2.5 tok/s? В пределах погрешности между вопросами получается, к тому же реальный прирост от роста частоты нелинейный и после 6000 MHz очень низок, почти отсутствует. А вы говорите о разгоне до "границ спецификации", да на таких параметрах будет конский вольтаж и с температурами за 70 градусов, и тайминги взлетят, а прироста - чуть. Можете посмотреть тесты 3600vs5600vs6000vs6400 и дальше. Чем выше параметры - тем ниже прирост и больше усилий для разгона, а как я упомянул выше, с объёмом и количеством плашек растёт лотерейность самого по себе процесса разгона. Проще говоря, не стоит игра свеч.
Для сравнения: Gemma 2 9b Instruct int8, которая целиком лезет в мою 4080S, удалось получить 11 tok/s, а там и память GDDR6 на 23 ГГц, и архитектура другая, и собственно сам факт, что это видеокарта.

разгонять 4 плашки большого объёма реально тяжело

Нужна материнская плата с соответствующей топологией. Те, что под 2 заточены, конечно, всё равно шустрее будут, но не настолько, что они возьмут 7000+, а 4 даже на 5600 нестабильны.

прирост от роста частоты нелинейный и после 6000 MHz очень низок

Это амд-проблемы, по большей части.

А вы говорите о разгоне до "границ спецификации", да на таких параметрах будет конский вольтаж и с температурами за 70 градусов, и тайминги взлетят, а прироста - чуть

У вас просто не было нормальной мамки. (с) На 2 плашках берут и 8000+ с нормальными таймингами и не выходя за 1.5 вольт (сейчас, может, уже и за 1.4), никаких 70 градусов там и в помине нет. У меня лично обычная дешёвая память без особой настройки на 6200@30-34-34, там дай бог если 35-40 градусов будет при условии, что под ними видеокарта отдаёт 400 ватт тепла.

Нужна материнская плата с соответствующей топологией. Те, что под 2 заточены, конечно, всё равно шустрее будут, но не настолько, что они возьмут 7000+, а 4 даже на 5600 нестабильны.

Возможно. У моей ASUS X670E-F в таблице совместимости откровенно мало протестированных конфигураций с 4 модулями, а на объём выше 64 так вообще единицы.

Это амд-проблемы, по большей части.

Да, я отдельно это отметил в своих выводах: "желательно не Ryzen (на Intel 13-14 поколения результаты у людей получше)".

У вас просто не было нормальной мамки. (с) На 2 плашках берут и 8000+ с нормальными таймингами и не выходя за 1.5 вольт (сейчас, может, уже и за 1.4), никаких 70 градусов там и в помине нет.

Возможно. Но речь шла про 4 плашки, а не про 2. На 2 у меня всё заводилось стабильно и с первого раза. Но стоило начать втыкать следующие...

У меня лично обычная дешёвая память без особой настройки на 6200@30-34-34, там дай бог если 35-40 градусов будет при условии, что под ними видеокарта отдаёт 400 ватт тепла.

У меня с моей G.Skill Z5 Trident 5600MHz результаты другие, согласно hwinfo по моим плашкам при 1.1V температура от 58 до 61 градуса при тихом пресете на корпусную группу вентиляторов. Но свою систему я эталонной не считаю, так что настаивать сколько там должно быть - 35-40 или 60 - не буду. Лучше независимые тесты глянуть на такой группе плашек. Только вот беда - на ютубе нет нифига тестов на 4 плашки DDR5, особенно таких объёмов :D

Возможно. Но речь шла про 4 плашки, а не про 2. На 2 у меня всё заводилось стабильно и с первого раза. Но стоило начать втыкать следующие

Тогда почти точно "неправильная" топология, нужно заранее узнавать. Что не всегда просто, в мануалах не пишут. Обычно такие материнки будут только в премиальном сегменте, т.е. приближаться к тысяче долларов в стоимости. Ещё косвенный признак: в QVL выбрать 3-4 самые высокие заявляемые скорости, и если там будет мало или не будет вообще конфигураций с четырьмя плашками, то можно быть уверенным, что топология под две.

Резюмируя: брать список актуальных плат под целевой процессор, сортировать по цене по убыванию, рассматривать верхние пару-тройку позиций :)

У меня с моей G.Skill Z5 Trident 5600MHz результаты другие, согласно hwinfo по моим плашкам при 1.1V температура от 58 до 61

Звучит как брак. 1.1 довольно небольшое напряжение, при такой частоте там должны быть совершенно невменяемые тайминги (под 50?), а температура, наоборот, низкой. Не пробовали поднять до 1.25?

Резюмируя: брать список актуальных плат под целевой процессор, сортировать по цене по убыванию, рассматривать верхние пару-тройку позиций :)

Пожалуй, брать какую-нибудь мать, у которой стоимость овер 90к рублей и 3кг радиаторов на борту суммарно - дичь, по крайней мере для меня. Ради жалких процентов производительности. Ну возьмут мои модули 6400 MHz, ура, +10% в играх за 100к на мать? Я свою-то взял за 50 ради полноценных pci-e 5 линий на ssd и собственно 4 слотов, плюс хорошей периферии и встроенных беспроводных модулей. Как упомянул, на сайте производителя больших объёмов там протесченных крайне мало, так что вы вероятно правы про уклон в тесты 2 модулей.

Звучит как брак. 1.1 довольно небольшое напряжение, при такой частоте там должны быть совершенно невменяемые тайминги (под 50?), а температура, наоборот, низкой. Не пробовали поднять до 1.25?

Не могу сказать. Я как сбросился до 3600MHz, так расстроился и прекратил эксперименты. Да и вряд ли брак, 2 разные пачки памяти. Cейчас, судя по аиде, при 1.1V тайминги 30-29-29-58. В профиле 5600MHz взлетают до 40-40-40-89, 1.25V (осталась фотка биоса с удачно запущенным сетапом).
Притом у той же видеокарты 40 на чипе и 46 на памяти, у проца 56/53 по CCD, по матери 43. Т.е. сам корпус внутри не горячий. Вентиляторы на 300-500rpm крутятся, в зависимости от конкретной группы.

Возможно, нюанс в том, что сами по себе модули не обдуваются, потому что у меня водянка на проце, установленная сверху на выдув, и по факту модули обдаются тёплым воздухом с видеокарты и лишь частично вентиляторами на вдув спереди, которые сейчас как раз еле-еле вертятся на 300rpm.

Ну возьмут мои модули 6400 MHz, ура, +10% в играх за 100к на мать?

Не, это для частоты на 4 плашках. Для 7200, хороших таймингов и упора в потолок зависимости производительности игр от памяти достаточно +/- любой материнки из категории около 20к. Но это если про интел говорить. Ген5 на ссд там тоже сильно дешевле чем за 50 можно найти.

В профиле 5600MHz взлетают до 40-40-40-89, 1.25V

На 1.25 ужас, конечно, но такова жизнь с 4 плашками на неподходящей топологии, вероятно.

Вентиляторы на 300-500rpm крутятся, в зависимости от конкретной группы.

На таких частотах и напряжении даже без вентиляторов не должно быть такой большой температуры.

Так она при обычной работе и играх почти и не греется. Запустите тест памяти и очень удивитесь. Память внезапно начинает греться аки проц. И становится понятно, что водянка для ОЗУ это не бред, когда их 4 шт и щели между плашками минимальные.

mac studio ultra 192gb 800gb/s сейчас оптимален для домашнего запуска больших моделей, но производительность значительно ниже 4x4090. Можно надеяться, что apple m4 ultra должен получить 256gb/1tb/s со скоростью генерации токенов близкой к 3090

DDR5 очень чувствительна к синхронизации, гораздо чувствительнее, чем DDR4. И 4 плашки != 4 канала. У десктопных АМД только 2 канала, то, что в некоторых материнках можно ставить 2 плашки/канал - это только увеличение ёмкости, но не скорости, с очень большими всё ещё не решенными проблемами у АМД. В целом для LLM прирост от частоты - должен быть линейным. Если это не так, это проблемы/косяки реализации от вендора - и АМД тут не на коне, увы. Но у интела сейчас на 13-14м поколении свои приколы с прожаркой процов, топовые 13700-14900 я бы не брал.

Полностью согласен. Я для себя решил, что для нейросеток объём приоритетнее частоты (и угадал, deepseek v2 еле-еле влезла в q4, благо imat реализация квантизации даёт ещё 10 гб свободных), а для игор на моих играх (я знаю, что есть игры, что зависимы от памяти более, но свои самые тяжёлые я пробенчмаркал и разницы не увидел) разницы между 3600 и 5600 почти не было, поэтому я решил тупо забить все слоты памятью максимального объёма, даже переплачивать за паспортные 6400 вместо 5600 не стал, т.к. не заведётся ж. Для любой работы, понятно, такого объёма и скорости хватит - на моей системе свободно весь наш тестовый контур в кубере уместится и не подавится.

Брать Тредрипер для такой игро-рабочей системы и париться с полноценным четырёхканалом серверной памяти было бы нецелесообразно и дорого, а заниматься перебором памяти на текущей системе ради шанса заставить её работать как надо - тем более неразумно.

Интелы горят, но память работает с ними лучше - факты.

А что по вашей оценке лучше, deepseek v2 или WizardLM-2 (8x22B)?

Они всё же разные. DeepSeek более новая и значительно зафайнтюнена на код - по программированию она даёт лучшие и самые ёмкие ответы, не расплываясь по контексту, без дурацких извинений. Сравнивал с llama70b, CodeLlama 70b, codestral и геммой обоих весов. Разве что оперативки на полные 128к контекста у меня не хватает, довольствуюсь 8000. WizardLM-2 не попадалась, но в теории могу потестить на ваших вопросах и сравнить.

В части программирования я долго пользовался phind-codellama-v2, это хорошая модель по размера/качеству. сейчас перешел на WizardLM-2 (8x22B). Вот и спросил ваше мнение, вы же изучали вопрос. Кстати есть еще новая модель IBM granite, тоже интересная по размеру/качеству.

Увы, частота памяти тут не бутылочное горлышко. Играет роль архитектура. Ну есть у вас 48 ядер cpu , все будут пахать как проклятые, а скорость LLM мизерная - те же 2-3 токена в секунду. Для сравнения - у видеокарт тысячи ядер с общей памятью. Вот эти тысячи и решают, поэтому на них так быстро все работает.

А можно, возможно глупый, вопрос: как маштабируют эти модели? т.е. если всё так упирается в железо, то как ChatGPT так быстро работает? Эти модели как-то можно запускать на кластерах из серверов?

Несколько видеокарт в один сервер под одну задачу можно. И у этих видеокарт по 80гб видеопамяти.

Там всё крайне хорошо распаралеливется. Больше мощи, быстрее работа

Мне самому интересно, как. Ну вот ладно у них по 80 гб памяти. Хорошо. У меня есть 100 компов с 3060, каждая из них 12 гб врама имеет. Суммарно 1.2 терабайт видеопамяти и 100 хостов. Неважно, сколько там суммарно. Что за решение там используется, что позволяет пусть даже проф видеокарты так обьединить? Пусть даже по слоям. NVlink такое тоже не умеет.

На 24-х ядерным AMD EPYC 7402p и, наверное, что важнее 8-ми канальном (DDR4 3200MHz) DeepSeek Coder v2 236b, fp16, скорость 1.5-3 токена в секунду, в зависимости от длинны контекста (я обычно за 8К не выхожу)

А теперь представьте, что есть двухсокетные матринки, а двухсокетный вариант этого процессора на авито стоит в районе 45 000 рублей. Там скорее память бьёт по кошельку: 1TB ddr4 ecc reg 3200MHz бу обойдётся в ~200 000 руб, материнка ещё тысяч в 70.

Ещё ssd потребуется, грузить в ОЗУ 800GB - это минут 10-20 даже с быстрых NVME, по этому берите топовую по чтению - это ещё, грубо говоря 10 000 руб.

Таким образом весь двухпроцессорный сетап в коробке из под обуви обойдётся в 370 тыс рублей и даст вам 3-6 токенов в секунду (я не пробовал двухпроцессорные, предполагаю что скорость можно экстраполировать пропорционально количеству каналов ОЗУ при достаточном количестве ядер).

Но есть AMD EPYC 9xx4-серия, там не 8 каналов, а уже 12 и DDR5, цены пока сильно кусаются.

Как правильно измерять токены в секунду? Есть какой либо бенчмарк для этого? просто я искал и пока единственное что нашел измерять каждый параметр и по формуле складывать

Вот у меня именно ксеоны под рукой. 2.13 t/s на той же DeepSeek-Coder-V2-Instruct-Q4_K_M. 2 проца, 4 канала, DDR4@2133.

Вообще странно. Паритет по скорости с моей системой просто из-за 4 канала против 2? Даже на нестабильных 5600 MHz мне не удавалось больше 2.3 tok/s увидеть.

Оффтоп: вы DeepSeek Coder V2 Lite тестили? У меня все её версии выдают тарабарщину - возможно, issue про китайский и кривую разметку инструкций. Запускаю через LM Studio.

Когда говоришь клиентам, что сервер с 12 каналами отличается как небо и земля от похожего по ядру процессора, но 2-х канального варианта, а ещё там размеры кэшей разные, не верят. Говорят, вон у меня ryzen 7950X, там 5GHz а стоит 3 копейки (по сравнению с серверной платформой).

Это очень хороший пример, когда количество каналов абсолютно важны. Кроме того, если речь шла про двухпроцессорную сборку, то там не 4, а 8 каналов.

Это не только 4 канала (х2 множитель), это ещё нума х2 - т.е. итого х4. Ллама умеет бить потоки так, чтобы они не ходили через QPI.

Не, lite не тестил. https://github.com/ggerganov/llama.cpp/issues/8498 - не релевантно? Иногда включить/отключать fa помогает.

Правильно ли я понимаю, что там более-менее линейная скорость в зависимости от скорости памяти? Те если взять машину на 4 процессора(допустим dl560g9), то это ускорит процесс в 2 раза.

И подскажите, пожалуйста, 1-2 токена/с насколько это быстро?

От памяти - линейная, а вот насколько хорошо оно на 4 сокета отмасштабируется - по идее, хорошо, но я не помню никого, кто делился бы отзывами по таким машинам. Слишком экзотика.

2 t/s - читается некомфортно медленно, но ещё можно сидеть и ждать ответа, перечитывая его по 5 раз. 1 t/s - только асинхронно ждать ответа, занимаясь чем-то ещё. 10-12 t/s - это уже быстрее, чем я читаю. Читаю я быстро :)

Но у разных моделей могут быть разные соотношения токен/выходные символы из-за разной токенизации и типа вывода (код/текст), поэтому это всё приблизительно.

Ядра тут не помогут... Уже на 5-6 потоках упрется в пропускную способность памяти и дальше скорость инференса будет только падать. Нужна максимально быстрая память и широкая шина, поэтому ускорители ИИ все на HBM строятся.

Ядра почти не роляют, если их не два. Всё всегда упирается в скорость чтения из памяти. Так что тут нужно брать распоследний проц и разогнанную память, ксеонами не обойдёшься.

для себя присматривал недорогую сборку на китайской HUANANZHI X99 F8D с двумя E5 2696 V4 (88 потоков) и 512Гб DDR4 для таких вещей.. возможно даст что-нибудь приемлемое по скорости.. хотелось бы тестов от знатоков на таком железе)

Посмотрите еще на дешевые эпики. Там 16 канал и плашки памяти могут работать вроде как даже на 3200мгц, но это не точно. На али они пока дорогие, но если через перекупов с таобао, то может выйти даже дешевле чем X99 F8D-plus + xeon.
А скорости даже на 2133 будут 250Gb/s, это в ~2.5 раза выше, чем на xeon, и это уже почти скорость rtx 4060 Ti 16гб. На 13:02 тайминг:

А отзывы про 8 канальный xeon можно поискать на LocalLLaMA на реддите. Например: https://www.reddit.com/r/LocalLLaMA/comments/17c790b/anyone_running_llms_on_xeon_e52699_v4_22t44c/

Тоже самое скажу, лучше на AMD EPYC 7хх2 и 7хх3 посмотрите. Там 8 каналов и скорость озу 3200MHz - что критически важно для данной задачи.

Разочарует. Тоже пытался построить похожее, но все упирается в скорость памяти. Скорость инференса на моделях 7-8B будет на уровне ~3 ток/сек. Заурядный Ryzen 3600 за счет более высоких частот и кэша показывает результат в 1,5-2 раза выше.

Не обязательно все в одной карточке держать, и не обязательно запускать в Q8. Эту модель хорошо потянет десяток 3090 с 4BPW. Или пять А6000. Или три А100.

Во-вторых, если 512ГБ ОЗУ - это не двухканал, а 12 каналов серверного EPYC или 8 разогнанных каналов TR PRO, то не такая уж это и боль

На паре amd epyc. Я на одном запускаю модели за 200B, скорость 2-3 токена в секунду, а на MoE моделях ещё больше.

Что за единица такая "B"? Не байты же?

billion, сколько миллиардов параметров то есть. И в данном случае каждый параметр - это 16-битное число с плавающей запятой. Потому размер в гигабайтах в два раза больше, чем количество миллиардов параметров.

Но квантинизация до q8_0 (до 8 бит на значение) обычно не влияет на качество генерации в пределах погрешности измерения тестами. Это позволяет снизить объем RAM в 2 раза, но не ускоряет модель.

Хотелось бы конечно по экпериментироватьс 70B, но интернеты очень быстро чистят.

Интересно... Это счётчик появился после слива или слив произошёл до счётчика?)

Все равно, если у кого-то есть magnet, можно в личку :-)

405B, в отличии от 70B, легко найти, и ссылка и магнет есть в конце поста. Скачиваемое успешно квантуют в gguf, но результат работы пока никто не выкладывал.

Уже кто-то квантовал в 4 бита Q4_K_M и модель занимает 234гб. Но сам gguf не выкладывал.

Так что модель в 256гб ram уложится, это пока доступно только дешевым серверным сборкам на хеонах или эпиках, даже маки с 192гб быстрой памяти в пролете, как и ddr5 (вроде у них на данный момент такой же максимум в 192гб для домашнего железа).
Но если квантовать в 2 бита с imatrix, например в IQ2_XS, то судя по всему модель уложится в 128гб, и скорости будут на уровне 1 токена в секунду.

Тут уже всё будет зависить от бенчмарков, но в целом IQ2_XS имеет место быть, так как считается, что большие модели обычно лучше переносят квантизацию чем маленькие, и даже 1-битная квантизация больших моделей (72B) справляется лучше, чем 8-битная модель меньшего размера (8B).

Да влезет то оно влезет, но на любых процах там скорость генерации просто несравнима со скоростью генерации у маленьких моделей на обычных видеокартах. Я на 3060 запускаю модельку toppy-m-7b.Q8_0.gguf , недавно про нее на хабре заметка была, и я ухватил. Ну вот - на русском она отвечает с такой скоростью, что я читать не успеваю, а между тем навык скорочтения у меня довольно развит. И качество хорошее. На питоне и Сях пишет, если в пределах экрана код то почти не косячит.

Лама70b только на процессоре. Очень долго, но качественно, но долго. Мечта все это дело запараллелить под предлогом "ну в видеокарте же оно как то параллелится!". Проц зион 12 ядер, загрузка всех на полную. Таких системников бы штук 12 в ряд поставить, все равно вышло бы дешевле А100. Вот у меня 4 таких системников уже есть, в 3 раза увеличить скорость ответа это было бы здорово. А щас на проце 1 токен в секунду и это общение с LLM разве что скриптом по времени размазывать, без какой то обратной связи.

Toppy-m это файнтюн Mistral 7b. Она считается немного устаревшей.
Попробуйте gemma2-9b, тоже влезет в 3060.
Ну и llama 3.1 8b уже вышла официально, скачать ее теперь не проблема.

По ощущениям эта гемма сильно тупее топпи. Или русский плохо понимает.

А сколько 3090 может завестись на одной плате? Если 12, то это 288 быстрой памяти и в общем, недорого.

Для чего. Вряд ли это выгодно перепродавать

После того как выложили открытую Mistral Large 2 размером 123B, то LLaMa 3.1 405B стала не особо интересна. Лама большая, тяжелая, и справляется с заданиями хуже чем Large 2. А Large 2, помимо прочего, еще очень хороша в языках, включая русский.
Для тех кто пропустил: https://habr.com/ru/articles/831272/

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Другие новости

Истории