Локальный чатбот без ограничений: гайд по LM Studio и открытым LLM
- понедельник, 30 июня 2025 г. в 00:00:12
В этой статье мы не только установим локальный (и бесплатный) аналог ChatGPT, но и сделаем обзор самых важных открытых LLM, разберёмся в продвинутых настройках программы LM Studio, подключим чатбота к Visual Studio Code и научим его помогать нам в программировании. А ещё мы посмотрим, как можно тонко настраивать поведение модели с помощью системных промптов.
LLM (Large Language Model) — это генеративная нейросеть, обученная на огромных объёмах текстов. Она способна понимать запросы, вести диалог и генерировать связный текст по заданному контексту. В просторечии — «чатбот» (хотя это слово существовало задолго до появления нейросетей).
Ведь есть же ChatGPT, Claude, DeepSeek, Gemini...
На самом деле причин хостить чатбота у себя на компьютере — масса. Вот лишь некоторые:
Приватность. Ни один байт данных не уходит на чужие серверы. Это особенно важно, если мы работаем с чувствительной или закрытой информацией: финансы, медицина, корпоративные проекты. Например, недавно несколько инженеров Samsung случайно загрузили конфиденциальный исходный код в ChatGPT — то есть на сервер частной компании OpenAI!
Прочли бы они эту статью — они бы просто поставили LM Studio и избежали выговора начальника (или увольнения).
Отсутствие цензуры и ограничений. Почти все облачные LLM имеют строгие фильтры и модерацию. Есть темы, на которые они просто откажутся с вами говорить — будь то технические детали, политика, безопасность или даже философия. Да, иногда ограничения можно обойти хитрой «промпт‑инженерией», но полной свободы в облаке нет — это риски для бизнеса, который всегда предпочтёт перестраховаться.
Поддержка разных моделей. В облаке можно пообщаться только с теми моделями, которые предоставляет сервис. Локально же можем запустить любую открытую LLM, подходящую под конкретную задачу: Mistral для скорости, LLaMA3 для качества ответов, DeepSeek‑Coder или CodeGemma — как ассистент для кодинга.
Интеграция в проекты — свою модель мы можем интегрировать в телеграм‑бот, свой ИИ‑стартап или кодингового асистента в IDE. Даже если в проде наш проект будет работать на облачной LLM — тестировать лучше локально.
Обучение и настройка. В облаке нельзя дообучить проприетарные модели вроде GPT-4o или Claude — даже за деньги. Максимум — настройка с помощью системного промпта или "инструкционного" стиля общения. Локально же мы можем делать fine-tuning, подключать RAG, настраивать стиль и поведение модели, полностью контролируя процесс.
Бесплатность. Любой облачный сервис либо требует подписки, либо ограничивает по количеству токенов в сутки или в месяц. С локальной LLM мы ограничены только ресурсами нашего компьютера. И зачем платить подписку за Cursor, когда можно настроить локального кодингового ассистента в Visual Studio Code бесплатно?
Конечно, будут. Запустить ту же модель, что работает в облаке, не всегда получится:
У нас может не хватить аппаратных ресурсов на полную версию модели и придётся использовать облегчённую (например, у облачной версии DeepSeek — 685 миллиардов параметров, тогда как моя RTX 4070 Ti Super подтормаживает уже на модели в 32 миллиарда). И вообще без минимум 16 GB RAM это дело заранее безнадёжное.
Некоторые модели кроме причины выше ещё и попросту недоступны публично — такие как ChatGPT-4o, Claude 3 и Gemini 1.5.
Из‑за двух пунктов выше приходится запускать облегчённые версии моделей. Они быстрее и легче, но:
менее точны
могут давать более «плоские» ответы
не всегда справляются с комплексными задачами так же хорошо, как GPT-4o или Claude
Конечно, если у нас есть кластер из серверных GPU, то можно запустить тот самый нашумевший DeepSeek‑685B* без компромиссов — но большинству пользователей придётся довольствоваться более лёгкими моделями.
*цифра перед b, например, 658b — обозначает сколько миллиардов (billons) параметров в данной версии модели. Чем больше — тем модель качественнее рассуждает, но тем и требовательнее к железу. Золотой серединой для обычного потребительского железа c GPU можно считать 16–22b.
Хотя запуск локальных моделей возможен даже на ноутбуке, комфорт работы сильно зависит от конфигурации.
ОЗУ: от 16 GB, желательно 32 GB
GPU: любой с 6–8 GB VRAM, например RTX 3060 / 4060
Apple M1/M2/M3 (16–24 GB RAM)
Что сможем запускать: модели до 7B параметров (Q4/K_M)
Хорошо подойдут:
MacBook Pro M1/M2/M3 с 16+ GB RAM
ПК с RTX 3060 / 4060 / RX 7600
ОЗУ: 32–64 GB
GPU: RTX 4070 / 4070 Ti / 4070 Ti Super / RX 7900 XT
Что сможем комфортно запускать: Модели до 13B–22B параметров (включая DeepSeek‑Coder-6.7B и LLaMA 13B)
Такая сборка позволяет:
Работать в IDE и запускать модель параллельно
Использовать ассистента в режиме «почти real‑time»
ОЗУ: от 64 GB
GPU: RTX 4090 (24 GB VRAM) или A6000 / H100
Модели: до 33B–70B, в том числе Mixtral, DeepSeek‑Coder‑33B
На таких машинах можно:
Проводить бенчмарки, RAG и тонкую настройку
Использовать модели уровня ChatGPT-3.5 по качеству и скорости
≤ 9 b — ноутбуки с RTX 4060 / MacBook М1 16 GB, real-time
9 – 22 b — RTX 4070/7900 XT, <1 с токен
22 – 70 b — RTX 4090 24 GB или A6000, «рабочая» скорость
70 b + MoE — одна RTX 4090 вытянет (активных 20 B), но лучше 2×GPU
> 200b — только многокарта или кластер (H100, A100)
Модель | Параметры | GPU | Оценочная скорость |
---|---|---|---|
DeepSeek 685B | 685 миллиардов | Кластеры с 8× H100 (80 GB) | ~ real‑time |
DeepSeek‑Coder 33B | 33 миллиарда | RTX Pro 6000 | ~ real‑time |
DeepSeek‑Coder 33B | 33 миллиарда | RTX 4070 Ti Super | крайне медленно |
DeepSeek‑Coder 6.7B | 6.7 миллиардов | RTX 4070 Ti Super | почти мгновенно |
LM Studio — это одно из самых удобных десктопных приложений для запуска локальных LLM.
Более опытные пользователи, возможно, предпочтут Ollama — он гибче и лучше подходит для автоматизации, но не имеет графического интерфейса «из коробки» (хотя и можно подключить отдельно). Для большинства задач работы с языковыми моделями LM Studio более чем достаточно — тем более, что обе программы под капотом используют один и тот же движок — llama.cpp.
На момент написания статьи LM Studio умеет:
Предоставлять ChatGPT‑подобный интерфейс для диалога с моделью. Диалоги можно дублировать, произвольно удалять и редактировать сообщения — в общем, куда большая свобода, чем в ChatGPT.
Discovery service для моделей с превью — можно находить языковые модели прямо в окне LM Studio и даже производить фильтрацию моделей, подходящих для нашего железа. Скачивать модели с HuggingFace так же можно.
Скачивать и переключать языковые модели в один клик.
Настраивать системный промпт. Это позволяет задать «персональность» модели: стиль общения, роль, тон и поведение.
Работать как локальный сервер с OpenAI‑совместимым API. Можно подключать модель к Telegram‑боту, использовать в сторонних приложениях или использовать модель как движок для AI‑ассистента в IDE.
Менять параметры генерации — top_p
, top_k
и прочие. Об этом подробнее ниже.
MCP сервер.
RAG — позволяет загружать PDF-документы и вести диалог на основе их содержания. Объёмные документы будут проиндексированы как классический RAG, документы поменьше будут загружены целиком в контекст.
LM Studio доступна на Mac, Windows (вкл. Arm) и Linux, а установка не требует каких‑либо манипуляций. Просто переходим сюда, выбираем свою платформу и ставим.
После установки мы видим стартовое окно:
По умолчанию интерфейс установлен в режиме User, но мы с вами взрослые, поэтому сразу переключаемся на Developer:
Далее нажимаем на Select a model to load и LM Studio заботливо нам предложит gemma-3 в подходящей для нашего железа сборке:
Ждём, пока скачиваются 6–8 ГБ LLM модели...
Скачиваем, чатимся, PROFIT!
Можно заканчивать тутор? Как бы не так.
LM Studio позволят нам скачивать модели двумя способами — через собственный маркетплейс (кнопка лупы фиолетового цвета) или через внешние сайты, вроде HuggingFace.
Во встроенном маркетплейс удобным образом промаркированы модели с reasoning, распознаванием изобраений и те, которые были адаптированы для использования в составе тулзов.
А теперь мы отвлечёмся от собственно LM Studio и разберёмся с основными открытыми LLM. Существуют базовые модели: LLaMA, Mistral, Gemma, Qwen, DeepSeek и их fine‑tuned версии со специализацией на более «игривое» общение, кодинг, снятие цензуры, специфических сценарий общений.
В названиях моделей, помимо размера (например, 24b
), мы часто встретим суффиксы вроде Q4_K_M
. Это значит, что модель квантована — сжата с некоторой потерей качества как JPEG, только не для изображений, а для нейросетей.
Все модели, доступные для скачивания через LM Studio, уже идут в квантованном виде — это позволяет запускать их на обычном потребительском железе, без серверных GPU.
Квантование — это компромисс между точностью и производительностью: модель занимает меньше памяти, работает быстрее, но может немного терять в качестве.
Если хочется разобраться в технических тонкостях — у меня есть отдельная статья про квантование.
А пока достаточно запомнить:
чем выше цифра после
Q
— тем точнее модель, но тем тяжелее она запускается.Q8
- сохраняет наибольшее качество, но требует больше VRAM.Q2
иQ3
- слишком шакалье сжатие. Оптимальный компромисс —Q4_K_M
илиQ5_K_M
.
LLaMA (Meta*)
Свежая линейка LLaMA 4 вышла весной 2025 года и уже включает версии LLaMA 4 Scout (8B) и Maverick (40B). Это самые мощные open‑weight LLM от Meta на текущий момент, с качеством вывода, приближающимся к GPT‑4. Даже Scout‑8B уверенно работает в задачах reasoning, а Maverick‑40B превосходит ChatGPT‑3.5.
LLaMA‑модели самые популярные для fine‑tuning и кастомных сборок. Однако лицензия Meta ограничивает коммерческое применение, особенно в продуктах, конкурирующих с сервисами самой Meta (например, чат‑боты и ассистенты).
Gemma (Google)
Облегчённая open‑source версия от Google, основанная на разработках Gemini. Работает довольно неплохо даже на слабом железе и легко поддаётся fine‑tuning'у. Распространяется под лицензией Apache 2.0 — одной из самых свободных. Но Google оставляет за собой право прервать использование при подозрении в нарушении своих правил. К сборкам-деривативам это ограничение тоже применяется.
Qwen (Alibaba)
Актуальная линейка Qwen 3 показывает отличные результаты в бенчмарках, особенно в задачах программирования, математики и мультиязычного reasoning. Доступны как мощные MoE-модели (например, 235B), так и компактные версии от 0.5B — включая сборки для ARM и систем без GPU.
Модели распространяются под открытой лицензией Apache 2.0, однако некоторые весовые категории (особенно крупных MoE-моделей) могут иметь ограничения при использовании в Китае и в облачных продуктах, что стоит учитывать при коммерческом применении.
DeepSeek (DeepSeek AI)
Тот самый DeepSeek, который наделал шуму в начале 2025 года. На сегодняшний день доступны как универсальные языковые модели (от 1.3B до 236B параметров в MoE-архитектуре), так и специализированные модели DeepSeek-Coder V2/V3 для программирования.
Особенно для нас интересна DeepSeek-Coder V2–33B, которая показывает качество, сравнимое с GPT‑4 в задачах по коду (по данным HumanEval++ и других бенчмарков).
Ниже — краткая таблица с основными характеристиками этих моделей:
Модель | Разработчик | Сильные стороны | Минусы |
LLaMA 4 Scout / Maverick (8b / 40b) | Meta | Высокое качество, мощная база для дообучения, богатая экосистема | Лицензия ограничивает коммерческое использование |
Gemma 3 (1b / 4b / 12 B / 27 B) | multimodal (текст + изображение), long-context 128k, 140+ языков, Apache 2.0 GPL | Лицензия имеет ограничения, базовая 1b версия без vision | |
Mistral Small 3.1 / Devstral‑24B | Mistral AI | Контекст до 128k, мощная reasoning-способность | Требует много VRAM |
Mixtral 8×22B‑Instruct | Mistral AI | MoE, высокая производительность, 128 k контекст | Высокие требования к железу |
Qwen 3 (0.6–32b, 235b MoE) | Alibaba | Хороша в коде и математике, мультиязычность, long-context 128k, Apache 2.0 GPL | фильтры на "критический" контент всё ещё присутствуют, ресурсоёмкость |
DeepSeek Coder V2/V3 (активные ~21–37b) | DeepSeek AI | MoE, эксперт по кодированию и анализу кода | Очень требователен к ресурсам и настройкам |
StarCoder 2 (7b / 15b) | Hugging Face / BigCode | Оптимизирован для кода, long-context >100 k, отлично для Dev-сценариев | Не предназначен для общего диалога |
Phi‑3 Mini / Small / Med | Microsoft | Компактны, CPU-френдли, до 128k контекста | Ограничены в сложном reasoning |
DBRX (132b, активные 36b) | Databricks / MosaicML | MoE, хорош для кода/математики, long-context (>100k) | Требует много VRAM, пока небольшое комьюнити |
Command-R+ (35b) | Cohere | Оптимизирована для RAG, структурирует JSON-вывод, контекст 200k, Apache 2.0 | для 35b нужно >= 24 GB VRAM, менее гибка как чат-ассистент |
для общения:
LLaMA 3 8B Instruct
Nous-Hermes-2-LLaMA3-8B-GGUF
openchat-4
Gemma 2-9B-Instruct (легковес для слабых систем)
для кодинга:
StarCoder2–15B
Mixtral-8×7B‑Instruct‑v0.1
deepseek-coder-6.7B-Instruct
Для ролевого общения / отсутствия цензуры:
MythoMax‑L2
dolphin-2.7-mixtral-8×7b
RAG / API:
Command-R+
DBRX
Теперь когда мы скачали интересующие нас модели, мы можем менеджить их (видеть и удалять) через меню My Models (красная папка):
LM Studio даёт нам доступ к целому ряду параметров, которые напрямую влияют на поведение и стиль ответов модели. Если хочется, чтобы ассистент был серьёзным или наоборот шутливым или имел какие‑то блоки нужны нам для проекта — это можно сделать за пару кликов.
Это вводная инструкция, которая определяет «персональность» модели. Пример: «Ты — технический ассистент. Отвечай кратко и строго по делу, без лишней воды и дисклеймеров.» System Context действует как базовая прошивка поведения — всё, что скажет модель, будет проходить через эту призму.
Temperature — отвечает за «творческость» модели. При низком значении (0.2–0.5) ответы будут точными, лаконичными и почти шаблонными — хорошо подойдёт для техподдержки или кратких инструкций. При высоком значении (0.8–1.2) модель начинает «фантазировать» — чаще выбирает менее вероятные слова, создавая более живые, нестандартные и креативные тексты.
Top‑k и Top‑p (Nucleus Sampling) — оба параметра управляют тем, сколько вариантов продолжения текста модель рассматривает при каждом токене.
Top‑k ограничивает выбор: если k = 40, модель выбирает из 40 самых вероятных слов.
Top‑p определяет «вероятностный порог»: если p = 0.9, то берутся слова, суммарно набравшие 90% вероятности. Снижая эти значения, мы делаем ответы предсказуемее, увеличивая — даём больше простора креативности.
Repeat Penalty — помогает бороться с зацикливанием модели или повторением фраз. Значение 1.1–1.2 считается хорошим стартом: это не мешает модели нормально завершать предложения, но не даёт ей застревать в одних и тех же оборотах. Если модель пишет «да‑да‑да» или «вот пример, пример, пример» — стоит увеличить эту настройку.
Max Tokens — прямо ограничивает длину ответа. Полезно, если нужно короткое пояснение, а не простыня текста. Если модель «разгоняется» и пишет больше, чем надо — выставляем лимит, например, 200 или 512 токенов.
Structured Output — это когда модель отвечает не просто текстом, а строго по формату:
JSON
YAML
Markdown‑таблица
Код с оформлением
В LM Studio можно явно попросить модель: соблюдать формат (например, JSON) отвечать по шаблону (например: {"вопрос": "…", "ответ": "…"}
) Работает это с помощью продуманного промпта или инструкции в System Context. Это особенно полезно, если ответы пойдут в Telegram‑бота, в API, в базу или IDE. Пример такого промпта:
Ты — финансовый аналитик. Отвечай строго в формате JSON:
{"рекомендация": "string", "причина": "string"}
Поскольку эта функция целиком полагается на интеллект модели, некоторые модели лучше справляются с форматом JSON, чем другие.
Помимо GUI‑интерфейса, LM Studio может работать как локальный сервер полностью совместимый со стандартом OpenAI API. Это значит, что любое приложение работающее с LLM через HTTP‑запросы может использовать локальную модель через LM Studio.
Вот типичные сценарии:
Подключение к Telegram‑боту
Интеграция в собственное веб‑приложение или CLI
Работа в IDE через плагины (например, Continue для VS Code)
Даже если в проде в финале мы планируем использовать платную модель, вроде ChatGPT или Claude, для этапа разработки удобнее (и бесплатнее) подключаться к локальным LLM.
Для этого надо перейти во вкладку Developer (зелёная консоль) и включить сервер. Адрес сервера по умолчанию:http://localhost:1234/v1
Ну а теперь перейдём к ещё одному практическому использованию API‑сервера — подключению кодингового ассистента. Это не полноценный гайд по вайб‑кодингу, поэтому мы лишь кратко рассмотрим, как подключить LM Studio к Continue — плагину‑оболочке для интеграции LLM в Visual Studio Code.
Установливаем плагин Continue
из Marketplace.
В LM Studio включаем режим разработчика (Developer Mode) и запускаем API‑сервер. В консоле должно отобразится сообщение о запуске сервера.
В настройках Continue ищем Models → + New Assistant. В открывшемся config.yaml добавляем настройки модели:
Пример настроек. Название модели должно соответствовать точному ID в LM Studio.
name: Local Assistant version: 1.0.0 schema: v1 models: - name: Qwen LM Studio provider: openai model: qwen/qwen2.5-coder-14b apiBase:
http://localhost:1234/v1
apiKey: "" roles: - chat - edit - apply context: - provider: code - provider: docs - provider: diff - provider: terminal - provider: problems - provider: folder - provider: codebase
Теперь наш кодовый ассистент работает локально — и бесплатно.
А если вы один из тех инженеров Samsung, которые ранее отправили конфиденциальный код на внешний сервер — теперь ваш начальник будет вами доволен!
В следующих туторах рассмотрим Ollama и более обширную настройку ИИ ассистентов для кодинга.