
Приветствую в рассказе о запуске моделей в слегка изолированном окружении, без ИИ-картинок, нейрослопа, ботов и прочего телеграма.
Локальный запуск ИИ-моделей (LLM) прост, а их работа на CPU вполне работоспособна. Но без должного опыта, приходится повозиться и понабивать шишек. Заодно предлагаю познакомиться с Linux.
Целевая аудитория - все желающие аккуратно попробовать свой локальный ИИ, но почему-то пока не сделавшие это. Посвящается преодолевающим свой внутренний барьер ИИ-ортодоксам. Уверенным пользователям Linux она будет мало интересна. (Да, я в курсе, что это элементарно. Заметка носит исключительно мотивирующий характер. Спасибо.)
Задача: начать использовать ИИ-модели с пользой, как дополнительный инструмент. (Личная цель - перевод текстов.)
Требования:
Независимость. Работа без передачи своих запросов в интернет, пусть даже на свой выделенный сервер в облаке.
Безопасность. Модель не должна* иметь доступ к моим данным. Да, я параноик. Звёздочка потому, что в итоге и с RAG хочется поиграть, но это на будущее.
Минимальные усилия и знания.
В наличии были:
"основной" рабочий компьютер (ноутбук) с Windows,
"свободный" настольный компьютер, достаточно мощный, без видеокарты, но со свободным SSD и запасом оперативной памяти,
многонемного времени.
Так получилось, что основная работа у меня на Windows, а в бэкграунде есть годы программирования, но не промышленного, а прикладного и эпизодического. Не чураюсь командной строки и python, но разобраться с тем же Docker-ом, например, руки не дошли. Так что могу смело называть себя "типичным почитателем Хабра".
Идея банальна: запускать модели на свободном компьютере и использовать их с основного. Классический клиент-сервер на разных устройствах. Конечно, всё получилось, и относительно не сложно. Почему бы и нет, скажете вы? Но это только на бумаге гладко. При этом и с линуксом поближе познакомился, да и на основном компьютере всё же пришлось кое-что установить.
Альтернативные варианты.
Для тех, кто разбирается, поле возможностей работы с локальным LLM намного шире. Под "разбирается" я имею в виду не просто запуск скриптов, а понимание процессов под капотом, и, в частности, вопросы безопасности. Особенно умиляет "однострочная" установка программ вида "curl -fsSL https://ollama.com/install.sh | ...". С появлением агентов с разной степенью самостоятельности этот вопрос будет стоять ещё жёстче. Ладно, не отвлекаемся. Варианты:
Запустить LLM-модель в виртуальной машине (HyperV, Virtualbox, Docker).
Не подошло, т.к. надо разбираться в среде виртуализации, доступностью модели внутри контейнеров, передача данных из/в контейнера и, главное, из-за слабого основного компьютера. Напомню, там Windows.
Для любителей Docker есть готовые рецепты https://habr.com/ru/articles/839392/ и https://habr.com/ru/articles/933908/ например.Использовать выделенный сервер (VDS).
Не подошло, т.к. надо аккуратно разбираться в подключении, и встаёт вопрос безопасности. Да и иметь этот сервер надо, в конце концов. Для серьёзной настройки LLM и виртуальных VDS есть хорошие статьи, как от хостеров - на них ссылок не даю, они и так везде на первых местах в поиске, так и от пользователей, например https://habr.com/ru/articles/991560/.
Поскольку "свободный" компьютер тоже периодически использовался, то вначале была попытка запустить на нём LMStudio в виртуалке. Не взлетело по указанным выше причинам, в первую очередь из-за особенностей подключения по сети. Да и накладные расходы (Windows -> контейнер -> LLM) смущали.
Решил сделать dual-boot Windows/Linux на отдельном SSD на свободном компьютере.
Был выбран Linux Mint (основан на Debian) за простоту. Немного сомневался, но оказалось, что этот Linux и вправду удобный и простой. На него установлен LMStudio, загружены модели и настроен сервер.
На основном компьютере установил open-webui и подключил к серверу. Постфактум оказалось, что логично было бы установить его на тот же компьютер, что и LMStudio, но на тот момент я даже не предполагал, что поиск простого клиента для LLM под Windows окажется проблемой. Кроме того, контролировать установленный python-сервис в Linux оказалось бы отдельной задачей, а гарантированно контролировать - скорее всего неподъёмной.
1. Установка Linux (свободный компьютер):
Скачан iso-образ Linux Mint (2.8Гб), https://linuxmint.com/ . Из предложенных вариантов выбран образ с оконным менеджером xfce, его хвалили за минимализм. Подтверждаю: выглядит лаконично, похож на Windows, понравился.
Создана загрузочная флешка с помощью Ventoy. Последние версии Ventoy форматируют флешку USB в два раздела: один скрытый загрузочный, а второй пустой. На появившийся пустой диск надо просто скопировать образ iso.

