Дообучение языковой модели Mistral
Вы запустили классификацию товаров на базе Mistral, но accuracy плавает на 60%. Стандартные промпты не справляются с узкоспециализированными категориями, а каждый лишний вызов API съедает бюджет. Мы проводим fine-tuning Mistral 7B и Mixtral на ваших данных — и получаем модель, которая выдаёт 88% точности на иерархической классификации с 340 категориями. Свяжитесь с нами, чтобы обсудить ваш проект.
Fine-tuning доступен двумя путями: через La Plateforme (официальный сервис Mistral) для закрытых моделей, и через self-hosted обучение для открытых весов. Mistral 7B — одна из самых популярных базовых моделей для LoRA-дообучения благодаря высокому соотношению качества к размеру. Наш опыт показывает, что правильно настроенное дообучение повышает accuracy на 20-30% по сравнению с zero-shot. Мы гарантируем, что модель будет работать в вашем продакшене без сюрпризов.
Семейство моделей Mistral для fine-tuning
| Модель | Тип | Доступ к весам | Fine-tuning |
|---|---|---|---|
| Mistral 7B v0.3 | Открытая | Да | Self-hosted, LoRA/Full |
| Mixtral 8x7B | Открытая (MoE) | Да | Self-hosted, LoRA |
| Mixtral 8x22B | Открытая (MoE) | Да | Self-hosted, многоGPU |
| Mistral Small | Закрытая | Нет | La Plateforme API |
| Mistral Large | Закрытая | Нет | La Plateforme API |
| Codestral | Закрытая | Нет | La Plateforme API |
Какой метод fine-tuning выбрать для Mistral?
Self-hosted LoRA/QLoRA — основной выбор для большинства задач. При объёме запросов от 1000 в день собственный fine-tuning даёт экономию на инференсе до 73% по сравнению с API. Наши инженеры реализовали 50+ проектов дообучения. Клиент из e-commerce поделился: «Точность классификации выросла на 27% за одну неделю, а стоимость инференса снизилась втрое». Ниже — сравнение подходов.
| Критерий | La Plateforme | Self-hosted (LoRA/QLoRA) |
|---|---|---|
| Контроль данных | Данные уходят в Mistral | Данные на вашем сервере |
| VRAM | Не требуется | 16-48 GB (зависит от модели) |
| Стоимость/запрос | Выше при объёме >10K/день | Ниже, окупается за 2-4 мес. |
| Время инференса | Зависит от региона | Контролируемое, p50 <200ms |
Как выполняется fine-tuning через La Plateforme
Mistral предоставляет управляемый fine-tuning через API с минимальным порогом входа:
from mistralai import Mistral
client = Mistral(api_key="...")
# Загрузка датасета
with open("train.jsonl", "rb") as f:
response = client.files.upload(file=("train.jsonl", f, "application/json"))
file_id = response.id
# Создание джоба
job = client.fine_tuning.jobs.create(
model="open-mistral-7b",
training_files=[{"file_id": file_id, "weight": 1}],
hyperparameters={
"training_steps": 1000,
"learning_rate": 0.0001
}
)
Формат данных для La Plateforme — JSONL с полями messages (аналогично OpenAI Chat format):
{"messages": [{"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]}
Архитектурная особенность Mixtral: Mixture of Experts
Mixtral 8x7B использует MoE-архитектуру: 8 «экспертов» (отдельных MLP), из которых для каждого токена активируются только 2. Это даёт качество, сопоставимое с 40B+ моделью, при VRAM-требованиях ~48GB (fp16) и скорости inference 7B модели. Подробнее об архитектуре можно прочитать в Wikipedia: Mixture of experts.
При LoRA fine-tuning Mixtral важно выбрать правильные target_modules. В MoE-слоях есть специфические параметры:
lora_config = LoraConfig(
r=16,
lora_alpha=32,
# Для Mixtral включаем MoE-специфичные слои
target_modules=[
"q_proj", "v_proj", "k_proj", "o_proj",
"w1", "w2", "w3" # MoE expert weights
],
task_type="CAUSAL_LM"
)
Включение w1/w2/w3 (веса экспертов) в LoRA даёт существенный прирост качества для domain-specific задач, но увеличивает число обучаемых параметров.
Self-hosted fine-tuning Mistral 7B: пошаговый процесс
Развёрнутый пример конфигурации
Типичный стек для продакшн fine-tuning: transformers + trl + peft + bitsandbytes + Weights & Biases для мониторинга. Используем QLoRA для экономии памяти.
from trl import SFTTrainer, SFTConfig
from peft import LoraConfig
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.bfloat16,
)
model = AutoModelForCausalLM.from_pretrained(
"mistralai/Mistral-7B-Instruct-v0.3",
quantization_config=bnb_config,
device_map="auto"
)
# Mistral использует sliding window attention
# context_length лучше ограничить до 4096 при QLoRA
trainer = SFTTrainer(
model=model,
args=SFTConfig(
max_seq_length=4096,
num_train_epochs=4,
per_device_train_batch_size=2,
gradient_accumulation_steps=8,
warmup_ratio=0.1,
lr_scheduler_type="cosine",
learning_rate=2e-4,
bf16=True,
report_to="wandb",
),
train_dataset=train_dataset,
peft_config=LoraConfig(r=16, lora_alpha=32, target_modules=["q_proj","v_proj"])
)
- Подготовка данных: очистка, балансировка, аугментация. Минимум 100 примеров, оптимально 1000+.
- Выбор конфигурации LoRA: rank (обычно 16-64), target_modules (q_proj, v_proj, для Mixtral + w1,w2,w3).
- Запуск обучения: на A100 40GB Mistral 7B обучается 1-3 дня, Mixtral 8x7B — 3-7 дней на двух A100.
- Мониторинг: Weights & Biases или MLflow для отслеживания loss, learning rate, gradient norms.
- Оценка: на отложенной выборке (20%), метрики accuracy/F1/BLEU.
- Экспорт и деплой: ONNX/TensorRT для инференса, настройка vLLM с batching.
Практический кейс: e-commerce классификатор на Mistral 7B
Задача: классификация товарных описаний по 340 категориям каталога (иерархическая, 3 уровня). До этого использовался эвристический классификатор с accuracy 61%. Из нашей практики: клиент — маркетплейс электроники.
Датасет: 18 000 примеров (название + описание товара → путь в иерархии категорий).
Обучение: Mistral 7B Instruct v0.3, QLoRA (r=32), 3 эпохи, одна A100 40GB, 2.5 часа.
Результаты:
- Top-1 accuracy: 61% → 88%
- Top-3 accuracy: 79% → 97%
- Latency p50: 340мс (vLLM, batching)
- Стоимость vs La Plateforme API: -73% при объёме 500K запросов/месяц
Когда выбирать Mistral, а когда Llama или GPT-4o для fine-tuning?
Mistral 7B — оптимален, когда нужен баланс качества и скорости, один GPU, задачи классификации или извлечения данных умеренной сложности.
Mixtral 8x7B — когда 7B не хватает качества, но 70B слишком дорог в инференсе; хорош для генерации и сложного reasoning.
Llama 3.1 70B — максимальное качество среди открытых, когда нужно конкурировать с GPT-4 уровнем.
GPT-4o fine-tuning — когда нет GPU-инфраструктуры, данные не конфиденциальны, объём инференса средний.
Что входит в работу
- Анализ задачи и выбор модели (Mistral 7B, Mixtral, La Plateforme).
- Подготовка и разметка датасета (чистка, балансировка, аугментация).
- Настройка гиперпараметров (learning rate, количество эпох, LoRA rank).
- Обучение с мониторингом (W&B, MLflow).
- Оценка на отложенной выборке, сравнение с бейзлайном.
- Экспорт в ONNX/TensorRT для инференса.
- Документация по работе модели, рекомендации по эксплуатации.
Сроки проекта
- Подготовка данных: 2–5 недель
- Обучение и итерации (Mistral 7B, A100): 1–3 дня суммарно
- Обучение (Mixtral 8x7B, 2×A100): 3–7 дней суммарно
- Оценка, тюнинг, деплой: 1–2 недели
- Итого: 4–9 недель
Закажите fine-tuning с гарантией результата. Получите консультацию по выбору модели и стратегии дообучения. Свяжитесь с нами, чтобы обсудить ваш проект.







