Fine tuning vs RAG vs prompting. Kiedy co ma sens i jak wybrać dla swojego projektu
Klient przyszedł z pytaniem. “Chcę zbudować AI asystenta dla naszych 15 000 dokumentów. Fine-tune modelu czy RAG?”. Trzy godziny dyskusji, jasny wybór, projekt uruchomiony w 6 tygodni.
Rok wcześniej ten sam klient przyszedł do konkurencji. Konkurencja wybrała fine-tuning. 4 miesiące projektu, $80k budżetu, wynik nie działał. Klient anulował.
Różnica? Nie w skills wykonawców. W wyborze techniki. Fine-tuning był zły choice dla tego use case’u.
Ten post to konkretne decision framework, którego używam w agencji. Kiedy co wybrać, jakie są trade-offs, jak nie stracić miesięcy na złej decyzji.
Trzy techniki: co to jest
Prompting. Piszesz smart prompty do modelu. Model generuje odpowiedź na podstawie swojej wiedzy plus context w prompcie. Zero training, zero infrastruktury.
RAG (Retrieval Augmented Generation). Twoje dokumenty w vector database. Query search’uje najlepsze dokumenty, wstawia do promptu, model odpowiada. Wiedza w bazie, model bez zmian.
Fine-tuning. Trenuje model na Twoich danych. Nowe wagi modelu, dostosowane do Twoich potrzeb. Wiedza wbudowana w model.
Wszystkie trzy mogą być combined. Ale zaczynasz zwykle od jednego.
Prompting: gdzie zaczynasz
Prompting to default. Zawsze zaczynaj tu.
Kiedy prompting wystarcza:
- Zadanie może być wyjaśnione w promptie
- Context dostarczalny (< 200k tokenów)
- Ogólna wiedza modelu wystarcza
- Nie potrzebujesz specific style/format constraints
- Prototyp / MVP
Konkretne use cases:
- Chatbot na FAQ (10-50 pytań)
- Summarization
- Klasyfikacja emaili
- Code review basic
- Translation
- Simple content generation
Koszty:
- Pay per token, no upfront
- $2-15/M tokens dla Claude/GPT-4
- Setup: 0 (write prompt, ship)
Pisałem szerzej o promptowaniu. Solid prompts pokrywają 60-70% AI use cases.
RAG: kiedy dane są duże
RAG (Retrieval Augmented Generation) to następny level.
Kiedy RAG:
- Duża baza wiedzy (> 200k tokenów)
- Wiedza zmienia się (dokumentacja, ceny, polityki)
- Compliance / audit trail wymagany
- Multi-tenant (każdy klient własne dane)
- Model musi cite sources
Konkretne use cases:
- Customer support na 10k artykułów wiedzy
- Legal research na tysiące dokumentów prawnych
- Internal Q&A na company documentation
- Product search z natural language queries
- Medical Q&A na medical literature
Koszty:
- Setup: 4-8 tygodni development
- Infrastructure: $50-500/miesiąc (vector DB + embeddings)
- Per query: $0.10-1.00 (embedding + retrieval + LLM)
Pisałem szczegółowy deep dive w RAG. Detale infrastructure, chunking, retrieval - tam.
Fine-tuning: rzadko, ale czasem konieczne
Fine-tuning to najcięższa opcja.
Kiedy fine-tuning:
- Specyficzny styl output (marka, tone of voice)
- Ekstremalnie niche domain (nietypowy jargon, non-English languages)
- Behavioral changes (jak model reasoning się zmienia)
- Cost optimization dla wysokiego volume (fine-tuned model może być tańszy per token niż flagship)
- Latency requirements (fine-tuned model może być szybszy)
- Constraints w output format (JSON schema perfectly followed)
Konkretne use cases:
- Content generation w brand voice
- Legal document analysis w very specific jurisdiction
- Medical diagnosis assistance z specialized vocabulary
- Code generation w firmowym coding style
- Translation dla rzadkiego dialektu
Koszty:
- Training: $500-5000 dla small model, $10k-100k dla large
- Data preparation: 100-1000 hours (bo dobrych danych trudno zebrać)
- Iteration: kilkanaście rund fine-tuning
- Inference: hosting fine-tuned model (own infrastructure albo Together.ai, Anthropic Fine-tuning)
Fine-tuning to nie “prompt is failing, let’s fine-tune”. To specific solution dla specific problems.
Decision framework
Pytania, które sobie zadaję dla każdego AI projektu.
Q1: Ile danych masz?
- < 100k tokenów total → Prompting (włącz do system prompt)
- 100k - 10M tokenów → RAG
-
10M tokenów → RAG plus może fine-tuning
Q2: Jak często dane się zmieniają?
- Nigdy / roczne updates → Fine-tuning możliwe
- Kwartalne / miesięczne → RAG
- Codzienne / real-time → RAG bezdyskusyjnie
Q3: Czy potrzebujesz cite sources?
- Tak (compliance, audit) → RAG
- Nie → Prompting albo Fine-tuning
Q4: Jak specyficzny jest styl output?
- Ogólny (jak Claude/GPT) → Prompting
- Konkretna marka, specific format → Fine-tuning (albo bardzo detailed prompting)
Q5: Jaki volume queries?
- < 1000/day → Prompting albo RAG (koszty low)
- 1000 - 100k/day → RAG (koszty matter)
-
100k/day → RAG plus caching albo fine-tuning dla cost optimization
Q6: Jak dostępne są dane treningowe?
- Nie mam labeled data → Prompting albo RAG
- Mam 100-1000 examples → Prompting z few-shot examples
- Mam 10k+ examples → Fine-tuning możliwe
Q7: Ile masz czasu?
- 1-2 tygodnie → Prompting
- 1-3 miesiące → RAG
- 3-6 miesięcy → Fine-tuning możliwe
Kombinowanie technik
Najbardziej sophisticated systemy używają wszystkich trzech.
Layer 1: Prompting (foundation)
Wszystkie interakcje mają starannie napisany system prompt.
Layer 2: RAG (context)
Query trafia najpierw do RAG. Retrieved context wstawiony do prompt.
Layer 3: Fine-tuned model (execution)
Prompt (z context) idzie do fine-tuned modelu dla specific behavior.
Przykład: legal AI assistant.
- Fine-tuned Claude na legal reasoning (understands cases, precedents structure)
- RAG na klient’s case files (retrieves relevant docs)
- Prompting dla case-specific instructions (“focus on financial aspects”)
Wszystko razem: super-powerful, expensive to build, worth it dla enterprise.
Real examples z mojej praktyki
Konkretne projekty klientów.
Case 1: Customer support chatbot dla e-commerce
Dane: 200 FAQ entries, 500 kategorii produktów, 5000 wcześniejszych ticketów.
Decision: Prompting z few-shot examples. RAG dla katalogu produktów.
Rezultat: 4 tygodnie development. 60% ticketów resolved automatycznie. Cost $200/miesiąc.
Dlaczego nie fine-tuning: dane changeable (nowe produkty, sezonowe promocje), volume nie justify (5000 conversations/miesiąc).
Case 2: Legal research assistant dla kancelarii
Dane: 15 000 court decisions, 2000 statutes, 50 legal treatises.
Decision: RAG z reranking.
Rezultat: 8 tygodni development. Prawnik uses codziennie. Dokładność 90%+ na typowych queries. Cost $500/miesiąc.
Dlaczego nie fine-tuning: dane update częste (nowe orzeczenia), need to cite sources (compliance), potential future addition of more documents.
Case 3: Content generation w brand voice
Dane: 3000 postów blogowych klienta, 500 social media postów.
Decision: Fine-tuning małego modelu (Llama 3 8B) na brand content.
Rezultat: 6 tygodni development plus data preparation. $8000 total cost. Deploys na własnym GPU. Generuje 200 postów/miesiąc.
Dlaczego fine-tuning: brand voice bardzo specific, potrzeba scale (200 postów miesięcznie), koszty per generation matter (Claude by cost $2/post × 200 = $400 vs fine-tuned $50/miesiąc total).
Case 4: Code review agent dla senior devs
Dane: 50 000 code reviews z historii firmy.
Decision: RAG na past reviews plus Claude Sonnet dla analizy.
Rezultat: 6 tygodni development. Senior devs cut review time o 40%. Cost $300/miesiąc.
Dlaczego nie fine-tuning: Claude Sonnet już świetny w code, brak need dla specialized reasoning.
Case 5: Medical Q&A dla clinics
Dane: 5000 medical papers, 2000 clinical guidelines, drug database.
Decision: RAG plus safety guardrails.
Rezultat: 10 tygodni development, extensive validation. Deployed w 3 clinics. Cost $1000/miesiąc.
Dlaczego nie fine-tuning: safety critical (halucynacje nieakceptowalne), need to cite sources, data change regularly (new guidelines).
Kiedy fine-tuning ma naprawdę sens
Konkretne signals, że fine-tuning jest right choice:
1. Wysoki volume. 100k+ requests dziennie. Fine-tuned model 10x tańszy per request niż flagship.
2. Bardzo konkretny task. “Classify emails as spam/urgent/normal” z 20k labeled examples. Fine-tune małego modelu, super fast, super cheap.
3. Latency krytyczna. Fine-tuned 8B model runs w 100ms. Claude 4o w 1-3 sekundy.
4. Bardzo specyficzny output format. JSON schema exactly followed, brand voice replicated, specific reasoning pattern.
5. Data static. Historical data, nie zmienia się co miesiąc.
6. Privacy critical. Musisz self-host, nie możesz używać API providera.
If less than 2-3 z tych, prompting lub RAG lepsze.
Koszty porównania
Konkretne liczby dla typowej aplikacji (10k queries/day, 500 tokens per query).
Prompting (Claude Sonnet):
- Setup: $0
- Per month: 300k queries × 500 tokens × 2 = 300M tokens = $900
RAG (Claude Sonnet plus vector DB):
- Setup: $10k-30k development
- Per month: LLM $900 + Vector DB $100 + Embeddings $50 = $1050
Fine-tuning (Llama 3 8B, self-hosted):
- Setup: $10k development + $2k training + $50k data prep = $62k
- Per month: GPU hosting $500 + minor operational = $500
Break-even fine-tuning vs prompting: 8-12 miesięcy dla tego volume.
Break-even RAG vs prompting: 0 miesięcy (RAG jest slightly droższe, ale gives features prompting can’t).
Migration path
Rzadko zaczynasz od fine-tuning. Typowy path:
Miesiąc 1-2: Prototyp z pure prompting. Sprawdzasz, czy problem jest solvable.
Miesiąc 3-6: MVP z RAG. Skalowanie do more data. Handling edge cases.
Miesiąc 6-12: Optimization. Prompt tuning, better retrieval, caching, reranking.
Rok 2+: Maybe fine-tuning dla specific bottlenecks. Cost optimization, latency, brand voice.
Fine-tuning jako first step to bardzo rzadko dobra decyzja. Prompting jako pierwsza is almost always right.
Częste błędy
Fine-tuning zamiast dobrego promptingu. Klient chce “smart AI”. Zaczynasz od fine-tuning $50k. Prosty prompt with examples by dał 90% jakości za $50.
RAG bez evaluation. Setup RAG, “działa demo”, release. Real users find 30 hallucinations. Bez metrics jesteś ślepy.
Prompting bez few-shot examples. “Do X”. Model guesses. Add 3-5 examples w promptie, quality jumps 2x.
Vendor lock-in. Fine-tune na OpenAI. Za rok OpenAI zmienia pricing. Stuck. Multi-provider setup od dnia 1 (OpenRouter helpful).
Ignorowanie ewaluacji. Bez metrics nie wiesz, czy release’y poprawiają czy pogarszają. Add eval framework early.
Overspending on infrastructure. Pinecone dla 5k documents. Overkill. pgvector free.
Missing security. Fine-tuned model trained on sensitive data zwraca sensitive data w responses. Data leakage. Sanitize training data.
Alternatives dla fine-tuningu
Zamiast full fine-tuning, cheaper alternatives:
Few-shot examples. 3-10 examples w system prompt. Model learns w context. Zero training.
Prompt caching. Anthropic supports caching long prompts. Cache hit = 90% discount. Reasoning na long context bez cost.
Retrieval augmentation (RAG). Wiedza w bazie, dynamic retrieval.
Structured output constraints. Zamiast fine-tuning na JSON output, use OpenAI structured outputs feature. Guarantees format bez training.
LoRA / QLoRA. Cheaper alternative do full fine-tuning. Train adapter layers only. 10x cheaper, 80% quality.
Rzadko fine-tuning to jedyna opcja. Check alternatives first.
Model wyboru: który base model do fine-tune
Jeśli decydujesz się na fine-tuning, wybór base:
GPT-4o mini (OpenAI). Managed fine-tuning API. $2 per M training tokens, $0.30 per M inference. Best balance quality/cost.
Claude Haiku (Anthropic). Fine-tuning available przez enterprise plans. Better reasoning niż GPT-4o mini.
Llama 3.3 70B (Meta). Open source. Self-host lub cloud (Together.ai, Fireworks). Best jakość dla open source.
Llama 3 8B (Meta). Mały, szybki, tani. Perfect dla wysokiego volume simple tasks.
Mistral 7B/22B. Open source, competitive z Llama.
DeepSeek V3. Rising player, świetna jakość, tanie inference.
Dla większości fine-tuning cases: Llama 3.3 70B open source, hosted na Together.ai. Balance cost, quality, control.
Co czytać dalej
- “AI Engineering” Chip Huyen. Świeża 2024, praktyczna.
- Anthropic Cookbook. Real examples fine-tuning i RAG.
- OpenAI fine-tuning docs. Best-in-class documentation.
- Papers: RAG, Instruction Tuning, LoRA, RLHF.
Nie kupuj kursów AI za 2000 zł. Docs plus jeden real project = lepsze niż jakikolwiek kurs.
Od czego zacząć
Decyzja dla nowego AI projektu:
- Odpowiedz na 7 pytań z decision framework.
- Prototyp w promptingu (1 tydzień). Sprawdź, jak far możesz dojść.
- Jeśli prompting nie wystarcza: RAG (4-8 tygodni).
- Jeśli RAG plus prompting nie wystarcza: rozważ fine-tuning (3-6 miesięcy).
- W międzyczasie: zbieraj data, mierz jakość, iteruj.
Większość programistów, którzy pytają “fine-tune czy nie”, powinno zacząć od promptingu. Rzadko fine-tuning zwraca inwestycję dla small/medium projektów.
W AI agents i RAG pisałem szczegółowo o konkretnych implementacjach. Ten post jest wyższym level - jak decydować w ogóle.
Wybór technique matter. Bad choice: 6 miesięcy i $50k stracone. Good choice: 6 tygodni i klient happy. To najważniejsza decyzja w AI projekcie, przed jakimkolwiek code.