При загрузке с флешки загрузчик Ventoy предложит загрузку с этого образа. С USB 2.0 загружается минут 5-10, но успешно.
После запуска Linux Mint на рабочем столе будет единственный ярлык "Install Linux Mint", запустить его и следовать инструкции.
Рекомендую сразу выставить русский язык.
Если надо сохранить какие-то из разделов диска, на этапе “Installation type” выбирайте второй пункт (“Something else”).

КРИТИЧЕСКИ ВАЖНО: внимательно выбирайте диск для установки!
В Linux-е диски именуются как /sda.., /sdb.., /sdc.. (см. букву перед первой цифрой), а его разделы как sdb1, sdb2, и т.д. (см. первую цифру). Хорошо, что пишется размер, мне это очень помогло сориентироваться.
Кроме того, идентификации способствует тот факт, что системный диск с Windows (10, 11) обычно содержит скрытые специальные разделы для загрузки (~100 мегабайт) и восстановления (~500 мегабайт). На скриншоте ниже пример такого диска (/sdb). Не трогайте этот диск и его разделы, если хотите сохранить Windows. И с данными будьте осторожны, если есть шанс их затереть.
От души прошу - сделайте бэкап!
Да просто тупо скопировать данные на внешний диск или флешку тоже сойдёт. Вот правда. НИКТО НЕ ПОЖАЛЕЛ, ЧТО БЭКАП ЕСТЬ! Но помните правила личной гигиены: не давайте свой личный бэкап в руки незнакомым людям в форме. Всё, проехали. На Хабре есть целый хаб, также см. сроки хранения на разных носителях.
Возможно, потребуется удалять другие разделы и создать новый. Разделы удаляются и создаются по кнопкам "+" и "-". Для смелых: можно менять размер разделов. Я делал всё по умолчанию: создал один раздел на отдельном SSD-диске. Тип файловой системы - ext4.
Далее надо обязательно поставить галочку, где должна быть корневая папка "/" - на свежесозданный раздел. А в выпадающем списке выберите этот раздел для размещения первичного загрузчика (Device for boot loader installation).

Одна из фишек Linux в том, что потом с этим загрузчиком можно безболезненно выбирать Linux или имеющийся на этом компьютере Windows. Для этого надо сделать паузу в загрузчике на несколько секунд, и при необходимости выбирать загружаемую систему, см. подробности в конце статьи.
Далее пришлось немного допилить напильником настроить. Повторюсь, что интерфейс xfce очень похож на интерфейс Windows, всё работает интуитивно понятно, включая правую кнопку мыши.
-
Загрузиться в Linux (можно сразу изменить настройки BIOS для загрузки по умолчанию).
Здесь меня ждал первый сюрприз. "Из коробки" переключение между русской и английской раскладками не работало. Перебрал все знакомые комбинации - ничего. (Позже выяснил, что это не баг, а так и задумано, точнее, зависит от оконного менеджера. Говорят, что в xfce по умолчанию левый Shift + CapsLock).
Как починить: запустить Настройки системы либо напрямую из меню Пуск (первый скриншот, значок с двумя переключателями) и задать сочетание клавиш для переключения. Либо до настроек системы можно добраться с начального экрана настройки "Добро пожаловать/Первые шаги", которые открывается при первом запуске. Его также можно найти в меню Пуск под именем "Окно приветствия".

