Запустить LLM локально.
От: fk0 Россия https://fk0.name
Дата: 23.02.25 12:50
Оценка: :)
Hello...

Как думаете, какие перспективы запуска LLM, наподобии DeepSeek
(более-менее полноценной, а не урезанной 1.5-битной версии) локально?
В пределах ограничений имеющихся у среднего физ. лица. Т.е. вряд ли
рационально тратить на железо очень крупную сумму (в следующие два
года требования к ресурсам возрастут, а имеющееся железо удастся
только выкинуть если это что-то специализированное, если обычные
компы, то только приспособить для бытовых задач). Подключение
больше пары киловатт мощности требует и охлаждения, и размещения
где-то в отдельном месте, и явно того не стоит, чтоб просто пока
попользоваться LLM как автономным Stack Overflow. Если говорить
о покупке БУ серверов например, то тоже вряд ли осмысленно, т.к.
в квартире не разместить из-за шума.

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

1) Продаются относительно дёшево БУ сервера. Из них можно собрать
мини-кластер. Кажется там есть какие-то нюансы, почему дёшево,
неплохо бы разбираться. Как вариант дешёвые БУ отработавшие
матплаты от серверов Dell. Их можно ставить в "открытый корпус для EATX"
(см. на Ozon), если вентиляторы и БП тихие. У матплат Dell недостаток,
что только LGA2011-3 и это кажется не годится вообще, т.к.
процессоров с AVX-VNNI под LGA2011-3 -- нет, только под более
новые сокеты, например LGA3647, но под них нет дешёвых матплат.
AVX-VNNI ускоряет BLAS и llama.cpp, как я понимаю, раз в 8.
Т.е. это однозначный must have.

2) GPU. Тут всё не однозначно. Кажется GPU "не масштабируется"
по сравнению с вариантом 1, хоть и имеет сразу большую производительность.
Потенциально возможно конфигурация, когда одна матплата, много GPU.
Но GPU нужны с большим объёмом памяти и их потом никуда не деть,
полезного применения в быту нет, продать только за бесценок.

Дальше моё понимание работы LLM, прошу поправить специалистов.
Общая схема работы LLM такова, что это некий _циклический_ алгоритм,
где на вход подаётся запрос, запрос пропускается _стого_ _в_ _одну_
_сторону_ через несколько десятков слоёв т.н. "trasformer blocks",
затем получившийся на выходе токен формирует часть ответа и рекурсивно
поступает на вход вместе с запросом и следующая порция данных,
включающая в себя запрос и часть ответа, прогоняется через все слои
опять, и опять же _строго_ _в_ _одну_ _сторону_. И так в цикле.

Односторонняя передача данных позволяет устроить "pipeline", когда
данные от N-го слоя поступают на вход N+1 исполняемого на другом
GPU или другом компьютере сети. С одной стороны. Но с другой стороны
общая задержка во всём пайплайне и принципиальная рекурсивность алгоритма
(для N+1 такта нужны выходные данные N-го такта) ограничивают скорость
вычислений. И имеет значение и задержка в вычислениях каждого слоя,
и задержки компьютерной сети/шины связаывающей слои.

При этом объём памяти каждого слоя может быть очень грубо оценён
примерно как объём модели подделённой на количество слоёв. Из этого
следует, что для DeepSeek, например, в распространённые на рынке GPU
с ценой уже заметно выше среднего вместятся на самом-то деле от силы
пару слоёв. Казалось бы, всё хорошо, и на одном GPU можно последовательно
посчитать все слои. Но тогда нужно из ОЗУ компьютера загрузить все
эти гигабайты в ОЗУ, обсчитать, получить результат передаваемый между
слоями в ОЗУ, и загружать следующий слой. Интерфейс между системной
памятью и GPU здесь начинает быть бутылочным горлышком. GPU включен
в шину PCI express 4.0 и более 30ГБайт/сек ожидать не приходится.
Что в разы меньше чем скорость работы CPU со своей памятью. А если
у нас положим так сделать нужно порядка 60 раз для получения одного
единственного токена, то возникает понимание, что на одном GPU практически
невозможно считать слои последовательно. Можно только на множестве GPU,
где каждый не будет постоянно перегружаться данными нового слоя, а лишь
получать входные и отдавать выходные данные для какого-то небольшого
множества слоёв, в пределе одного слоя для дешёвых GPU. Так ведь?

Следовательно, вариант с GPU имеет достаточно жёсткие ограничения.
Нужно много дорогих GPU, вкратце. Собственно такие конфигурации и
видны на Reddit. И эти GPU потом только продать на avito за 1/10 цены.
Ибо сети следующего поколения там могут начать не умещаться.

