Fine-tuning & optimalizace
Správný model pro správný úkol.
Fine-tuning, knowledge distillation, inference optimalizace. Protože GPT-4 na každý dotaz je jako jezdit kamionem pro rohlíky.
Kdy fine-tunovat¶
Fine-tuning není vždy správná odpověď. Většina problémů se dá vyřešit lepším promptem, lepším kontextem (RAG), nebo lepší orchestrací. Fine-tuning má smysl ve specifických situacích:
Rozhodovací strom¶
Problém s kvalitou AI?
│
├── Chybějící znalosti → RAG (přidej kontext)
│
├── Špatný formát výstupu → Prompt engineering
│
├── Nekonzistentní chování → Few-shot examples v promptu
│
├── Stále nedostatečné? → Fine-tuning
│
├── Potřeba snížit náklady → Distillation (velký → malý model)
│
└── Regulace (on-premise) → Fine-tune open-source + deploy locally
Konkrétní indikace pro fine-tuning¶
- Domain-specific jazyk — model nerozumí vaší terminologii ani s kontextem (lékařství, právo, specifický obor)
- Konzistentní formát — potřebujete vždy stejnou strukturu výstupu (JSON schema, tabulka, specifický template)
- Náklady — GPT-4 na 10 000 dotazů denně je drahé. Fine-tuned Llama 8B za zlomek ceny.
- Latence — velký model = pomalý. Malý fine-tuned = rychlý (<200ms)
- Data residency — data nesmí opustit vaše prostředí. On-premise = open-source + fine-tuning.
Knowledge distillation¶
Nejčastější forma fine-tuningu v praxi: velký model (GPT-4, Claude) učí malý model (Llama 8B, Mistral 7B) dělat specifickou úlohu.
Jak to funguje¶
┌──────────────────────────────────────────────────┐
│ TEACHER MODEL (GPT-4, Claude) │
│ - Velký, drahý, pomalý │
│ - Excelentní kvalita │
│ - Generuje training data pro studenta │
└──────────────────┬───────────────────────────────┘
│ Syntetická training data
│ (1000-5000 příkladů)
▼
┌──────────────────────────────────────────────────┐
│ FINE-TUNING PIPELINE │
│ - Data cleaning & dedup │
│ - LoRA/QLoRA fine-tuning │
│ - Evaluace against teacher │
│ - Iterace (3-5 cyklů) │
└──────────────────┬───────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────┐
│ STUDENT MODEL (Llama 8B, Mistral 7B) │
│ - Malý, levný, rychlý │
│ - 85-95% kvality teacheru na cílové doméně │
│ - Produkční nasazení (API nebo on-premise) │
└──────────────────────────────────────────────────┘
Výsledky v praxi¶
| Metrika | GPT-4 (teacher) | Fine-tuned Llama 8B | Rozdíl |
|---|---|---|---|
| Kvalita (domain-specific) | 95% | 89% | -6% |
| Latence P95 | 2.5s | 180ms | 14x rychlejší |
| Cost per query | $0.03 | $0.002 | 15x levnější |
| Data residency | Cloud (US/EU) | On-premise | ✅ |
Typický break-even: při 1000+ dotazech/den se fine-tuning zaplatí za 2-3 měsíce.
LoRA & QLoRA fine-tuning¶
Co je LoRA¶
Low-Rank Adaptation (LoRA) je efektivní metoda fine-tuningu, která nemění celý model. Místo toho přidá malé adaptační matice (typicky 0.1-1% parametrů) do existujících vrstev. Výhody:
- Rychlý trénink — hodiny místo dnů
- Nízké nároky — stačí 1 GPU (24GB VRAM pro 7B model s QLoRA)
- Modularita — můžete mít více LoRA adaptérů pro různé use-cases
- Bezpečnost — base model zůstává nezměněný, adaptér je malý soubor
Náš training pipeline¶
- Data collection — reálná data z produkce + syntetická z teacher modelu
- Data cleaning — deduplikace, quality filtering, formát standardizace
- Hyperparameter search — rank, alpha, learning rate, epochs
- Training — LoRA/QLoRA, gradient checkpointing, mixed precision
- Evaluace — against baseline (teacher + base model), golden dataset
- Iteration — pokud kvalita nedosahuje threshold, iterujeme (více dat, jiné hyperparameters)
- Merge & deploy — merge LoRA do base modelu, quantize, deploy
Training data quality¶
Kvalita > kvantita. Naše pravidla:
- Diversity — pokrýt celý rozsah use-cases, ne jen easy cases
- Edge cases — explicitně zahrnout obtížné příklady
- Negative examples — příklady, kdy správná odpověď je “nevím” nebo eskalace
- Consistency — stejný styl, formát, úroveň detailu
- Validation — doménový expert validuje 100% training dat
Inference optimalizace¶
Fine-tuning je polovina příběhu. Druhá polovina je jak model efektivně servírovat v produkci.
Quantization¶
Snížení přesnosti výpočtů z FP16 na INT8 nebo INT4:
| Metoda | Velikost (7B model) | Kvalita | Rychlost |
|---|---|---|---|
| FP16 | 14 GB | 100% (baseline) | 1x |
| INT8 (GPTQ) | 7 GB | 99.5% | 1.3x |
| INT4 (AWQ) | 3.5 GB | 98% | 1.8x |
| INT4 (GGUF) | 4 GB | 97% | 1.5x (CPU!) |
Pro většinu produkčních use-cases je INT8 sweet spot — minimální ztráta kvality, výrazné snížení VRAM a zrychlení.
Batching & KV-cache¶
Continuous batching: Zpracování více požadavků současně. Framework (vLLM, TGI) automaticky batche requests, sdílí KV-cache mezi nimi. Throughput 3-5x vyšší než naive sequential processing.
KV-cache optimalizace: PagedAttention (vLLM) efektivně spravuje paměť pro KV-cache. Eliminuje fragmentaci, umožňuje vyšší batch size.
Speculative decoding¶
Malý draft model (např. Llama 1B) generuje kandidátní tokeny, velký model je verifikuje v jednom forward pass. Zrychlení 2-3x pro úlohy s prediktabilním výstupem (strukturovaný text, kód).
Inference stack pro produkci¶
┌──────────────────────────────────────────────────┐
│ LOAD BALANCER (nginx, envoy) │
│ │ │
│ ▼ │
│ API GATEWAY (rate limiting, auth, routing) │
│ │ │
│ ▼ │
│ INFERENCE SERVER (vLLM / TGI / Triton) │
│ - Continuous batching │
│ - KV-cache management │
│ - Quantized model │
│ - GPU autoscaling │
│ │ │
│ ▼ │
│ MONITORING (latency, throughput, GPU util) │
└──────────────────────────────────────────────────┘
Model selection guide¶
| Use-case | Doporučený model | Proč |
|---|---|---|
| General assistant | GPT-4 / Claude | Nejvyšší kvalita, není potřeba fine-tuning |
| Domain QA (high volume) | Fine-tuned Llama 8B | Nízké náklady, nízká latence |
| Code generation | Fine-tuned CodeLlama / DeepSeek | Specializace na kód |
| Document extraction | Fine-tuned Mistral 7B | Strukturovaný výstup, konzistence |
| Embedding/retrieval | Nomic / BGE / domain-tuned | Kvalita retrieval na vaší doméně |
| On-premise (regulace) | Llama / Mistral + LoRA | Žádná data do cloudu |
Proces optimalizace¶
Fáze 1: Analýza (1 týden)¶
- Audit stávajícího AI systému (modely, náklady, kvalita, latence)
- Identifikace optimalizačních příležitostí
- Cost-benefit analýza fine-tuning vs. prompt engineering vs. model swap
Fáze 2: Experimentation (2-3 týdny)¶
- Training data collection & preparation
- Fine-tuning experiments (3-5 konfigurací)
- Evaluace against baselines
- Inference optimization (quantization, batching)
Fáze 3: Production (1-2 týdny)¶
- Deploy optimalizovaného modelu (shadow mode → A/B test → full rollout)
- Monitoring setup
- Performance validation na produkčním traffic
Fáze 4: Iteration (ongoing)¶
- Kontinuální sběr feedback dat
- Periodický re-training (quarterly nebo při drift)
- Model upgrade evaluation (nové base modely)
Časté otázky
Prompt engineering je vždy první krok — je rychlejší a levnější. Fine-tuning se vyplatí, když: specifická doména vyžaduje konzistentní chování, potřebujete snížit latenci/náklady (menší model), nebo musíte běžet on-premise (regulace). Analyzujeme váš use-case a doporučíme optimální přístup.
Pro LoRA fine-tuning typicky 500-5000 kvalitních příkladů. Pro knowledge distillation generujeme syntetická data z velkého modelu — stačí definovat doménu a use-cases. Kvalita > kvantita — 500 perfektních příkladů > 5000 průměrných.
Ano, to je jeden z hlavních use-cases. Fine-tunujeme Llama, Mistral, Qwen na vaše data, optimalizujeme (quantization, KV-cache), deployujeme na vaší infrastruktuře. Žádná data neopouštějí vaše prostředí.
Rigorous evaluace: golden dataset (200+ párů), A/B test against baseline, regresní testy na general capabilities. Fine-tuned model musí být lepší na vaší doméně a nesmí degradovat na obecných úlohách o více než 5%.