Также стоит добавить индикатор раскладки на панель внизу. Правая кнопка мыши на нижнюю панель и добавление соответствующего элемента, см. скриншоты.

2. Установка LMStudio (Linux)
Сразу про альтернативы: llama-cpp (хорошая статья на Хабре), ollama (надстройка над llama-cpp), см. также комментарии в https://habr.com/ru/articles/991560/.
LMStudio позволяет удобно загружать модели в разных форматах, сразу работать с ними в чате, а главное - давать к ним доступ через API, доступное по сети.
Используются модели в формате GGUF и интерфейс взаимодействия (API) OpenAI.
Скачать файл-установщик c сайта https://lmstudio.ai/.
Для Debian-based Linux есть два варианта распространения, в виде .deb файла (условно - инсталлятор) и AppImage (портативный вариант). Я использовал AppImage-вариант.Дать разрешение скачанному файлу на запуск (правой кнопкой мыши -> сделать исполняемым), после этого можно запускать двойным кликом.

Скачать нужные модели. Интерфейс для скачивания моделей достаточно удобный, здесь же можно протестировать чат.
Имейте в виду, некоторые модели работают существенно медленнее (у некоторых - существенно дольше идёт обработка промпта), в таком случае просто попробуйте другие модели.
Настройка модели. При запуске без видеокарты (GPU) рекомендации из интернета - установить GPU-layers в 0, и отключить KW-кеш в GPU.
Проверить работу модели в чате. На вкладке Developer выводится текущее состояние модели. Удобно, чтобы понимать, на какой стадии (разбор промпта или генерации) находится процесс.
Включить сервер на вкладке Developer / Local Server и (важно!) включить работу в сети (Serve on Local Network). Если клиент (open-webui) будет установлен на этот же компьютер, то этот переключатель можно не трогать. Запомните порт (можно менять) и адрес, по которому будет доступен сервер