У обычных CPU есть преимущества и недостатки. Недостатки, понятно,
массово-параллельно считать не умеют, скорость низкая. Есть AVX-VNNI,
есть Advanced Matrix Extension. Каждое расширение ускоряет в разы,
но доступно только на последних и дорогих Intel CPU. А дешёвые и массово
доступные на рынке CPU, отработавшие уже свой срок в серверах и под
которые нет материнских плат, почему их массово продают -- этого не имеют.

Про десктопные CPU кажется можно сразу забыть. Там всегда ограничение
на возможный объём устанавливаемой памяти (да и число каналов). То же
касается APU (CPU + GPU в одном чипе). Казалось бы выглядит очень перспективно,
но нет. Всегда мало каналов памяти, всегда ограничен объём, есть большие
вопросы о поддержке софтом (кроме видеоигр).

Серверные CPU позволяют подключать много памяти. Это их основное сильное
преимущество. Всё начинает умещаться в память даже на однопроцессорной системе.
Уже нельзя сказать, что условный DeepSeek V5 не уместится. Есть потенциал
для расширения. Кроме того, существует ПО для обсчёта LLM по-частям на
отдельных компьютерах в сети. И при этом требования к объёму памяти каждого
компьютера, грубо, обратно пропорционально количеству компьютеров. Следовательно,
мини-кластер из обычных серверов имеет потенциал для апгрейда в будущем.
Можно и увеличить память в каждом, и нарастить число серверов.

Есть вопросы по применяемой сети для связи компьютеров в кластере, и
кажется Infiniband или PCIe-NTB много лучше, чем 10ГБит ethernet, и кажется
соединение компьютеров через интернет вовсе невозможно (даже миллисекундные
задержки умножат перформанс на ноль). Это, конечно, серьёзная проблема,
потому, что альтернативным и очень интересным способом запуска LLM было бы
распараллеливание на большом количестве компьютеров соединённых через интернет
(по-аналогии с тем, как добываются биткойны).

Потребление энергии. Вариант с CPU кажется малоприменим в первую очередь
из-за очень высокого потребления энергии. Таким частный дом отапливать можно,
а для квартиры -- перебор. GPU в этом смысле горазо эффективней. Если пишут,
что в среднем один сервер даёт токен в секунду, то для сколько-нибудь приемлемого
результата нужно два десятка матплат. А это -- киловатты.

Стоимость. 1) GPU, 2) память (БУ), 3) матплаты (их БУ нет практически), 4) процессоры (БУ).
Но хорошие процессоры с Advanced Matrix Extension настигают GPU по цене. А с AVX-VNNI
ещё нужно поискать. По цене "Регарда", понятно, никакого смысла не имеет. Есть БУ
сервера с LGA3647, но ценообразование мне непонятно. Они явно разукомплектованы, и там
явно не хватает чего-то жизненно важного. Насколько оно нужно для запуска бездисковой
конфигурации. Как минимум там радиаторы на процессор специфические и их нет.
Re: Запустить LLM локально.
От: hi_octane Беларусь  
Дата: 23.02.25 22:24
Оценка: 106 (1)
fk0> На Reddit вопрос кажется
fk0>уже расмотрели вдоль и поперёк и запускают LLM у себя дома. Если
fk0>отдельный дом это более реалистично чем квартира (уходит вопрос
fk0>охлаждения, шума и ограничения мощности).
Запускал LLM в квартире ещё до того как это стало мейнстримом

КМК, обычной 4090 (даже не 5090), достаточно, чтобы получать ответы от локальной модели, которые ещё год назад даже для подписчиков на облако были недоступны. И прогресс продолжается. От чего, планов городить какой-то сервер с тонной памяти под это дело (у меня) мотивации нет.

Что могу сказать по опыту — те ЛЛМ что в облаках, они покруче. Но не особо. Разница между закрытыми моделями и доступными локальными — примерно как между процессорами двух поколений. Главные причины слабого различия: у продавцов AI по подписке одна модель отвечает на вообще все вопросы — от "напиши стишок" до "объясни что на картинке". А во-вторых они тоже не могут выделить на пользователя такие уж огромные ресурсы — не сойдётся экономика, подписка начнёт стоить столько, что её перестанут покупать. Только у *2video моделей разница пока настолько ощутимая, что, кажется, от условной 5090 близкого уровня картинки дома не добиться. И то, судя по некоторым шедеврам порногенерации, кому-то всё-же удаётся.

