• XSS.stack #1 – первый литературный журнал от юзеров форума

Ии на ПК llama

Пожалуйста, обратите внимание, что пользователь заблокирован
приехал параллельноимпортированный E-2388, и я что-то не понял прикола.

У них прикол есть, если грузить все ядра - иногда может по превышению TDP троттлить.
 
фигня какая-то 🤔 по попугаям 5% прирост должен быть, плюс 2 дополнительных ядра, итого должно быть на 10% быстрее, если не больше.
кажется, я понял, в чём дело: я забыл, что апгрейднул сервер с 64 до 128 гб оперативы, старые планки по 16 были single rank, а новые по 32 - dual rank.

перепроверил ещё раз:


было: 4x 16GB DDR4-3200 Micron MTA9ASF2G72AZ-3G2F
CAS Latency CL = 22
Speed 1600MHz
Component Config 2G x8
Bus Width x64
Density 16GB
Single-rank

llama2_70b_chat_uncensored.gguf.q4_K_M.bin
1.02 tokens per second
1.02 tokens per second
1.02 tokens per second

llama-2-13b-chat.gguf.q4_K_M.bin
5.07 tokens per second
5.11 tokens per second
5.10 tokens per second

codellama-34b-instruct.Q4_K_M.gguf
2.10 tokens per second
2.09 tokens per second
2.10 tokens per second


стало: 4x 32GB DDR4-3200 Micron MTA18ADF4G72AZ-3G2F
CAS Latency CL = 22
Speed 1600MHz
Component Config 2G x8
Bus Width x72
Density 32GB
Dual-rank

llama2_70b_chat_uncensored.gguf.q4_K_M.bin
1.00 tokens per second
1.01 tokens per second
1.01 tokens per second

llama-2-13b-chat.gguf.q4_K_M.bin
5.05 tokens per second
5.02 tokens per second
5.01 tokens per second

codellama-34b-instruct.Q4_K_M.gguf
2.07 tokens per second
2.07 tokens per second
2.07 tokens per second


выходит, что single rank оператива на 1-2% быстрее, чем dual rank, хотя по датащитам скорости должны быть одинаковые (а точнее, по датащиту dual rank должна быть на 0.005нс на операцию быстрее)
 
Всё таки приблуды от nvidia для этих целей лучше подойдут, если 512 маловато, то там есть на 2048 (Jetson AGX Orin 64 Gb)
$1300 за модуль 🤔 это дешевле, чем сервер, но, блин, куда этот сервер теперь девать? :D
 
Пожалуйста, обратите внимание, что пользователь заблокирован
кажется, я понял, в чём дело: я забыл, что апгрейднул сервер с 64 до 128 гб оперативы, старые планки по 16 были single rank, а новые по 32 - dual rank.
а теперь я точно понял, в чём дело: 64 гб оперативы работают на частоте 3200 МГц, а при установке 128 гб дофига умный контроллер на мамке сбрасывает скорость до 2933.
 
nvidia.com/ru-ru/autonomous-machines/embedded-systems/jetson-agx-xavier/
developer.nvidia.com/embedded/jetson-modules

Всё таки приблуды от nvidia для этих целей лучше подойдут, если 512 маловато, то там есть на 2048 (Jetson AGX Orin 64 Gb)

увидел на барахолке эти модули по интересной цене и решил всё-таки погуглить в сторону "llama.cpp nvidia jetson", и узнал, что эти модули чрезвычайно медленные из-за их медленной оперативной памяти, усреднённое мнение анонимных аналитиков из интернета: для лламы надо покупать 3090, лучше несколько штук.
 
А есть вообще сильная модель без цензуры? А то смысл ставить себе llama 405b с такой же цензурой как у chatgpt и claude, при том что она хуже и для нее нужно железа на 5к$
 
теперь я точно понял, в чём дело
а теперь, кажется, я совсем точно понял, в чём дело :D

почитал сообщество LocalLLaMa на реддите и ситуация начала проясняться: частота процессора и количество ядер не сильно важны, наибольшее значение на скорость работы локальных LLM имеет скорость обмена данными, пресловутый "bandwidth", потому что генерация текста лламой представляет собой поиск слова ("токена") в огромном словаре ("модели"), и чем быстрее этот словарь полностью прочитается, тем раньше LLM выдаст следующее слово. при генерации текста LLM постоянно, в цикле, перечитывает один и тот же словарь много раз.

