Модели ИИ и подбор GPU14 мин чтения
Свой ИИ-ассистент для программирования: приватный Copilot на GPU-сервере
Свой ИИ-ассистент для программирования хранит ваш исходный код на GPU-сервере под вашим контролем, а цена в месяц остаётся фиксированной, сколько бы разработчиков им ни пользовалось. Разбираем, как выбрать модель для кода, подобрать сервер под команду, запустить модель с поддержкой вызова инструментов, подключить к ней VS Code, JetBrains и терминальных агентов и надёжно закрыть доступ.
Команда CryptGPUОпубликовано

Главное
- Свой ИИ-ассистент для программирования — это модель для кода с открытыми весами, например Qwen3-Coder-Next или Devstral Small 2, на GPU-сервере под вашим контролем: VS Code, Cline, Continue или Aider могут обращаться к её API, совместимому с OpenAI, и ваш код не уходит во внешний ИИ-сервис.
- Автодополнению и агентам нужны разные модели: в документации Continue отмечается, что у большинства передовых моделей автодополнения не больше 10 млрд параметров, а агентам кодирования нужны надёжный вызов инструментов и длинный контекст.
- Каждому запросу в обработке нужен собственный KV-кэш: запрос на 64K токенов занимает в BF16 около 10,7 ГБ у Devstral Small 2, но около 1,6 ГБ у Qwen3-Coder-Next, которая хранит KV-кэш только в 12 из своих 48 слоёв.
- По правилу подбора CryptGPU модели Qwen3-Coder-Next в FP8 при 16 одновременных запросах агентов по 64K токенов нужно около 105 ГБ: самый дешёвый сервер, который её вмещает, — 4× RTX 5090 за 1 316 $ в месяц.
- Встроенный чат VS Code может работать с моделью на вашем сервере через Custom Endpoint без аккаунта GitHub и подписки Copilot, но для inline-подсказок VS Code локальную модель использовать нельзя.
Что такое свой ИИ-ассистент для программирования?
Свой ИИ-ассистент для программирования — это нейросеть для кода на своём сервере: модель с открытыми весами работает на GPU-сервере под вашим контролем и предоставляет API, совместимый с OpenAI, к которому ваш редактор или терминальный агент обращается вместо облачного сервиса. Исходный код, промпты и ответы модели остаются на этом сервере, вы платите за сервер, а не за каждого пользователя, и модель выбираете сами.
- Приватные репозитории остаются приватными. Код, отправленный в качестве контекста, попадает только на ваш сервер, и вы сами решаете, что записывать в журналы.
- Без оплаты за каждого пользователя и без лимитов на запросы. Месячная цена одинакова для 2 и для 20 разработчиков, пока сервер справляется с нагрузкой; ограничения задают память и скорость GPU.
- Модель выбираете вы. Оставайтесь на версии, которая хорошо работает с вашей кодовой базой, переходите на новую, когда появится открытая модель получше, или дообучите модель на своём коде.
Но у такого решения есть реальные компромиссы. В тарифах GitHub Copilot перечислены закрытые модели Anthropic, OpenAI и Google (GitHub, проверено 19 октября 2026 г.), веса которых не публикуются, поэтому ассистент на своём сервере работает на открытой модели, и её качество вам придётся проверить на собственном коде. Кроме того, сервер вы обслуживаете сами. Если вам нужен приватный чат на таком же сервере, читайте, как развернуть LLM на своём сервере.
Автодополнению, чату и агентам нужны разные модели
| Задача | Что для неё нужно | Подходящие модели |
|---|---|---|
| Автодополнение (по Tab) | Небольшая быстрая модель, обученная заполнению середины (fill-in-the-middle): она получает код до и после курсора и пишет то, что должно стоять между ними | Qwen2.5-Coder 1.5B или 7B, которые рекомендует Continue; любая модель Qwen3-Coder |
| Чат и правки | Хорошая инструктивная модель с контекстом, которого хватает на добавленные вами файлы | Любая модель из следующей таблицы |
| Агенты, которые читают, правят и запускают код | Надёжный вызов инструментов и длинный контекст: с каждым запросом агент отправляет свои инструкции, описания инструментов и прочитанные файлы | Qwen3-Coder-Next, Devstral Small 2 |
В документации Continue отмечается, что «большинство передовых моделей автодополнения имеют не более 10 млрд параметров, и увеличение размера сверх этого существенно не улучшает качество», а коммерческие модели, такие как GPT-5 или Claude, не обучены на формате промптов, который использует автодополнение (Continue). Qwen заявляет, что заполнение середины «поддерживается во всех версиях Qwen3-Coder», включая Qwen3-Coder-Next (Qwen3-Coder), поэтому модель для агентов может обслуживать и автодополнение, если вы предпочитаете одну модель вместо двух. Для агентов Ollama советует использовать с инструментами для программирования контекст не менее 64 000 токенов (Ollama).
Какую модель для программирования развернуть на своём сервере
В нашем каталоге есть две модели, созданные для агентов кодирования, и три универсальные модели, на которых тоже можно построить ассистента для программирования. Необходимая память рассчитана по нашему правилу подбора — размер весов × 1,2, причём доступными считаются 92% памяти GPU, — так же, как на странице каждой модели:
| Модель | Параметры | Назначение | vLLM или SGLang (FP8 или нативный формат) | Ollama (сборка по умолчанию) |
|---|---|---|---|---|
| Qwen3-Coder-Next | 80B MoE · 3B активных | Агенты кодирования и локальная разработка, контекст 256K | 95 ГБ: 4× RTX 5090, 1 316 $ | 62 ГБ: 1× RTX PRO 6000, 959 $ |
| Devstral Small 2 | 24B | Агентная разработка ПО, контекст 256K | 31 ГБ: 2× RTX 4090, 538 $ | 18 ГБ: 1× RTX 4090, 269 $ |
| Qwen3.8 27B | 27B | Программирование и длительные агентные задачи, контекст 262K | 34 ГБ: 2× RTX 4090, 538 $ | 22 ГБ: 1× RTX 4090, 269 $ |
| gpt-oss-120b | 117B MoE · 5,1B активных | Рассуждения, нативный вызов функций | 78 ГБ: 1× RTX PRO 6000, 959 $ | 78 ГБ: 1× RTX PRO 6000, 959 $ |
| gpt-oss-20b | 21B MoE · 3,6B активных | Меньшая задержка, локальный запуск | 17 ГБ: 1× RTX 4090, 269 $ | 17 ГБ: 1× RTX 4090, 269 $ |
- Qwen3-Coder-Next — модель на основе смеси экспертов (MoE) с 80 млрд параметров, из которых на каждый токен активны 3 млрд, с нативным контекстом 262 144 токена и без режима мышления. Qwen упоминает интеграцию с CLI- и IDE-платформами, такими как Claude Code, Qwen Code, Kilo и Cline, и публикует официальный FP8-чекпоинт
Qwen/Qwen3-Coder-Next-FP8. - Devstral Small 2 — плотная модель на 24 млрд параметров, опубликованная в FP8, с контекстным окном 256K. Mistral называет её «достаточно лёгкой, чтобы работать на одной RTX 4090»: по нашему правилу подбора на одну такую карту помещается сборка Ollama на 15 ГБ, а полным весам в FP8 нужны две.
- Qwen3.8 27B по умолчанию работает в режиме мышления, который можно отключить для отдельного запроса; у gpt-oss можно выбрать глубину рассуждений — низкую, среднюю или высокую. Обе модели отвечают и на вопросы, не связанные с программированием.
Более крупным моделям из нашего каталога открытых моделей, таким как GLM-5.3-Flash и Kimi K2.6, нужны серверы с несколькими GPU. Прежде чем сделать выбор, протестируйте двух кандидатов на своих репозиториях. Сведения о моделях взяты из карточек на Hugging Face: Qwen3-Coder-Next, Qwen3-Coder-Next-FP8, Devstral Small 2, Qwen3.8 27B, gpt-oss-120b, gpt-oss-20b; размеры сборок Ollama — из её библиотеки.
Сколько памяти GPU нужно команде разработчиков
Наше правило подбора рассчитано на несколько запросов с умеренным контекстом. Команде нужно больше: у каждого запроса в обработке свой KV-кэш — ключи и значения всех токенов его контекста, — а запросы агентов длинные. Рассчитывайте память на запросы, которые выполняются одновременно, а не на число пользователей:
memory needed = weights + KV cache per request × requests in flight
KV per token = 2 × attention layers × KV heads × head dimension × 2 bytes (BF16)
У Devstral Small 2 — 40 слоёв с 8 KV-головами размерности 128: около 0,16 МБ на токен, или 10,7 ГБ на запрос в 64K токенов (65 536). Qwen3-Coder-Next хранит KV-кэш только в 12 из своих 48 слоёв, с 2 KV-головами размерности 256; остальные 36 слоёв используют Gated DeltaNet — линейное внимание, состояние которого эта формула не учитывает. Получается около 0,025 МБ на токен, или 1,6 ГБ на запрос в 64K (конфигурация Devstral, конфигурация Qwen). С весами в FP8:
| Одновременных запросов по 64K токенов | 8 | 16 | 32 |
|---|---|---|---|
| Devstral Small 2, KV-кэш в BF16 | 112 ГБ: 4× RTX 5090, 1 316 $ | 198 ГБ: 4× RTX PRO 6000, 3 836 $ | 370 ГБ: 8× RTX PRO 6000, 7 672 $ |
| Devstral Small 2, KV-кэш в FP8 | 69 ГБ: 1× RTX PRO 6000, 959 $ | 112 ГБ: 4× RTX 5090, 1 316 $ | 198 ГБ: 4× RTX PRO 6000, 3 836 $ |
| Qwen3-Coder-Next, KV-кэш в BF16 | 92 ГБ: 4× RTX 5090, 1 316 $ | 105 ГБ: 4× RTX 5090, 1 316 $ | 131 ГБ: 2× RTX PRO 6000, 1 918 $ |
- Для команд гибридное внимание окупается. Веса Qwen3-Coder-Next втрое больше, чем у Devstral Small 2, но при кэше в BF16 ей нужно меньше памяти уже при 6 и более одновременных запросах.
- KV-кэш в FP8 занимает вдвое меньше байт (
--kv-cache-dtype fp8в vLLM; для наилучшего качества vLLM рекомендует откалиброванные коэффициенты масштабирования: vLLM). Тогда одна RTX PRO 6000 вмещает Devstral Small 2, и одновременных запросов по 64K токенов на ней помещается 11. - Самый дешёвый вариант — не всегда самый простой. Четыре RTX 5090 делят модель между собой через PCIe, а один H200 (2 279 $) вмещает Qwen3-Coder-Next на одном GPU, и запросов по 64K токенов на нём помещается около 31.
Считайте эти цифры оценками: движкам нужна и собственная память, а реальные запросы различаются по длине. Тот же расчёт применим и к одному разработчику: при контексте 64K Devstral Small 2 в сборке Ollama занимает около 26 ГБ с кэшем f16, который Ollama использует по умолчанию (самый дешёвый подходящий вариант — 1× RTX 5090 за 329 $ в месяц), или 20 ГБ с OLLAMA_KV_CACHE_TYPE=q8_0 (1× RTX 4090 за 269 $). Когда команда начнёт работать с сервером, следите за числом ожидающих запросов и использованием KV-кэша (метрики vLLM). Для любой другой модели воспользуйтесь подбором GPU под модель, а в статье лучшая видеокарта для инференса LLM сравниваются пропускная способность и цена за ГБ.
Запустите модель с поддержкой вызова инструментов
Агенты работают через инструменты, поэтому движок должен разбирать вызовы инструментов, которые генерирует модель: в vLLM для этого нужны --enable-auto-tool-choice и парсер для конкретной модели (vLLM). Для Qwen3-Coder-Next — с парсером из карточки модели (vLLM 0.15.0 или новее):
# на сервере: один H200; на двух GPU добавьте --tensor-parallel-size 2
KEY=$(openssl rand -hex 32); echo "$KEY"
vllm serve Qwen/Qwen3-Coder-Next-FP8 --served-model-name qwen3-coder-next \
--host 127.0.0.1 --port 8000 --api-key "$KEY" \
--enable-auto-tool-choice --tool-call-parser qwen3_coder \
--max-model-len 131072
--served-model-nameзадаёт короткое имя модели для ваших инструментов, а--max-model-lenограничивает каждый запрос 131 072 токенами (модель принимает до 262 144) и тем самым ограничивает кэш на один запрос.- Для Devstral Small 2 нужны
--tool-call-parser mistral --enable-auto-tool-choice, для gpt-oss — парсерopenai. - SGLang 0.5.8 или новее принимает тот же парсер в команде из карточки модели, а также
--api-keyи по умолчанию слушает 127.0.0.1:30000 (SGLang). - С Ollama для начала достаточно
ollama pull devstral-small-2, но её API не проверяет ключ, она обрабатывает один запрос на модель за раз, пока вы не увеличитеOLLAMA_NUM_PARALLEL, а контекст по умолчанию при памяти GPU менее 24 ГиБ — 4K токенов. ЗадайтеOLLAMA_CONTEXT_LENGTHне меньше 64000 в настройках службы из нашего руководства по Ollama.
Установка, Docker и варианты для нескольких GPU описаны в руководстве по инференсу LLM с помощью vLLM.
Подключите VS Code, JetBrains или терминального агента
Все инструменты ниже обращаются к одному и тому же эндпоинту — http://localhost:8000/v1 через SSH-туннель из следующего раздела — с ключом и именем, под которым сервер отдаёт модель. Встроенный чат VS Code может работать с ним напрямую: чтобы подключить Qwen3-Coder-Next в VS Code, откройте Chat: Manage Language Models, выберите Add Models, затем Custom Endpoint с типом API Chat Completions и заполните файл chatLanguageModels.json, который откроет VS Code:
[
{
"name": "GPU server",
"vendor": "customendpoint",
"apiKey": "${input:gpuServerKey}",
"apiType": "chat-completions",
"models": [
{
"id": "qwen3-coder-next",
"name": "Qwen3-Coder-Next (self-hosted)",
"url": "http://localhost:8000/v1/chat/completions",
"toolCalling": true,
"vision": false,
"maxInputTokens": 114688,
"maxOutputTokens": 16384
}
]
}
]
Два лимита токенов в сумме дают --max-model-len сервера, а toolCalling делает модель доступной агентам в чате. Согласно документации VS Code, такие модели работают без аккаунта GitHub и без подписки Copilot, но не для автодополнения: «Сейчас нельзя подключить локальную модель для inline-подсказок» (документация VS Code). При корпоративной подписке Copilot использование собственных моделей должно быть разрешено политикой администратора.
| Инструмент | Где работает | Как направить его на ваш сервер |
|---|---|---|
| Cline | VS Code, JetBrains, терминал | API Provider «OpenAI Compatible», Base URL http://localhost:8000/v1, ваш ключ, Model ID qwen3-coder-next (документация). Каждая правка файла и каждая команда в терминале требуют вашего подтверждения, если не включить режим auto-approve (GitHub). |
| Kilo Code | VS Code, JetBrains, терминал | Settings, Providers, Custom provider: Provider API «OpenAI Compatible», тот же Base URL и ключ (документация) |
| Aider | Терминал | OPENAI_API_BASE и OPENAI_API_KEY в переменных окружения, затем aider --model openai/qwen3-coder-next (документация) |
| Continue | VS Code, JetBrains | config.yaml: provider: openai с apiBase и apiKey, capabilities: [tool_use] для режима Agent и вторая модель с ролью autocomplete (документация, справочник). После финального выпуска 2.0.0 репозиторий доступен только для чтения и больше не поддерживается (GitHub). |
| Tabby | Собственный сервер с плагинами для IDE | config.toml: модель vllm/completion с шаблоном промпта для заполнения середины — для автодополнения кода (документация) |
| Roo Code | — | Закрыт 15 мая 2026 г.; его репозиторий архивирован (GitHub) |
Для автодополнения по Tab используйте роль autocomplete в Continue или Tabby с небольшой моделью для заполнения середины рядом с моделью для агентов. В примере Continue это qwen2.5-coder:1.5b из Ollama — сборка на 986 МБ; её нет в нашем каталоге, но с root-доступом вы можете установить любую модель.
Дайте команде безопасный доступ
Держите движок на 127.0.0.1 и никогда не публикуйте порты 8000 (vLLM), 30000 (SGLang) и 11434 (Ollama). Ключ vLLM защищает лишь часть маршрутов, и руководство vLLM по безопасности предостерегает от того, чтобы полагаться на него одного. Два безопасных способа доступа:
Отдельный SSH-туннель для каждого разработчика. Добавьте публичный ключ каждого разработчика отдельной строкой в учётную запись, предназначенную только для туннелей: такой ключ позволяет пробросить порт API и ничего больше, а удаление строки отзывает доступ этого человека (руководство sshd):
# на сервере, один раз
sudo useradd -m -s /usr/sbin/nologin tunnel
sudo install -d -m 700 -o tunnel -g tunnel /home/tunnel/.ssh
# по одной строке на разработчика, с его публичным ключом
echo 'restrict,port-forwarding,permitopen="127.0.0.1:8000" ssh-ed25519 AAAA... alice@laptop' \
| sudo tee -a /home/tunnel/.ssh/authorized_keys
# на компьютере каждого разработчика; после этого API доступен по адресу http://localhost:8000/v1
ssh -N -L 8000:127.0.0.1:8000 tunnel@203.0.113.10
restrict отключает проброс и выделение терминала, port-forwarding снова разрешает проброс портов, permitopen ограничивает его портом API, а оболочка nologin не даёт доступа к командной строке. Ключи и ~/.ssh/config описаны в разделе Доступ по SSH.
Обратный TLS-прокси для тех, у кого нет доступа по SSH: Caddy, который пересылает только /v1/ (наш пример) и принимает запросы лишь с IP-адресов вашей команды. В этом случае API-ключ у всех общий, поэтому меняйте его, когда кто-то уходит из команды.
Кому подойдёт CryptGPU
CryptGPU сдаёт в аренду выделенные GPU-серверы помесячно — от одной карты GeForce до восьми GPU для дата-центров, с root-доступом по SSH и без сторонних арендаторов на ваших картах. Qwen3-Coder-Next и Devstral Small 2 есть в нашем каталоге: при заказе на шаге «ПО» можно без дополнительной платы установить vLLM, SGLang или Ollama с Open WebUI и любую из этих двух моделей, а сервер будет онлайн менее чем через 10 минут после подтверждения платежа в блокчейне. Учётные записи для туннелей, настройки редакторов и модель для автодополнения, если она нужна, вы добавляете сами. Цена указана за сервер, а не за разработчика: 269 $ в месяц за RTX 4090, 959 $ за RTX PRO 6000, 2 279 $ за H200. Оплата — в Bitcoin, Ethereum, USDT, Monero или Litecoin, без KYC.
Это не лучший выбор, если вам нужна закрытая модель, управляемый сервис с единым входом (SSO) или GPU на несколько часов в неделю. Сервер вы администрируете сами, включая обновления и безопасность, а SLA мы не публикуем. Сервер без продления останавливается в конце оплаченного месяца, а его диски стираются, поэтому храните конфигурацию и дообученные адаптеры в другом месте.
Частые вопросы
Может ли модель на своём сервере заменить GitHub Copilot?
Для чата и агентов описанные выше инструменты дают тот же рабочий процесс, но с вашей собственной моделью. Отличий два: закрытые модели Copilot нельзя развернуть на своём сервере, поэтому результат зависит от выбранной открытой модели, а для автодополнения по Tab нужно расширение вроде Continue или Tabby, поскольку inline-подсказки VS Code не могут использовать локальную модель.
Какая модель для программирования работает на одном GPU?
По нашему правилу подбора gpt-oss-20b из Ollama помещается на одной RTX 4090 (269 $ в месяц), а Devstral Small 2 с контекстом 64K — на одной RTX 5090 (329 $); Qwen3-Coder-Next из Ollama (52 ГБ, 4-битная сборка) и gpt-oss-120b помещаются на одной RTX PRO 6000 (959 $). Для полных весов в FP8 и работы в команде смотрите таблицу выше.
Сколько разработчиков могут работать с одним сервером?
Это зависит от того, сколько запросов выполняется одновременно и насколько они длинные, а не от числа пользователей. Рассчитайте память на пиковую нагрузку по формуле выше, а затем следите за числом ожидающих запросов в vLLM: если запросы встают в очередь, пока KV-кэш заполнен, значит, нужно больше памяти или более короткие контексты.
Покидает ли мой код сервер?
Модель работает на вашем сервере, поэтому промпты и ответы модели не попадают ни к одному поставщику моделей. Но редакторы и расширения всё равно могут отправлять своим разработчикам данные об использовании, а агент выходит в интернет, если вы дадите ему инструменты с доступом в интернет: проверьте их настройки. В финальном выпуске Continue анонимная телеметрия удалена.