Обычное физлицо, обычные проблемы уже может закрыть, просто подгружая отдельную LLM под текущую задачу. Типа собрался работать с кодом — запусти Qwen, собрался пару картинок сгенерить — возьми Flux, захотел текст сочинить на русском — возьми Вихря или Сайгу, разобрать голос — Сбер. Запрос начался с подумай — грузи рассуждающий дистиллят на базе DeepSeek, и т.д. И, с опорой на специализацию — потребительской видеокарты в общем-то (почти)достаточно для щястя. Перед тем как качать железо, я бы попробовал выжать всё возможное из чего-то типа двух-стадийной LLM, где сначала маленькая быстрая модель решает чем отвечать, а потом грузит специализированную. Но даже это, уже, в каком-то виде делается: в MoE (Mixture of Experts) моделях, и в экспериментальных конвейерах, где используется одна модель, но первым шагом под запрос составляется специализированный, проработанный промпт (вместо дефолтного you are a helpful assistant).
Re: Запустить LLM локально.
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 24.02.25 07:48
Оценка:
Здравствуйте, fk0, Вы писали:

fk0> 1) Продаются относительно дёшево БУ сервера. Из них можно собрать

fk0> мини-кластер.

Вот этот вариант рабочий, у меня товарищ собрал сервер на двух Xeon и две Теслы по 24 Гб видеопамяти туда же (какие конкретно не помню). Стоит это не дорого, потому что оборудование списывают, каждая Тесла обошлась тысяч 30 рублей, например. В итоге, модели туда помещаются большие, работает нормально. Весь сервер обошёлся по стоимости как одна 4090, а то и меньше.

Но я согласен с предыдущим оратором, что прогресс в LLM сейчас идёт так быстро, что 1-2 4090 может и хватить. К тому же алгоритмические возвомности для ускорения работы сеток растут тоже с каждым днём: flash attention, speculative decoding — вот это можно включить в той же lm studio просто мышкой и практически без потери качества скорость работы удваивается.
Re[2]: Запустить LLM локально.
От: fk0 Россия https://fk0.name
Дата: 24.02.25 12:34
Оценка:
Здравствуйте, Nuzhny, Вы писали:

fk0>> 1) Продаются относительно дёшево БУ сервера. Из них можно собрать

fk0>> мини-кластер.

N>Вот этот вариант рабочий, у меня товарищ собрал сервер на двух Xeon и две Теслы по 24 Гб видеопамяти туда же (какие конкретно не помню). Стоит это не дорого, потому что оборудование списывают, каждая Тесла обошлась тысяч 30 рублей, например. В итоге, модели туда помещаются большие, работает нормально. Весь сервер обошёлся по стоимости как одна 4090, а то и меньше.


Но я ж правильно понимаю, что допустим DeepSeek имеет где-то 61 слой, 700Гб 8-бит
квантованных данных, итого по ~12ГБайт на слой. И вот в Теслу я два слоя загружу,
в две теслы -- 4 слоя. А остальные 57 слоёв? На CPU считать? Так они тормозом
и будут, и вместо того, чтоб тратиться на Теслы, лучше купить ещё одну матьплату,
процессоры и память.

И все кто говорят, что они на видюхах запускают -- запускают или очень маленькие
модели, или у них видюхи очень большие и их очень много и очень дорого.
Re[2]: Запустить LLM локально.
От: fk0 Россия https://fk0.name
Дата: 24.02.25 12:34
Оценка:
Здравствуйте, hi_octane, Вы писали:

fk0>> На Reddit вопрос кажется

fk0>>уже расмотрели вдоль и поперёк и запускают LLM у себя дома. Если
fk0>>отдельный дом это более реалистично чем квартира (уходит вопрос
fk0>>охлаждения, шума и ограничения мощности).
_>Запускал LLM в квартире ещё до того как это стало мейнстримом

_>КМК, обычной 4090 (даже не 5090), достаточно, чтобы получать ответы от локальной модели, которые ещё год назад даже для подписчиков на облако были недоступны. И прогресс продолжается. От чего, планов городить какой-то сервер с тонной памяти под это дело (у меня) мотивации нет.


У модели полностью помещающейся в ОЗУ видеокарты, так ведь?
И это очень ограниченная модель. А тот же DeepSeek потребует
почти террабайт памяти у вычислителей, не важно каких, важно
чтобы это была непосредственно доступная вычислителю память,
пусть и распределённая по большому количеству вычислителей
(и вычисления будут распараллелены). Использовать вычислитель
"по очереди", постоянно перегружая его содержимое памяти из какой-то
другой отдельной памяти (системной памяти компьютера) -- не выйдет,
здесь будет бутылочное горлышко. Так же?


_>Обычное физлицо, обычные проблемы уже может закрыть, просто подгружая отдельную LLM под текущую задачу.