несколько картинок для понимания:

ddr.png


b2pkyv9w1ihc1.png


0gwp9aaychhc1.png


возьмём "словарь" llama2_70b_chat_uncensored.Q4_K_M.gguf весом 41.4 GB
если загрузить её в оперативу, работающую на частоте 2933 MHz (23.4 GB/s), на сервере с двухканальным чипсетом Intel C256 ( https://www.intel.com/content/www/us/en/products/sku/213682/intel-c256-chipset/specifications.html "№ of DIMMs per channel = 2", в сервере 4 слота DIMM итого всего 2 канала), то за 1 секунду будет возможно прочитать 46.8 гигабайт данных, или 1.13 раз полностью пройтись по всему словарю.
минус расходы на ось, нагрузку на расчёты софтом llama.cpp, туда-сюда, и получается скорость генерации 1.00 токенов в секунду.
если взять llama2_13b.Q4_K_M.gguf весом 7.87 гигабайт, и загрузить её в оперативу, работающую на частоте 3200 MHz (25.6 GB/s) с двухканальным чипсетом (51.2 GB/s), то за 1 секунду можно пройтись по этому словарю 6.55 раз.
минус расходы на ось и прочую нагрузку, и получается 4.7 токенов в секунду.
если запускать большую модель, которая полностью в оперативу не влезает, то не уместившийся кусок придётся каждый раз, для генерации каждого следующего токена, читать с диска. а скорость самых распространённых NVMe SSD составляет всего 3.5 гигабайт в секунду. предположим, что у нас 32 ГБ оперативы, а запускаем модель весом 41.4 ГБ: 9 гигабайт придётся постоянно перечитывать со скоростью 3.5 ГБ/с, в результате скорость генерации будет меньше 0.3 токенов в секунду.

а теперь посмотрите на скорость оперативы у видеокарт: если загрузить модель весом 7.87 гигабайт в видюху со скоростью оперативы 256 ГБ/с, то за 1 секунду можно прочитать эту модель 32 раза, за вычетом накладных расходов будет генерация со скоростью около 25 токенов в секунду.

а с запуском больших моделей начинаются нюансы: так как мало в какую видюху влезет модель весом 41.4 гигабайта, то для запуска больших моделей приходится часть модели загружать в оперативную память видюхи, а оставшееся в оперативную память компа, работающую в несколько раз медленее. в результате даже с мощной видюхой с быстрой оперативой первые 16 гигабайт (на самом деле меньше, видюхи не дают заполнять свою VRAM полностью) будут прочитываться со скоростью 300-600 GB/s, а остальные 25.4 гигабайт со скоростью 20-80 GB/s, из чего получится скорость примерно в 2 токена в секунду. всего в 2 раза быстрее, чем без видюхи.

таким образом можно примерно рассчитывать будущую скорость работы LLM, исходя из её размера в гигабайтах и скоростей оперативы видеокарты и компа.
обязательно учитывайте "канальность" процессора: базовые модели даже серверных процессоров работают всего с двумя каналами памяти, поэтому максимальная скорость будет 51.2 GB/s, а не 102.4/204.8, а также учитывайте отношение объёма оперативы к скорости: чем её больше, тем на более медленной частоте она работает. если напихать в сервер терабайт оперативы DDR4-3200, то она вполне может начать работать всего на 1866 мегагерц вместо ожидаемых 3200.
 
Последнее редактирование:
Dread Pirate Roberts спасибо за хорошую инфу. Прочитал в твоем ответе о том, что допустимо запускать большие модели, если оперативки меньше, чем вес модели (без дискретной видяхи), если использовать ссд в качестве оперативного стореджа для модели во время использования (но ьудет медленно). В силу этого вопрос - как это можно реализовать на винде, а в идеале в чем-то похожем на lm studio.
 
Dread Pirate Roberts спасибо за хорошую инфу. Прочитал в твоем ответе о том, что допустимо запускать большие модели, если оперативки меньше, чем вес модели (без дискретной видяхи), если использовать ссд в качестве оперативного стореджа для модели во время использования (но ьудет медленно). В силу этого вопрос - как это можно реализовать на винде, а в идеале в чем-то похожем на lm studio.
да, можно, но это будет ОЧЕНЬ медленно, или модель будет очень тупая.
не знаю насчёт lm studio, а сборки llama.cpp для винды есть.
 
теперь по поводу выбора видюх, каким образом получить 64 гб и больше VRAM в одном компе.
отбрасываем очевидные A100 и H100, потому что мы нищеброды, и остаются следующие варианты: (модель | VRAM GB | BW GB/s | TDP W | примерная цена)

Tesla T41632070700
L424300722500
A10 (не путать с A10G)246001502500
RTX 4000 Ada203601301500
RTX A400016448140800
A21620060700
неведомая GALAX single slot RTX 4060Ti16288 ???165 ??????

таблица отсортирована по убыванию моего личного предпочтения. я рассматриваю только "одноюнитовые" видюхи - толщиной в 1 слот PCIe, чтобы в один корпус влезло 3-4 штуки или больше, а также модели с низким TDP, чтобы хватило мощности слабого БП.
итого топ за свои деньги - 4х Tesla T4, но если у вас есть такая возможность - лучше брать 3х или 4х L4.
но оптимальный вариант, судя по постам на реддите - купить двухкиловаттный БП и огромный корпус, и набить его тремя-четырьмя 3090 (24 GB VRAM), но лично мне этот вариант не очень нравится.
 
Последнее редактирование:
Dread Pirate Roberts а какой конфиг ты юзаешь (наиболее интересны объем vram и ram) и какие модели (в идеале названия+сколько млрд параметров) на нем запускаешь?
пока что 64 GB DDR4-3200 Dual Channel RAM (51.2 GB/s).
подумываю насчёт 2x L4 или 3x T4 (300 GB/s), но не уверен, что это выйдет дешевле и намного быстрее, чем собрать новый сервер на AMD EPYC с Quad/Eight Channel RAM (100/200 GB/s) и запускать модели без видюхи, в оперативе. вот 2х A10 точно выйдет быстрее, но точно не дешевле.

модели пока никакие, хочу гонять дикпик 2бит (~250 GB) и ламу3 70Б 4/8бит (40/80GB)
 
Последнее редактирование:
варианты двухслотовых карт: модель | VRAM GB | BW GB/s | TDP W | примерная цена в долларах
сортировки нет, просто перечиляю из своих заметок.

A10G246001502500
A30249331654500
RTX 3090249353501000
L20488642754500
A40486963005000
Titan RTX24672280800

итого топ за свои деньги - 4х Tesla T4, но если у вас есть такая возможность - лучше брать 3х или 4х L4.
учитывая низкую скорость L4, лучше брать A10, благо они стоят примерно одинаково - $2500
 
Последнее редактирование:
варианты двухслотовых карт: модель | VRAM GB | BW GB/s | TDP W | примерная цена в долларах
составил таблицу, сколько места будут занимать видюхи, сколько электричества потреблять и сколько стоить, в зависимости от желаемого суммарного объёма VRAM.
иксы через пробелы - это занятые порты PCIe x16, два икса подряд значит, что карта шириной в 2 слота.
цены смотрел у мутных китайских продавцов на Ebay, точность чисел bandwidth/power не гарантирую.

по гигам.png


всё ещё не уверен, что покупка нескольких видюх имеет смысл, учитывая то, что у оперативы DDR4-3200, подключённой к восьмиканальному процессору, суммарный bandwidth = 200 GB/s.
 
Последнее редактирование:
всё ещё не уверен, что покупка нескольких видюх имеет смысл, учитывая то, что у оперативы DDR4-3200, подключённой к восьмиканальному процессору, суммарный bandwidth = 200 GB/s.
сравнил скорости видюх с оперативой, пришёл к неутешительному выводу: T4 - фигня, и даже казавшаяся перспективной L4 - фигня, потому что у них скорость меньше чем в 2 раза выше, чем у восьмиканальной оперативы DDR4-3200.

gpu vs ram.png


интерес представляют только A10, внезапно старая A4000 (нвидия зачем-то урезала bandwidth на более новых картах), 3090 и старый Титан RTX (остальные карты отпадают из-за их высокой стоимости)
T4/L4/4000Ada могут представлять интерес в том случае, если у вас двух- или четырёхканальная оператива, или восьмиканальная со скоростью ниже, чем DDR4-2666.

а потом я попробовал прикинуть скорость в токенах в секунду у нескольких моделей LLM, и пришёл к ещё более неутешительному выводу: запуск нормальных (крупных и умных) моделей в домашних условиях не представляется возможным. точнее, запустить-то их можно, но придётся на каждый запрос ждать ответ по 10 минут.

с бюджетом около $5000 можно собрать комп, выдающий приемлемую скорость (10-20 токенов в секунду) с LLaMa 3.3 70B, ужатой до 8 бит, и размером 75 гигабайт.
запуск даже самого тупого и ужатого до 1.5 бит дикпика размером 250 гигабайт потребует вложений больше $10k, чтобы получить скорость хотя бы около 10 токенов в секунду.
а запуск относительно нормального 4-битного дикпика размером 420 гигабайт могут себе позволить только брутеры кошельков, у которых дома кластеры из компов с 8х3090 в каждом.
 
Последнее редактирование:
и только после того, как я уже заказал мамку с Epyc 2 🤦‍♂️ я узнал, что Epyc 4 с самой медленной оперативой DDR5-4800 уже вплотную подбирается к топовым видеокартам, а с быстрой оперативой даже превосходит.

epyc4.png


интерес представляют только A10, внезапно старая A4000 (нвидия зачем-то урезала bandwidth на более новых картах), 3090 и старый Титан RTX (остальные карты отпадают из-за их высокой стоимости)
а исходя из вышесказанного A4000 и даже A10 не представляют особого интереса.
при сортировке карт по bandwidth и учёте их стоимости становится очевидно, почему 3090 является абсолютным лидером, а также оказывается, что представляют интерес ещё A5000 и A5500.

fds.png


собирать систему на Titan RTX, A4000, и прочих T4 имеет смысл только в том случае, если у вас не очень много денег и уже есть компьютер с большим количеством оперативы.
если оного ещё нет, то, возможно, лучше будет купить не средний комп + несколько видюх, а один топовый комп с Epyc 4 или 5.
 
запуск нормальных (крупных и умных) моделей в домашних условиях не представляется возможным.
представляется, 4-битный Deepseek R1 выдаёт около 8 токенов в секунду на Epyc 4 с DDR5-4800:

Epyc 9374F
12 x Samsung M321R4GA3BB6-CQK 32GB DDR5 RDIMMs
Asus K14PA-U12 motherboard

что как раз влезает в бюджет $5000, так что насчёт этого я ошибался:

с бюджетом около $5000 можно собрать комп, выдающий приемлемую скорость (10-20 токенов в секунду) с LLaMa 3.3 70B, ужатой до 8 бит, и размером 75 гигабайт.
запуск даже самого тупого и ужатого до 1.5 бит дикпика размером 250 гигабайт потребует вложений больше $10k, чтобы получить скорость хотя бы около 10 токенов в секунду.
а запуск относительно нормального 4-битного дикпика размером 420 гигабайт могут себе позволить только брутеры кошельков, у которых дома кластеры из компов с 8х3090 в каждом.

- если использовать не видюхи, а современные эпики с оперативой ддр5, то вполне можно запускать крупные LLM дома на не очень дорогом железе.
 
глубоко не изучал, но что то помню )

  • для моделей до 48gb можно поставить две tesla p40 , 2 x rtx 3090 или p40+3090
  • в lmstudio Ползунок GPU Offload максимально вправо, NMAP и keep model in memory отключить
  • память 3200 на многих серверных платах работает как 2666, они больше не умеют
  • китайская память собрана из того, что у китайца под рукой, брать лучше в комплекте с процессором и материнкой, сразу предполагаемый максимум
 
память 3200 на многих серверных платах работает как 2666, они больше не умеют
да, обязательно надо читать документацию к серверу, обычно чем больше планок оперативы втыкаешь, тем медленнее скорость - типа с 1-2 планками DDR4-3200, а с 4-8 уже DDR4-2133.
у меня есть один современный entry level сервер с оперативой ддр5, так он вообще оказался разочарованием века - оператива работает на частоте 4800 максимум, и то при условии втыкания одной планки оперативы, а если воткнуть все, то будет 3600, что уже на уровне ддр4.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх