Джарвис — мечта многих гиков. Однако будем объективны: мы реально все ближе к его появлению. Я бы не очень хотел, чтобы все мои запросы передавались на серверы OpenAI, DeepSeek, Anthropic и других компаний. Ну и ещё с лета начал свою домашнюю рубрику — ЭЭЭЭКСПЕРИМЕНТЫ на домашнем сервере.
Я хотел собрать домашнюю станцию с полностью самостоятельной, self-hosted LLM моделью и настроить всё под себя. Однако я не знал, какой мощности сервер нужен, чтобы получить адекватную работоспособность. Практически не найти в сети нужные тесты, бенчмарки и эксперименты, так что, немного погрустив, нашел в шкафу свой старый добрый Intel NUC и понял — он и будет моим тестовым стендом!
Кратко по железу:
i5 8259U — 4 ядра, 8 потоков
32 GB памяти — DDR4 2400
SSD 980 — NVMe 512 GB

В целом просто неплохая рабочая станция. Памяти достаточно, чтобы вместить в себя среднюю модель, а вот процессор, конечно же, слабоват. Однако я решил, пока не будут известны необходимые ресурсы для запуска больших моделей, посижу на этом 🙂
Однако пока экспериментировал, наткнулся на интересную статью, где парень разворачивал DeepSeek на своем железе. Прочитав её, я, конечно, ��згрустнул, так как стоимость такого железа заставила бы прилично разориться. Однако статья меня вдохновила рассказать вам, как будет себя вести компьютер не за 30.000 долларов, а за 450 долларов! В общем, приступаем к обзору 🙂
Какие есть варианты запустить на сервере свою LLM?
Но как развернуть-то модели? На Hugging Face лежат тонны моделей на любой вкус и цвет, но чтобы запустить их, я совсем не хотел возиться с Python, да и хотелось что-то +/- подходящее для запуска на домашнем сервере без какой-либо серьезной настройки.
Поискав, нашел два варианта, в целом, оба хорошие, но немного разные и под разные задачи. Мы глубоко в них не будем копаться, лишь верхнеуровнево обсудим.
LocalAI
Безумно гибкий инструмент для локальной развертки моделей для разных задач. С одной стороны, он дает обратно совместимое OpenAI API, но помимо этого также дает API для других задач:
Генерация текста
Конвертация текста в аудио
Транскрипция аудио в текст
Генерация изображений
Использование функций OpenAI
Генерация эмбеддингов для векторных баз данных
Работа с ограниченными грамматиками
Загрузка моделей напрямую с Huggingface
Доступ к Vision API для работы с изображениями
Управление хранилищем данных
Ренкинг (оценка релевантности и ранжирование результатов)
P2P Inference (использование распределенной обработки данных)
И объективно, инструмент-то классный, но мне показалось, что оверкилл (ну и я его потестил, он, как мне показалось, не так хорошо работает, еще и сложнее в настройке).
Ollama
А вот тут гибкости не так много. Из преимуществ он также предоставляет обратно совместимое OpenAI API, но он гораздо проще с точки зрения конфигурации, а также очень прост в настройке и запуске. Фактически, он просто предоставляет возможности генерации текста и vision, чего, на самом деле, вполне хватит на большинство задач.
Но какую модель мы можем запустить на таком железе-то?
Тут принцип простой: фактически для корректной работы модель нужно умещать в памяти (RAM) — и тут все просто. У Ollama очень удобный сервис, фактически они вдохновлялись работой у Dockerhub — создали свой modelhub (кстати, ребята даже сделали свою альтернативу Dockerfile — Modelfile для конфигурирования моделей).
И дальше упираемся только в объем нашей памяти, а именно — на моем стенде всего 32GB памяти.
И с учетом моей прошлой статьи подумал, почему бы не взять в итоге сразу DeepSeek-r1 снова? Но флагманская версия весит аж полтерабайта, от чего, конечно же, явно ее не удастся запустить на моем железе. :D Но!
У них есть вариант на 32B, весящий всего 20GB, но по тестам не сильно уступающий флагманским моделям.

В общем, выбор был очевиден, а теперь самое интересное, на что она способна то?

Скорость оставляет желать лучшего... Фактически мы достигли скорости в районе 1 токена в секунду, что и в статье.
Но раз уже стенд был собран, не хотелось ост��навливаться и решил проверить, а какую скорость удастся получить на других моделях? В итоге нашел интересную модель, SmoLLM/2, которая фактически оптимизирована для работы на системах с ограниченным числом ресурсов, так что скорость ответа оказалась действительно неплохой. :D

Выводы
В общем, эксперимент получился интересным, но явно еще не законченным. Я планирую еще добавить несколько моделей и узнать их результат, однако мощности совсем не хватает (да и просто памяти тоже), от чего я задумался над идеей обновить свой домашний сервер на Minisforum. Однако мой Intel NUC, верой и правдой служивший столько лет, хочется отдать в добрые руки, так что я решил его разыграть среди подписчиков своего канала.
Ну и если ты хочешь чуть раньше видеть некоторые новости, а также увидеть тесты self-hosted LLM уже на minisforum, то милости прошу в канал. :)