_> Типа собрался работать с кодом — запусти Qwen,

Маленькую LLM. Умещающуюася в видеокарту.
Re[3]: Запустить LLM локально.
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 24.02.25 13:50
Оценка: :)
Здравствуйте, fk0, Вы писали:

fk0> И все кто говорят, что они на видюхах запускают -- запускают или очень маленькие

fk0>модели, или у них видюхи очень большие и их очень много и очень дорого.

Именно так. Но там не сказать, что очень маленькие, на 32 миллиарда параметров, например, со скоростью несколько токенов в секунду.
Re: Запустить LLM локально.
От: BlackEric http://black-eric.lj.ru
Дата: 24.02.25 21:29
Оценка:
Здравствуйте, fk0, Вы писали:

fk0>Hello...


Расчет требуемой видеопамяти для LLM (RU)
We present basic math related to computation and memory usage for transformers (EN) — более подробно.

Можно уменьшить потребляемые ресурсы используя специализированные модели под задачи. Универсальные получаются плохо.

Ну и как по мне практическая польза начинается с моделей на 32B параметров. Редко на 14.
В общем 20GB видео памяти должно хватить. 16 — в обрез.
https://github.com/BlackEric001
Re: Запустить LLM локально.
От: __kot2  
Дата: 25.02.25 10:01
Оценка:
Здравствуйте, fk0, Вы писали:

fk0>Hello...


fk0> Как думаете, какие перспективы запуска LLM, наподобии DeepSeek

fk0>(более-менее полноценной, а не урезанной 1.5-битной версии) локально?
на самом деле LLM которая полезная будет я и на ноуте у себя запускал через ollama.
нейросетей всегда есть много вариантов включая те, которые даже на raspberry pi работать будут.

и спецаильно для того, чтобы не упираться в обьем оперативки ноута я купил на авито сервер. стоят они копейки с разборок датацентров, правда работают шумно, но поиграться как раз само то
Re[2]: Запустить LLM локально.
От: Tai Гондурас  
Дата: 25.02.25 10:03
Оценка:
Здравствуйте, __kot2, Вы писали:


__>и спецаильно для того, чтобы не упираться в обьем оперативки ноута я купил на авито сервер. стоят они копейки с разборок датацентров, правда работают шумно, но поиграться как раз само то


И что ты там наиграл?
Лучше колымить в Гондурасе, чем гондурасить на Колыме.
Re[3]: Запустить LLM локально.
От: __kot2  
Дата: 25.02.25 10:31
Оценка:
Здравствуйте, Tai, Вы писали:

Tai>Здравствуйте, __kot2, Вы писали:



__>>и спецаильно для того, чтобы не упираться в обьем оперативки ноута я купил на авито сервер. стоят они копейки с разборок датацентров, правда работают шумно, но поиграться как раз само то


Tai>И что ты там наиграл?

Да просто сам оценил уровень развития современных llm, нормальный уровень, юзабельный для очень многих приложений. И да, уровень llm растет с увеличением размера, но не прямо так пропорционально. По моему личному мнению для , там, умного дома и простейшей модели хватит и работать она будет на чем угодно

Вещь, которую многие упускают — да, качество самых большых моделей постоянно растет, но качество маленьких моделей на их основе растет еще быстрее. Современные мелкие модели по качеству обгоняют устаревшие большие
Отредактировано 25.02.2025 11:13 __kot2 . Предыдущая версия .
Re: Запустить LLM локально.
От: rm2  
Дата: 25.02.25 12:02
Оценка:
Здравствуйте, fk0, Вы писали:

fk0>Hello...


fk0> Как думаете, какие перспективы запуска LLM, наподобии DeepSeek

fk0>(более-менее полноценной, а не урезанной 1.5-битной версии) локально?


терабайт памяти (причем желательно DDR5, т.к. требуется большая пропускная способность) + процессор с поддержкой avx512 = 1-3 токена в секунду.
видеокарта с большим объемом памяти + 7 токенов в секунду.

пока что очень дорого для дома.
но индустрия получила очень хороший мотив для развития.
если раньше было не понятно, на кой в домашнем компе терабайт — теперь понятно, личный помощник без этого просто врядли будет работать, а мощностей датацентров на всех не хватит, да и модели там будут крутиться более крутые.
Re[2]: Запустить LLM локально.
От: BlackEric http://black-eric.lj.ru
Дата: 25.02.25 13:30
Оценка:
Здравствуйте, rm2, Вы писали:

rm2>терабайт памяти (причем желательно DDR5, т.к. требуется большая пропускная способность) + процессор с поддержкой avx512 = 1-3 токена в секунду.

