惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cisco Talos Blog
Cisco Talos Blog
V
V2EX
C
Check Point Blog
GbyAI
GbyAI
D
Docker
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog RSS Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
T
Troy Hunt's Blog
博客园 - Franky
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Microsoft Security Blog
Microsoft Security Blog
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学
The Cloudflare Blog
S
SegmentFault 最新的问题
Latest news
Latest news
Microsoft Azure Blog
Microsoft Azure Blog
P
Proofpoint News Feed
I
InfoQ
博客园 - 【当耐特】
NISL@THU
NISL@THU
A
About on SuperTechFans
T
Tailwind CSS Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
The Hacker News
The Hacker News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Scott Helme
Scott Helme
雷峰网
雷峰网
C
CXSECURITY Database RSS Feed - CXSecurity.com
Security Latest
Security Latest
V
Vulnerabilities – Threatpost
Security Archives - TechRepublic
Security Archives - TechRepublic
A
Arctic Wolf
Hacker News: Ask HN
Hacker News: Ask HN
N
News and Events Feed by Topic
IT之家
IT之家
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
aimingoo的专栏
aimingoo的专栏
T
Threat Research - Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
SecWiki News
SecWiki News
大猫的无限游戏
大猫的无限游戏
S
Security Affairs
The Register - Security
The Register - Security
www.infosecurity-magazine.com
www.infosecurity-magazine.com
L
LINUX DO - 热门话题
T
Tor Project blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Как развернуть Mistral 7B на GPU-сервере через vLLM
natlysky (Se · 2026-05-20 · via Все публикации подряд на Хабре

Время на прочтение6 мин

Охват и читатели731

Туториал

Если бюджет и ресурсы ограничены, а развернуть self-hosted LLM нужно, присмотритесь к такой связке: Mistral-7B-Instruct-v0.3 + виртуальная машина с RTX A5000 24GB в облаке + vLLM. Да, это далеко не энтерпрайз-уровень, но для некоторых базовых сценариев результат работы будет очень даже хорошим.

Собственно, в этой статье мы развернем сервер с GPU, подготовим Python-окружение, установим vLLM, запустим модель, отправим тестовый запрос через API и посмотрим на базовые метрики, которые помогут оценить выбранную конфигурацию.

На скриншоте ниже — расчет для одиночного запуска на NVIDIA RTX 3090 24 ГБ. Он нужен как ориентир по требованиям к видеопамяти: при выбранных параметрах модель помещается в 24 ГБ VRAM. В облаке развернем ее на сервере с NVIDIA RTX A5000 24 ГБ и после запуска проверим фактическую занятость VRAM, доступность API, время до первого токена и базовую скорость генерации.

В продакшен-сценариях такая модель может быть основой для прототипа внутреннего ассистента, RAG-сценария, автоматизации поддержки или API для тестовой интеграции. Но в этой статье нас интересует развертывание модели на сервере и первичная техническая проверка того, что инференс-сервис запущен, помещается в выбранную GPU-конфигурацию и отвечает на запросы.

Подбор сервера

Заходим в панель управления SelectelПродуктыОблачные серверы.

В разделе серверов кликаем на Создать сервер.  На странице создания сервера выберите локацию: ru-3b, ru-7a или ru-7b. Актуальную информацию о доступности по локациям можно узнать в документации

Для запуска нашей LLM нужен сервер с GPU. Основная нагрузка при инференсе будет идти на видеокарту: в ее памяти размещаются веса модели, KV-кэш и служебные структуры инференс-фреймворка. CPU, RAM и диск тоже важны, но в этой задаче они скорее обеспечивают стабильную работу окружения, чем определяют скорость генерации.

Итак, берем сервер с одной NVIDIA RTX A5000 24 ГБ. Ее достаточно для воспроизводимого запуска модели 7B-класса. Да и по предварительному расчету модель помещается в 24 ГБ VRAM.

Прокрутите страницу вниз до выбора конфигурации и перейдите во вкладку GPU

Для системных ресурсов возьмем 8 vCPU, 32 ГБ RAM. На диске лучше оставить запас. 

Помимо операционной системы, место понадобится для Python-зависимостей, кэша Hugging Face, файлов модели и временных файлов, которые могут появляться при установке и первом запуске. Для этой инструкции берем 100 ГБ SSD — этого достаточно для выбранной модели и окружения.

В качестве образа используем GPU Optimized Ubuntu. Такой образ сокращает подготовительный этап: сервер уже создается с окружением, рассчитанным на работу с GPU NVIDIA. После подключения останется проверить видеокарту через nvidia-smi, установить зависимости и запустить vLLM.

Если вы подбираете сервер для продакшен-нагрузки, нужно отдельно учитывать длину контекста, число параллельных запросов, требуемую задержку, пропускную способность, параметры vLLM, prefix caching, формат весов и стоимость одного млн токенов.

Новые GPU в облаке Selectel от 131,77 ₽/час

Видеокарты для ресурсоемких задач — NVIDIA® H200, RTX™ 6000 Pro.

Подробнее →

Подготовка окружения

После создания сервера подключаемся к нему по SSH:

ssh root@<server_ip>

Проверяем, что сервер видит GPU:

nvidia-smi
GPU видна корректно: NVIDIA RTX A5000, 24 ГБ VRAM, процессов на GPU пока нет.

GPU видна корректно: NVIDIA RTX A5000, 24 ГБ VRAM, процессов на GPU пока нет.

После проверки GPU обновляем системные пакеты. Это снижает риск конфликтов при установке Python-зависимостей и вспомогательных утилит:

apt update && apt upgrade -y

Ставим базовые утилиты:

apt install -y python3 python3-pip python3-venv python3.12-dev build-essential git \
curl htop tmux

tmux пригодится, если позже вы захотите оставить vLLM работать после разрыва SSH-сессии. В этой инструкции запускаем сервер в активном терминале, чтобы видеть логи загрузки модели. Здесь важно не пропустить python3.12-dev и build-essential. При первом запуске vLLM может компилировать вспомогательные CUDA/Triton-модули.

Создаем рабочую директорию:

mkdir -p /opt/mistral-vllm
cd /opt/mistral-vllm

Все дальнейшие команды будем выполнять из директории /opt/mistral-vllm.

Создаем виртуальное окружение:

python3 -m venv venv
source venv/bin/activate

Виртуальное окружение помогает изолировать зависимости vLLM и упростить повторяемость установки.

Обновляем pip командой:

pip install --upgrade pip

Свежая версия снижает вероятность ошибок при установке крупных ML-библиотек и их зависимостей.

Далее ставим vLLM:

pip install vllm

vLLM выбран потому, что он подходит для server-side инференса: умеет эффективно обслуживать запросы к LLM, работать с batching и поднимать OpenAI-compatible эндпоинт. 

Создаем переменные окружения

Здесь зададим название модели и API-ключ, которым будем защищать эндпоинт. Ключ можно сгенерировать на сервере и использовать его далее.

export MODEL_ID="mistralai/Mistral-7B-Instruct-v0.3"
export VLLM_API_KEY=$(openssl rand -hex 32)
echo "$VLLM_API_KEY"

Сохраните значение ключа: оно понадобится позже для тестовых запросов.Не публикуйте реальное значение ключа в скриншотах, логах и репозиториях.

Запускаем vLLM

При запуске сразу учтем настройки инференса:

vllm serve "$MODEL_ID" \
--host 0.0.0.0 \
--port 8000 \
--api-key "$VLLM_API_KEY" \
--dtype auto \
--max-model-len 32768 \
--enable-prefix-caching

После запуска команда не должна завершиться. vLLM остается работать в foreground и пишет логи в терминал.

Prefix caching полезен, когда в запросах повторяется большая часть промта: например, один и тот же системный промт, шаблон инструкции или RAG-контекст. Это  может снизить накладные расходы на обработку повторяющейся части запроса. Для первого развертывания Prefix caching не обязателен, но мы включаем его сразу, чтобы не упустить типовую оптимизацию.

При запуске vLLM может несколько десятков секунд прогревать модель и создавать KV-кэш. После этого API-сервер становится доступным на порту 8000. В логах в процессе также видна информация о модели: 

  • веса модели заняли 13.51 ГБ памяти GPU;

  • доступная память под KV-кэш составила 7,32 ГБ;

  • размер GPU KV-кэш — 59 936 токенов;

  • максимальная конкурентность для запросов длиной 32 768 токенов — 1,83x;

В отдельном SSH-окне можно проверить GPU:

nvidia-smi
Появился процесс, память занята моделью.

Появился процесс, память занята моделью.

Проверка API-сервера

После запуска vLLM сначала проверим служебный эндпоинт /health:

curl -i http://127.0.0.1:8000/health

Если сервер запущен корректно, в ответе будет статус HTTP/1.1 200 OK. Эта проверка показывает, что API-сервер vLLM поднялся и принимает запросы на порту 8000. После этого можно проверять уже модельный эндпоинт /v1/models.

Проверка, что модель доступна через API

Сначала проверим, что vLLM-сервер видит загруженную модель:

curl -s http://127.0.0.1:8000/v1/models \
 -H "Authorization: Bearer $VLLM_API_KEY" | python3 -m json.tool

В ответе должна появиться модель:

Осталось проверить модель тестовым запросом. Создадим файл с запросом:

cat > request.json <<'EOF'
{
"model": "mistralai/Mistral-7B-Instruct-v0.3",
"messages": [
{
"role": "user",
"content": "Return exactly three bullet points that explain what an inference server does."
}
],
"max_tokens": 120,
"temperature": 0
}
EOF

Отправим запрос в эндпоинт /v1/chat/completions:

curl -sS http://127.0.0.1:8000/v1/chat/completions \
-H "Authorization: Bearer $VLLM_API_KEY" \
-H "Content-Type: application/json" \
-d @request.json | python3 -m json.tool

Если все настроено корректно, API вернет JSON с ответом:

Тестируем работоспособность

Для smoke-теста лучше использовать короткий технический запрос на английском языке. Так мы проверяем именно работу инференс-эндпоинта: 

  • модель загружена, 

  • OpenAI-compatible API принимает запрос, 

  • авторизация проходит,

  • сервер возвращает сгенерированный ответ. 

Оценку качества модели для конкретного языка или бизнес-сценария нужно проводить отдельно — на целевых промтах и данных.

После smoke-теста измерим базовые метрики инференса через streaming-запрос к OpenAI-compatible эндпоинту. Это не полноценный нагрузочный тест, просто контрольный прогон, который показывает порядок метрик для выбранной конфигурации.

Метрика

Значение

GPU

NVIDIA RTX A5000 24 ГБ

Модель

mistralai/Mistral-7B-Instruct-v0.3

Контекст модели

32 768 токенов

Prompt tokens

42

Completion tokens

200

Total tokens

242

Total latency

4.920 сек

TTFT

0,479 сек

Decode time

4,441 сек

Output speed
(скорость генерации выходных токенов в одиночном запросе)

45,03 токена/сек

В этом прогоне модель начала отвечать через 0,479 секунды, а затем сгенерировала 200 токенов за 4,441 секунды. Итоговая скорость генерации составила 45,03 токена/сек.

Заключение

В рамках инструкции результат достаточный: модель помещается в 24 ГБ VRAM NVIDIA RTX A5000 и комфортно себя там чувствует. Эндпоинт стабильно отвечает, а TTFT не превышает секунды. Скорость генерации в районе 45 токенов/сек на одиночном запросе — хороший показатель для конфигурации такого уровня.Этого более чем достаточно, чтобы использовать конфигурацию как тестовый стенд, прототип API или демонстрацию self-hosted LLM. 

Конечно, для продакшен-нагрузки и сотен одновременных юзеров потребуется полноценный бенчмарк с параллельными запросами и расчетом стоимости миллиона токенов. Но база для старта у нас уже есть.

А какие модели вы планируете развернуть в облаке в ближайшее время? Если уже пробовали Mistral в связке с vLLM — делитесь своими замерами и впечатлениями в комментариях.