(no subject)
May. 4th, 2025 12:10 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Стряхнул пыль со своего старого mining rig-а, в этот раз чтобы позапускать LLM-ки локально. Когда Бутерик перевёл эфир на PoS, майнинг на видео полностью потерял смысл, другие криптовалюты едва могли оправдать затраты на электричество (eth/btc после этого просел капитально), и с тех пор он простаивал. Идея в том, что совсем тяжёлые модели, аналоги всяких ChatGPT или Claude или DeepSeek V3, где сотни миллиардов параметров, запустить локально вряд ли получится. Это конечно, если вы не готовы прикупить какую-нибудь балалайку стоимостью $150-$300k, и потом разместить и запитать её. А это тоже будет непросто: там потребуется подвести примерно 10 киловатт в 6-8U и отвести столько же тепла. И быть готовым к тому, что та балалайка потеряет половину стоимости за 2-3 года, а бОльшую часть времени она всё равно будет простаивать. Это для корпорации с регуляторными требованиями (препятствующими отправке данных в публичные сервисы) может быть осмысленно, там эту машинку дёргать будут много людей постоянно, а её стоимость уменьшит налогооблагаемую прибыль, эффективно удешевив наполовину.
Но с другой стороны, может быть оно и не нужно? Люди добиваются неплохих результатов работая с моделями 30-72B, уверен, мне расскажут и о кейсах с применением моделей с гораздо меньшим числом параметров. Ok, скажем, выглядит интересно. Но как?
Мне было интересно как это сделать на том что было под рукой - видеокартах. Так-то есть и другие способы, например Apple Macs, там скорость памяти (546 GB/s M4 Max, 800 GB/s Studio M3 Ultra) не сильно хуже чем на GPU (~900 GB/s на RTX 3090). К слову, и по электричеству Маки всяко эффективнее. В обычных ПК скорость памяти сильно ниже (20-25 GB/s с одного канала DDR4, и как правило всего 1-2 канала).
Первое что я сделал запустив тот rig, это обновил CUDA и дрова Nvidia. Оно в общем-то тривиально, не хотите читать документацию вендора - туториалов типа этого полно. Увидеть как оно работает можно просто поставив ollama:
# curl -fsSL https://ollama.com/install.sh | sh
И начав задаватьглупые вопросы прямо с командной строки:
$ ollama run deepseek-r1:70b
Ollama сама всё подгрузит и запустит. На паре RTX 3090 оно прямо-таки залетает. Но как? 70 миллиардов 16-битных float-ов займут ~140 гигабайт?
Ну идея там в том, что для "дома и хобби" можно и использовать квантизацию, что-то вроде сжатия с потерями. Ollama - это по сути обёртка над llama.cpp, которая даёт доступ к какому-то своему небольшому подмножеству "избранных" моделей на их сайте. И на олламе по дефолту тот deepseek-r1:70b будет сжат с 4-битной точностью, а получившиеся 35 гигабайт влезают в 2 карты по 24 (ну, конечно, там ещё всякое должно будет влезть). Гораздо больше моделей на HugginFace, плюс и с разными степенями квантизации. Есть и закрытые модели (Mistral Large например, вам его дадут, но с условиями), и дико большие открытые - тот самый DeepSeek V3 671B или недавно вышедший Qwen3-235B-A22B. Есть мультимодальные модели, принимающие на вход или выдающие изображения/звук/видео вместе с текстом.
Ok, PoC осилили, что делать дальше? Дергать LLM-ки прямо из SSH, ну оно такое... Хотите простого решения "всё в одном" - поставьте LM Studio. Тут простой ChatGPT-like интерфейс, оно само найдёт, что можно задействовать на вашем ПК (CUDA для Nvidia, к слову над CUDA будет та же llama.cpp, ROCm, Vulkan для карт ATI/AMD, MLX для Apple Silicon маков). И вот это уже выглядит как что-то полезное - есть истории диалогов с контекстом, можно подгружать свои файлы и задавать вопросы модели про них.
Другой вариант: на свой лаптоп я поставил Anything LLM Desktop, фронтенд, который у меня дёргает Aphrodite Engine, который на хосте выполняет модели (это замена llama.cpp). Anything LLM может обращаться как к локальным моделям на локальных engine-ах (llama.cpp, ollama, vLLM, exllama), так и к эндпойнтам больших платных (ChatGPT, Google AI, Claude, DeepSeek V3 на SambaNova). Локальная Афродита может выполнять сжатую Mistral Large 123B (а это европейский конкурент здешних больших моделей) на всего лишь 4-х 3090-х, и при этом используемый метод сжатия (AWQ) теряет гораздо меньше информации чем обычно.
Но много видеокарт не обязательно, очень многие программисты положительно отзываются о Qwen Coder, который всего 30B, или Google Gemma3 27B. Даже одна ни к чему, есть всякие runpod.io и vast.ai, которые сдадут вам в аренду те multi-GPU rigs по полдоллара-доллар в час (если хочется затестить).
Пара слов о квантизации - очень многие говорят, что в 16 битах выполнять модели бессмысленно, на 8 битах будет также, но быстрее. На 6 битах потери будут минимальные, 5 ещё приемлемо, дальше пробуйте и решайте сами.
По материалам r/LocalLLaMA/ ))
Но с другой стороны, может быть оно и не нужно? Люди добиваются неплохих результатов работая с моделями 30-72B, уверен, мне расскажут и о кейсах с применением моделей с гораздо меньшим числом параметров. Ok, скажем, выглядит интересно. Но как?
Мне было интересно как это сделать на том что было под рукой - видеокартах. Так-то есть и другие способы, например Apple Macs, там скорость памяти (546 GB/s M4 Max, 800 GB/s Studio M3 Ultra) не сильно хуже чем на GPU (~900 GB/s на RTX 3090). К слову, и по электричеству Маки всяко эффективнее. В обычных ПК скорость памяти сильно ниже (20-25 GB/s с одного канала DDR4, и как правило всего 1-2 канала).
Первое что я сделал запустив тот rig, это обновил CUDA и дрова Nvidia. Оно в общем-то тривиально, не хотите читать документацию вендора - туториалов типа этого полно. Увидеть как оно работает можно просто поставив ollama:
# curl -fsSL https://ollama.com/install.sh | sh
И начав задавать
$ ollama run deepseek-r1:70b
Ollama сама всё подгрузит и запустит. На паре RTX 3090 оно прямо-таки залетает. Но как? 70 миллиардов 16-битных float-ов займут ~140 гигабайт?
Ну идея там в том, что для "дома и хобби" можно и использовать квантизацию, что-то вроде сжатия с потерями. Ollama - это по сути обёртка над llama.cpp, которая даёт доступ к какому-то своему небольшому подмножеству "избранных" моделей на их сайте. И на олламе по дефолту тот deepseek-r1:70b будет сжат с 4-битной точностью, а получившиеся 35 гигабайт влезают в 2 карты по 24 (ну, конечно, там ещё всякое должно будет влезть). Гораздо больше моделей на HugginFace, плюс и с разными степенями квантизации. Есть и закрытые модели (Mistral Large например, вам его дадут, но с условиями), и дико большие открытые - тот самый DeepSeek V3 671B или недавно вышедший Qwen3-235B-A22B. Есть мультимодальные модели, принимающие на вход или выдающие изображения/звук/видео вместе с текстом.
Ok, PoC осилили, что делать дальше? Дергать LLM-ки прямо из SSH, ну оно такое... Хотите простого решения "всё в одном" - поставьте LM Studio. Тут простой ChatGPT-like интерфейс, оно само найдёт, что можно задействовать на вашем ПК (CUDA для Nvidia, к слову над CUDA будет та же llama.cpp, ROCm, Vulkan для карт ATI/AMD, MLX для Apple Silicon маков). И вот это уже выглядит как что-то полезное - есть истории диалогов с контекстом, можно подгружать свои файлы и задавать вопросы модели про них.
Другой вариант: на свой лаптоп я поставил Anything LLM Desktop, фронтенд, который у меня дёргает Aphrodite Engine, который на хосте выполняет модели (это замена llama.cpp). Anything LLM может обращаться как к локальным моделям на локальных engine-ах (llama.cpp, ollama, vLLM, exllama), так и к эндпойнтам больших платных (ChatGPT, Google AI, Claude, DeepSeek V3 на SambaNova). Локальная Афродита может выполнять сжатую Mistral Large 123B (а это европейский конкурент здешних больших моделей) на всего лишь 4-х 3090-х, и при этом используемый метод сжатия (AWQ) теряет гораздо меньше информации чем обычно.
Но много видеокарт не обязательно, очень многие программисты положительно отзываются о Qwen Coder, который всего 30B, или Google Gemma3 27B. Даже одна ни к чему, есть всякие runpod.io и vast.ai, которые сдадут вам в аренду те multi-GPU rigs по полдоллара-доллар в час (если хочется затестить).
Пара слов о квантизации - очень многие говорят, что в 16 битах выполнять модели бессмысленно, на 8 битах будет также, но быстрее. На 6 битах потери будут минимальные, 5 ещё приемлемо, дальше пробуйте и решайте сами.
По материалам r/LocalLLaMA/ ))
no subject
Date: 2025-05-05 03:20 am (UTC)Зачем?
Почему бы не пользоваться LLM's API-s типа OpenAI?
no subject
Date: 2025-05-05 05:12 am (UTC)1) Не всё можно отправить туда. Неизвестно, ведут ли они логи запросов, а в процессе работы может быть нужным как раз отправить на анализ несколько документов, чтобы задавать вопросы в их контексте. Ну и большие провайдеры API как раз чарджат за токен, и при таком способе их получается много, даже если можно.
2) Большие провайдеры LLM - это бизнес. А значит подвержен влияниям правительств (требованиям цензуры), лойеров, всяческих busybody-активистов, и даже самого бизнеса, в чьих интересах может быть поманипулировать результатами, склонить к одной покупке и отвратить от другой.
3) Ну и интерес к локальному выполнению LLM в принципе есть, с девайсами типа Nvidia DGX Spark или AMD Ryzen AI Max 395+ его пытаются удовлетворить более "конвенциональными" методами, а inferencing на видеокартах (и ещё и на бытовых, а не дорогущих H100/B200/MI300X) отдаёт неким духом пионерства))
no subject
Date: 2025-05-05 05:18 am (UTC)Ну и что, что много токенов?
Токены стоят дешево. Гораздо дешевле, чем заниматься самостоятельным хостингом LLM.
А очень много тяжеловесных запросов вряд ли придётся делать.
> и интерес к локальному выполнению LLM в принципе есть
У кого есть интерес к локальному выполнению LLM? У работодателей?
no subject
Date: 2025-05-05 08:31 am (UTC)Это если не использовать по-максимуму context window, которое у того же Клода, например, в 2023 было 100k, а сейчас уже стало 500k.
> У кого есть интерес к локальному выполнению LLM? У работодателей?
У всяких любителей. Цена и скорость тех девайсов совсем не про корпорации или малый бизнес.
no subject
Date: 2025-05-05 12:46 pm (UTC)Если использовать context window, то надо оплачивать все эти 100k-500k токенов за каждый запрос?
no subject
Date: 2025-05-05 04:47 pm (UTC)https://www.reddit.com/r/LocalLLaMA/comments/18xlgso/how_much_are_1m_tokens/ - тут подсказали простой способ проверить, поставить SillyTavern, подключить к Мистралю, початиться, и посмотреть использование: https://console.mistral.ai/usage
no subject
Date: 2025-05-05 05:01 pm (UTC)Какой смысл перепосылать и перепарсивать весь контекст в сценариях агентов, которым нужно уметь сохранять контекст долгое время?
Может быть сохранение контекста без перепарсивания - будет решено в ближайшее время в OpenAI (и прочих LLM) API?
no subject
Date: 2025-05-05 05:27 pm (UTC)https://www.reddit.com/r/LangChain/comments/181xapd/why_arent_llm_apis_stateful_why_are_we_wasting/
no subject
Date: 2025-05-05 10:44 pm (UTC)https://www.reddit.com/r/LangChain/comments/181xapd/comment/kaflpmv/
The computational cost of training is orders of magnitude higher than inference, so we can’t at this point simply modify the weights and other parameters after each interaction.
===
Странно, что нет других путей быстро скорректировать базовую модель, добавив в неё дамп предыдущего обсуждения.
Парсить по словам, всё-таки, более затратно, чем добавить ранее посчитанные веса на группу в пару тысяч параметров.
no subject
Date: 2025-05-05 11:05 pm (UTC)no subject
Date: 2025-05-05 11:44 pm (UTC)Не саму модель корректировать, а только копию этой модели, которая используется для обработки запроса конкретного пользователя.
no subject
Date: 2025-05-05 11:59 pm (UTC)Кстати, вот ещё одно применение локального инференсинга - файнтюнинг. Открытые модели можно файнтюнить (понятное дело, не на своём железе, а на арендованном - но в принципе по карману), и потом уже локально выполнять и задавать вопросы.
no subject
Date: 2025-05-06 02:30 am (UTC)Да. Только держать в бинарном формате, а не в текстовом формате, который нужно долго парсить.
> Ну так сайт ChatGPT так и делает, просто держит это всё на стороне промежуточного сервера, а в LLM engine посылается этот diff + запрос.
Этот diff нужно каждый раз перепарсивать, что, теоретически, должно быть заметно дольше/дороже.
> Открытые модели можно файнтюнить
Да, но только в одном экземпляре на модель.
Интуитивно мне кажется, что держать одну стандартную модель на весь сервер + бинарный дифф для каждого агента - более масштабируемый подход.
Хотя, с другой стороны, агенты-люди - имеют только одну копию разума и переключаются между профессиями очень медленно (годы).
no subject
Date: 2025-05-07 03:19 am (UTC)no subject
Date: 2025-05-07 08:43 pm (UTC)Пользователи будут платить для создание копии, помесячный хостинг копии модели и будут обращаться к этом модели через API.
А компания будет администрировать миллионы копий LLM.
Это, вероятно, будет более практично, чем каждому пользователю учиться, как администрировать копию LLM.
Google Titans architecture
Date: 2025-05-07 09:30 pm (UTC)https://www.perplexity.ai/search/does-google-titans-architectur-66KTv.mXRUKiecqyrp_c4g#0
Does Google Titans architecture allow to preserve past conversations context for AI agents
Yes, Google’s Titans architecture is specifically designed to allow AI agents to preserve and utilize the context of past conversations, addressing a key limitation of earlier models like Transformers. Titans achieves this by integrating three types of memory inspired by human cognition: short-term memory for immediate context, long-term memory for retaining information over extended periods, and persistent memory for embedding learned patterns within the model.
This architecture enables AI agents to dynamically manage and recall information from previous interactions, making it possible to maintain coherence and context across much longer documents or conversations. For example, Titans can effectively process and remember information from contexts exceeding 2 million tokens, far surpassing the capabilities of current large language models. Additionally, the system uses a "surprise" mechanism to determine which information is worth retaining long-term, further optimizing memory use.
===