rm2>видеокарта с большим объемом памяти + 7 токенов в секунду.

rm2>пока что очень дорого для дома.

rm2>но индустрия получила очень хороший мотив для развития.
rm2>если раньше было не понятно, на кой в домашнем компе терабайт — теперь понятно, личный помощник без этого просто врядли будет работать, а мощностей датацентров на всех не хватит, да и модели там будут крутиться более крутые.

И не все данные стоит отдавать в паблик. Только поэтому хочется иметь свой сервер.
https://github.com/BlackEric001
Re[4]: Запустить LLM локально.
От: Tai Гондурас  
Дата: 25.02.25 13:40
Оценка:
Здравствуйте, __kot2, Вы писали:


__>Да просто сам оценил уровень развития современных llm, нормальный уровень, юзабельный для очень многих приложений.



для каких именно? Именно что поиграться


Домашний LLM для серьезных задач sucks
Лучше колымить в Гондурасе, чем гондурасить на Колыме.
Re: Запустить LLM локально.
От: sergmalinin  
Дата: 25.02.25 18:43
Оценка:
Здравствуйте, fk0, Вы писали:

fk0>Hello...


fk0> Как думаете, какие перспективы запуска LLM, наподобии DeepSeek

fk0>(более-менее полноценной, а не урезанной 1.5-битной версии) локально?
fk0>В пределах ограничений имеющихся у среднего физ. лица. Т.е. вряд ли
fk0>рационально тратить на железо очень крупную сумму (в следующие два
Где-то 300тыр руб, бу сервер на Epyc 7K62 и 512Gb DDR4, скорость будет
примерно как на сайте deepseek, для квантованной Q4 модели
Видео https://www.youtube.com/watch?v=5Eqc8-qGv9Y
Можно арендовать похожий сервер на несколько часов и потестить это в реале.
Re[3]: Запустить LLM локально.
От: __kot2  
Дата: 26.02.25 05:18
Оценка:
BE>И не все данные стоит отдавать в паблик. Только поэтому хочется иметь свой сервер.
проблему отдачи данных в облако в незашифрованном виде пытаются решить с помощью гомоморфного шифрования. Уже есть достаточно серьезные стартапы в этой области
Re[5]: Запустить LLM локально.
От: __kot2  
Дата: 26.02.25 05:20
Оценка:
Здравствуйте, Tai, Вы писали:
Tai>Здравствуйте, __kot2, Вы писали:
__>>Да просто сам оценил уровень развития современных llm, нормальный уровень, юзабельный для очень многих приложений.
Tai>для каких именно? Именно что поиграться
Tai>Домашний LLM для серьезных задач sucks
Можно там домашний портативный зигатор или баттплаг с Ии сделать. Ну а если серьезно, то из того что знаю — художники и дизайнеры используют современные нейросети в том числе локальные и кастомные достаточно широко
Re[4]: Запустить LLM локально.
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 26.02.25 06:51
Оценка: +1 :)
Здравствуйте, __kot2, Вы писали:

__>проблему отдачи данных в облако в незашифрованном виде пытаются решить с помощью гомоморфного шифрования. Уже есть достаточно серьезные стартапы в этой области


Для гомоморфного шифрования можно пока только всякую линейщину использовать, да и работает оно очень медленно. Так что это дело явно не сегодняшнего дня
Re[5]: Запустить LLM локально.
От: __kot2  
Дата: 26.02.25 07:43
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Здравствуйте, __kot2, Вы писали:


__>>проблему отдачи данных в облако в незашифрованном виде пытаются решить с помощью гомоморфного шифрования. Уже есть достаточно серьезные стартапы в этой области


N>Для гомоморфного шифрования можно пока только всякую линейщину использовать, да и работает оно очень медленно. Так что это дело явно не сегодняшнего дня

я и говорю, что стартапы. они справляются со скоростью всякими fpga, а математика заметно продвинулась, но это уже их фишечки. короче, не удивлюсь, если через несколько лет будут уже популярные массовые решения
Re: Запустить LLM локально.
От: IT Россия linq2db.com
Дата: 14.03.25 14:40
Оценка:
Здравствуйте, fk0, Вы писали:

fk0> 2) GPU. Тут всё не однозначно. Кажется GPU "не масштабируется"


Всё зависит исключительно от количества видеопамяти. У меня 3090 и спокойно запускается https://ollama.com/library/deepseek-r1 32b, которой требуется 20 GB.
Товарищ воткнул себе две 3090 и развлекается уже с 70b (43 GB).
Если нам не помогут, то мы тоже никого не пощадим.
Отредактировано 14.03.2025 15:03 IT . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.