Про выбор моделей ничего нового сказать не могу: экспериментируйте. Постоянно появляются новые модели, на Хабре много статей. Например, выбор в зависимости от объёма памяти есть в Топ локальных нейросетей 2026: полный суверенитет без интернета.
Для подключения к моделям через сервер нужен клиент, который (условно) правильно формирует json-запрос с промптом, может выбрать конкретную модель через API сервера и пр. Хвалят AnythingLLM, но он не везде недоступен, см. примечания в конце статьи.
В качестве клиента выбран open-webui как достаточно популярный. Он предоставляет удобный доступ к серверу из браузера, см. титульную КДПВ.
3. Установка open-webui (на основной компьютер с Windows)
Open-webui запускается с помощью Python. Для Linux Python установлен по умолчанию, но у меня, напомню, на основном компьютере Windows.
Для управления Python и разными пакетами рекомендую miniforge3 (создаёт изолированные окружения Python), в котором надо создать отдельное окружение с Python 3.11.
Предполагается, что Python уже установлен и доступен.
Miniforge, Miniconda, Powershell и окружения Python
Историческое отступление: компания Anaconda cоздала одноимённый мощный комбайн для работы с Python, вместе с удобным менеджером пакетов conda и своим репозиторием пакетов, в качестве альтернативы pip. Conda позволяет создать изолированные окружения со своими версиями Python и наборами своих пакетов. Для установки можно использовать miniconda от Anaconda - лёгкий вариант, но к нему надо подключить репозиторий ("канал") conda-forge, или при установке явно указывать этот канал, чтобы получать свежие версии пакетов.
Идея окружений оказалась удачной, и появилась open-source альтернатива от сообщества (внутри тот же менеджер conda):
Miniforge3 - легковесный менеджер зависимостей conda с Python 3, который по умолчанию берёт пакеты из "более актуального" репозитория conda-forge.
Я рекомендую использовать именно его.
Для установки open-webui подходят любые варианты anaconda/miniconda/condaforge, т.к. open-webui устанавливается через pip.
Пример создания окружения с именем "testai" c конкретной версией Python:
conda create -n testai python=3.11
После создания окружение нужно активировать (лучше в консоли Powershell, чем cmd; надо делать каждый раз, иначе python из данного окружения не будет доступен):
PS> conda activate testai
-
Установка open-webui (в активированное окружение):
pip install open-webui Подготовка open-webui.
Тут ждёт третий подводный камень: перед запуском требуется провести некоторые манипуляции с переменными среды.
Как менять переменные среды пользователя в Windows
Вариант 1: через cmd/Powershell:setx VARNAME "value"
Устанавливает постоянное значение переменной среды для текущего пользователя, сохраняется после перезагрузки. Если значение без пробелов, можно без кавычек, например setx VARNAME 1.
Не забудьте "x" в конце! Команда set VARNAME "value" устанавливает переменную среды только на текущую сессию!
(Внезапно столкнулся с известным багом в Powershell: если открыть консоль при активной русской раскладке, то ввод заглавных английских букв может не работать! Подробности и решение в https://github.com/PowerShell/PowerShell/issues/10794 )
Вариант 2: через графический интерфейс.
В поиске меню Пуск ищите "переменные … " (Изменение переменных среды текущего пользователя) в русской, или "environment …" (Edit environment variables for your account) в английской Windows.
а) При первом запуске происходит обновление (миграция) базы данных. Для корректного выполнения надо установить однопоточный режим. Об этом написано в документации, но "из коробки" open-webui падает.
установить переменную средыUVICORN_WORKERS = 1
(потом я забыл её поменять, поэтому не знаю, стоит ли возвращать)б) Падение из-за неизвестной кодировки. То ли причина была в UVICORN WORKERS, то ли забыл задокументировать решение.в) (режим паранойи) По умолчанию open-webui будет скачивать модели из интернета для локального использования. Наша цель - заставить подключаться исключительно к LMStudio. Для этого надо включить оффлайн-режим (правда, есть ощущение, что эта настройка не совсем работает, т.к. судя по выводу в консоль что-то из интернета подтягивается):
HF_HUB_OFFLINE = 1г) (опционально) Отключить парольный доступ (спасибо статье Огромный гайд по настройке рабочего окружения: Linux, VScode, Python).
WEBUI_AUTH = 0
Нюанс: отключать его надо до создания администратора при первом запуске, иначе будет ошибка. В таком случае можно удалить базу данных open-webui, см. примечания.

-
Запуск open-webui (в активированном окружении Python):
open-webui serve Подключение к open-webui: открыть браузер и ввести
http://127.0.0.1:8080(если на основном компьютере), или соответствующий IP/порт, если open-webui также установлена на "свободном" компьютере. Обратите внимание: протокол http, a не https!(если не отключён парольный доступ) При первом запуске после красивых картинок предложат "зарегистрировать" администратора. Почту можно вписать любую, понятия не имею, используется ли она как-то; для локального использования можно ввести не существующую почту. Почту и пароль запомните. Сброс делать легко стиранием базы (см. ниже), но настраивать придётся заново.
При запуске может ругаться на отсутствие ffmpeg/avconv, но пока проблем не было. Запускается долго, несколько минут
-
Финальная часть: соединение open-webui с LMStudio.
Кружок с иконкой пользователя в левом нижнем углу -> Настройки/Settings. (Там же можно выбрать язык интерфейса, русский есть).
Перейти на Admin settings (незаметная серая надпись слева внизу окна настроек) и далее Connections.
-
Создать подключение и прописать там адрес запущенной LMStudio.
Если подключение создаётся в блоке OpenAI API Connections, то указывать надо OpenAI-compatible endpoint из LMStudio, без .../api/... в адресной строке, см. также скриншот LMStudio выше, например:http://192.168.1.62:1234/v1
Остальные параметры менять не обязательно, всё работает и так.Здесь же можно отключить или удалить подключение по умолчанию к api.openai.com.

