Дообучение языковой модели 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 с гарантией результата. Получите консультацию по выбору модели и стратегии дообучения. Свяжитесь с нами, чтобы обсудить ваш проект.







