Доучування мовної моделі 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 з гарантією результату. Отримайте консультацію щодо вибору моделі та стратегії доучування. Зв'яжіться з нами, щоб обговорити ваш проєкт.