-
Открыть вкладку Новый чат (New Chat) в левом столбце, выбрать модель, и … profit!
Если список моделей пустой, значит, некорректно настроено подключение к LMStudio или нет связи между компьютерами. Напомню, что в LMStudio во вкладке сервера отображается статус обработки запроса, смотрите туда, если долго нет отклика.
Готово! Теперь у вас есть лагальный локальный личный помощник!
Скорость выдачи (token rate) для средних моделей в 8-20Гб (квантизация 4L_M) небольшая, около 5-10 токенов в секунду. Но она почти совпадает с моей скоростью чтения, поэтому для первого впечатления и знакомства с ИИшечками подходит идеально.
Модели скачиваются в LMStudio удобно, причём они скачиваются независимо от генерации ответов. Надо только не забывать их "подключать" к серверу. Open-webui подцепляет их хорошо. Есть модели без цензуры, ищите "uncensored".
Открытые вопросы и не решённые задачи:
Aвтоматизация запуска LMStudio при запуске компьютера. Можно добавить Appimage в специальную папку, но она будет запускаться только после входа в систему.
Качественная настройка LMStudio для более быстрого выполнения запросов (inference) и его обработки.
Более надёжное отключение open-webui от своих сервисов (арена, оценки моделей) и т.п.; нужна инструкция.
Доступ с других устройств, напр. мобильного телефона. Нужен проверенный клиент/приложение, хотя бы для Android.
Доступ не из дома. Необходимо корректно настроить авторизацию/доступ, и решить вопросы безопасности.
Запуск графических моделей.
RAG (Retrieval-Augmented Generation) — генерация, дополненная поиском.
Как передавать данные между Linux и Windows без танцев с бубном.
Какой класс видеокарт будет максимально полезен для дополнения сборки (бюджет / объём 8-12-16-... Гб?).
Как подключить личного помощника по программированию (вездесущие агенты).
UPD: буквально вчера вышла статья на Хабре про это (+ см. комментарии): Пробуем использовать локальные LLM для написания кода.
Да, вопросы по большей части элементарные, но - опять же - для начинающего пользователя становятся болотом. Помощь в комментариях приветствуется!
Разное и примечания:
По умолчанию open-webui использует авторизацию и требует создать пользователя/пароль. Если не используете режим без авторизации (напомню, с помощью переменной среды WEBUI_AUTH = 0), и забыли пароль, проще всего стереть файл базы данных. Пропадут все настройки, в том числе подключения. База лежит внутри окружения Python, типа
...\miniforge3\envs\<env-name>\Lib\site-packages\open_webui\data\webui.db-
Лучше всего, если оба компьютера подключены по кабелю. Если основной компьютер подключён по Wifi, то надо отключить изоляцию Wifi-клиентов на роутере. Короче, сделать так, чтобы компьютер с LMStudio был виден с основного.
Как проверять доступность по ip/порту:
В Linux:telnet <hostname_or_IP> <port_number>
В Windows (Powershell):Test-NetConnection -ComputerName <hostname_or_IP> -Port <port_number> -
Dual-boot Windows/Linux без ручного входа в BIOS.
На "свободном" компьютере в BIOS стоит сделать загрузку раздела с Linux по умолчанию (в первую очередь). А его загрузчик (GRUB) определяет, какие ещё варианты загрузки (кроме Linux) есть на этом компьютере. Можно настроить задержку в несколько секунд и последующую загрузку Linux, см. скриншоты. Удобство в том, то за это время можно успеть выбрать загрузку в Windows, если понадобится.

