Mistral на VPS: установка и API
Mistral 7B и Mixtral — быстрые и качественные открытые модели, которые легко держать на своём сервере. Показываем установку через Ollama, llama.cpp и vLLM с готовым API.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Модели семейства Mistral
У Mistral несколько ключевых открытых моделей, и выбор зависит от задач и железа.
- Mistral 7B Instruct — компактная и шустрая, база для большинства задач.
- Mixtral 8x7B — MoE-модель, сильнее, но требовательнее к памяти.
- Mistral Nemo / Small — свежие версии с большим контекстом.
7B в 4-битном кванте отлично идёт на CPU. Быстрые ядра тут решают скорость генерации, поэтому AMD EPYC + NVMe у MAATRIX — удачная база под Mistral без видеокарты.
Mistral заслужил популярность соотношением качества и размера: 7B-модель нередко тягается с заметно более крупными конкурентами, а лицензия Apache 2.0 позволяет использовать её в коммерческих продуктах без оглядки. Для многих задач — суммаризация, извлечение данных, чат-ассистент, генерация черновиков — 7B более чем достаточно, и держать её у себя выходит и дешевле, и приватнее, чем платить за токены облака.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для MistralБыстрый старт через Ollama
Проще всего — Ollama: модель и API из коробки.
curl -fsSL https://ollama.com/install.sh | sh
ollama run mistral
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"mistral","messages":[{"role":"user","content":"Привет"}]}'
По тегу можно тянуть конкретные варианты: ollama pull mistral-nemo для свежей версии с большим контекстом или ollama pull mixtral для MoE-модели, если позволяет память. Ollama сама держит модель в оперативке между запросами и отдаёт совместимый с OpenAI API, так что этого способа хватает и для прототипа, и для небольшого продакшена.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
llama.cpp с GGUF
Для контроля над квантом и минимума зависимостей — llama.cpp.
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp && cmake -B build && cmake --build build -j
./build/bin/llama-server \
-m ./models/mistral-7b-instruct-v0.2.Q4_K_M.gguf \
--host 0.0.0.0 --port 8080 -c 8192 --api-key sk-local
Mistral хорошо реагирует на квант Q4_K_M — качество почти не проседает, зато модель занимает около 4–5 ГБ и стартует мгновенно с NVMe. Число потоков задаётся флагом -t по числу физических ядер, а размер контекста — флагом -c. Важный нюанс: у инструктивных версий Mistral свой формат промпта с тегами инструкций, и llama.cpp применяет корректный шаблон автоматически, если модель помечена как instruct. При использовании сырого completion-режима шаблон нужно задавать вручную, иначе ответы будут хуже, чем модель способна выдать.
vLLM для нагрузки
Есть GPU и много запросов — берём vLLM, он отдаёт OpenAI API и держит батчи.
pip install vllm
python -m vllm.entrypoints.openai.api_server \
--model mistralai/Mistral-7B-Instruct-v0.3 \
--host 0.0.0.0 --port 8000 --max-model-len 8192
Для Mixtral добавь --tensor-parallel-size под число карт — модель крупная. Mixtral 8x7B при инференсе активирует лишь часть экспертов, поэтому по скорости ближе к 13B-модели, но всю память под все веса держать всё равно нужно — отсюда высокие требования к VRAM. Если карта одна и небольшая, разумнее остаться на плотной 7B, а Mixtral запускать там, где памяти в достатке.
Подключаем к приложению
Любой из вариантов даёт OpenAI-совместимый эндпоинт, так что в коде меняем только base_url.
from openai import OpenAI
client = OpenAI(base_url="http://SERVER_IP:8080/v1", api_key="sk-local")
r = client.chat.completions.create(model="mistral",
messages=[{"role":"user","content":"Кратко о себе"}])
print(r.choices[0].message.content)
Тот же клиент работает и со стримингом — достаточно передать stream=True, и токены пойдут по мере генерации, что делает интерфейс отзывчивее. Поскольку контракт стандартный, Mistral легко подставляется в существующий код, изначально написанный под OpenAI: меняется только base_url и имя модели.
Частые ошибки
- Mixtral не влезает — это MoE на ~47B параметров, нужен сильный квант или GPU.
- Медленно на CPU — бери Q4_K_M и разумный контекст.
- Порт открыт без ключа — обязательно api-key и Nginx + TLS.
- Устаревший шаблон промпта — используй instruct-версию и её формат.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS для MistralОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Mistral 7B или Mixtral?
Для большинства задач и скромного железа хватает 7B. Mixtral сильнее, но требует заметно больше памяти.
Нужен ли GPU для Mistral 7B?
Нет. В 4-битном GGUF-кванте модель отзывчиво работает на быстрых CPU.
Как встроить Mistral в свой сервис?
Через OpenAI-совместимый API любого из бэкендов — меняешь base_url в SDK, остальной код не трогаешь.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.