Джарвис — мечта многих гиков. Однако будем объективны: мы реально все ближе к его появлению. Я бы не очень хотел, чтобы все мои запросы передавались на серверы 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 для других задач:

  1. Генерация текста

  2. Конвертация текста в аудио

  3. Транскрипция аудио в текст

  4. Генерация изображений

  5. Использование функций OpenAI

  6. Генерация эмбеддингов для векторных баз данных

  7. Работа с ограниченными грамматиками

  8. Загрузка моделей напрямую с Huggingface

  9. Доступ к Vision API для работы с изображениями

  10. Управление хранилищем данных

  11. Ренкинг (оценка релевантности и ранжирование результатов)

  12. 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, то милости прошу в канал. :)