Альтернативные клиенты.
Добрый google выдал целый список, среди которых часть сайтов не открывается (LibreChat, LobeChat), что-то (AnythingLLM) заблокировано по IP или стране, Jan.ai использует только свои модели. В общем, пока open-webui остался без альтернатив, извините за тавтологию.-
Как собрать компьютер для LLM.
В свете роста цен на память и прочих безобразий, главным расходом будет покупка будет SSD (желательно в форм-факторе M.2, с поддержкой NVME). И смотрите характеристики, у "китайских" они могут в несколько раз отличаться от брендовых.Для мат-платы и памяти Авито в помощь. Видел предложения использовать DDR3 вместе с многоядерными Intel Xeon v3, на китайских материнских платах. Подробности есть на https://e5450.com/ Сайт был посвящён сборкам на Xeon и закупкам на Aliexpress с реферальными ссылками, но давно не обновлялся, и Aliexpress уже не торт. При этом база и описание бюджетных комплектующих впечатляющая. Для любителей, т.к. по отзывам есть проблемы с совместимостью процессоров и поддержкой BOIS. Второй минус - обзор ограничен только процессорами Xeon, а у них основная проблема состоит в том, что надо подобрать хорошее питание и охлаждение. Наконец, если рассматривать апгрейд с установкой видеокарты, вопросы по совместимости могут стать критичными.
(Пока готовил статью, вышли удивительные новости о DDR3.) Ссылки посерьёзнее по настройке локальных LLM:
упомянутая выше статья Свой ИИ без облаков: практический гайд по llama.cpp + Qwen (с тонкой настройкой эффективности, Хабр),
Пошаговый запуск собственного LLM сервера от А до Я (с видеокартой, Хабр),
Топ локальных нейросетей 2026: полный суверенитет без интернета (Хабр), и, наконец,
хардкор по настройке LLM в домашних условиях: Распределённый инференс и шардирование LLM. Часть 1: … (часть 2 и часть 3, последняя как раз про open-webui).
P.S. самым сложным было набирать статью - тот ещё адок. Извините. Непонятно, как вставлять несколько скриншотов в ряд. В html-режиме добавлять рисунки можно только ссылками. В стандартном редакторе непонятно, как делать вложенные списки (один чудом получился, я так и не понял как), внутри списка делать спойлер или картинку и пр. Частично спас вариант копирования из Google Docs + ручное склеивание скриншотов в imagemagick.
Комментарии (3)

SerjV
18.04.2026 11:57а лучше не про процессор, а про практику проброса GPU с одного компа на другой... было бы интересно почитать
Hubr2025
Спасибо за статью, хотелось бы ещё услышать что за процессор. И насколько это полезно/быстро в реальных задачах - просто, как мне кажется, лучше будет обратиться к облачным моделям. (Могу ошибаться)
afterone Автор
Процессор i7-12700, обычный, не "К", 12 ядер, но нормальных (не "efficient") всего 8. Работает откровенно небыстро, больше для экспериментов, так сказать, базовый сетап. Переводил по 5-10-15 страниц технического текста за раз 10-30 минут. После трёх-четырёх раз выпадал в ошибку, приходилось перезапускать модель (Qwen3-30b-a3b-instruct с сжатием Q4_K_S). Точно не засекал, просто запускал и уходил. Опять же - очень много времени уходит на первый этап, разбор промпта и старт. Просто чат в течение минуты начинает отвечать. Обычно советуют небольшие модели для конкретных задач, но я серьёзно не изучал. Есть эксперименты с кодингом, https://habr.com/ru/articles/1024884/ но на Мак Про с 48 Gb unified памяти (она и для процессора и для видео), поэтому надо делить скорость в несколько раз. По-видимому, надо раскошеливаться на видеокарту (