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

推荐订阅源

S
Securelist
C
Cybersecurity and Infrastructure Security Agency CISA
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security Affairs
Hacker News: Ask HN
Hacker News: Ask HN
L
Lohrmann on Cybersecurity
PCI Perspectives
PCI Perspectives
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
Recent Commits to openclaw:main
Recent Commits to openclaw:main
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MyScale Blog
MyScale Blog
月光博客
月光博客
W
WeLiveSecurity
T
Threat Research - Cisco Blogs
Martin Fowler
Martin Fowler
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recorded Future
Recorded Future
The GitHub Blog
The GitHub Blog
Webroot Blog
Webroot Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
TaoSecurity Blog
TaoSecurity Blog
P
Proofpoint News Feed
Google DeepMind News
Google DeepMind News
F
Full Disclosure
U
Unit 42
Jina AI
Jina AI
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
L
LINUX DO - 最新话题
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏
The Hacker News
The Hacker News
The Last Watchdog
The Last Watchdog
T
Troy Hunt's Blog
腾讯CDC
T
Threatpost
H
Hacker News: Front Page
P
Palo Alto Networks Blog
博客园 - 聂微东
Last Week in AI
Last Week in AI
有赞技术团队
有赞技术团队
Help Net Security
Help Net Security
L
LINUX DO - 热门话题
N
News and Events Feed by Topic
人人都是产品经理
人人都是产品经理
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Spread Privacy
Spread Privacy

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

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет 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 — делитесь своими замерами и впечатлениями в комментариях.