# Stabileste-ti obiectivul de antrenare: Prompt, RAG sau Fine-Tune?

Cea mai scumpa greseala din AI-ul local nu este o antrenare esuata — este o antrenare *reusita* care rezolva problema gresita. Inainte ca dragonul tau sa manance un singur exemplu, ai nevoie de un obiectiv de antrenare precis si de dovada ca fine-tuning-ul este macar unealta potrivita. Aceasta lectie iti ofera un cadru de decizie folosit de echipele care livreaza modele fine-tuned pe bune.

## Cele trei unelte, comparate sincer

Cand un model nu face ce vrei, ai trei optiuni in ordine crescatoare:

**1. Prompting (gratuit, instant).** Scrie instructiuni mai bune, adauga exemple in prompt (few-shot), defineste formatul de iesire. Asta rezolva mai multe probleme decat cred majoritatea oamenilor.

**2. RAG — Retrieval-Augmented Generation (ieftin, rapid de construit).** Stochezi documentele intr-un index de cautare; recuperezi fragmentele relevante si le lipesti in prompt in momentul intrebarii. Aceasta este unealta corecta ori de cate ori problema este *modelul nu cunoaste faptele mele*.

**3. Fine-tuning (acest curs).** Chiar schimbi ponderile modelului cu exemple de antrenare. Unealta corecta cand problema este *modelul nu se comporta cum am nevoie* — ton gresit, format gresit, ignora instructiuni specifice sarcinii tale, nu vorbeste limbajul domeniului tau.

<div class="concept-box">
<h4>Concept</h4>
Regula intr-o singura fraza pe care o foloseste toata industria: <strong>fine-tuning-ul invata comportament, RAG furnizeaza cunostinte.</strong> Faptele se schimba — pune-le intr-o baza de date. Comportamentul e stabil — coace-l in ponderi. Multe sisteme de productie le folosesc pe amandoua: un model fine-tuned <em>plus</em> RAG.
</div>

Iata decizia sub forma de diagrama:

<svg viewBox="0 0 720 420" width="100%" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Diagrama de decizie: prompt vs RAG vs fine-tune">
    <defs>
    <marker id="arr" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto">
      <path d="M0,0 L8,4 L0,8 z" fill="#7b8cff"/>
    </marker>
  </defs>
  <rect x="230" y="16" width="260" height="52" rx="10" fill="rgba(123,140,255,0.08)" stroke="#7b8cff" stroke-width="1.5"/>
  <text x="360" y="38" text-anchor="middle" fill="#e6e9f0" font-family="-apple-system, sans-serif" font-size="15px">Modelul nu face</text>
  <text x="360" y="57" text-anchor="middle" fill="#e6e9f0" font-family="-apple-system, sans-serif" font-size="15px">ce am nevoie</text>
  <path d="M360 68 L360 100" stroke="#7b8cff" stroke-width="1.5" fill="none" marker-end="url(#arr)"/>
  <rect x="215" y="100" width="290" height="52" rx="10" fill="rgba(123,140,255,0.08)" stroke="#7b8cff" stroke-width="1.5"/>
  <text x="360" y="122" text-anchor="middle" fill="#e6e9f0" font-family="-apple-system, sans-serif" font-size="15px">Am incercat prompting serios</text>
  <text x="360" y="141" text-anchor="middle" fill="#e6e9f0" font-family="-apple-system, sans-serif" font-size="15px">cu exemple few-shot?</text>
  <path d="M215 126 L120 126 L120 180" stroke="#7b8cff" stroke-width="1.5" fill="none" marker-end="url(#arr)"/>
  <text x="130" y="118" fill="#4fffb0" font-family="monospace" font-size="12px">nu</text>
  <rect x="30" y="180" width="180" height="52" rx="10" fill="rgba(79,255,176,0.08)" stroke="#4fffb0" stroke-width="1.5"/>
  <text x="120" y="202" text-anchor="middle" fill="#e6e9f0" font-family="-apple-system, sans-serif" font-size="15px">Repara promptul intai.</text>
  <text x="120" y="221" text-anchor="middle" fill="#9aa3b5" font-family="-apple-system, sans-serif" font-size="12px">Gratuit. Fa asta azi.</text>
  <path d="M360 152 L360 190" stroke="#7b8cff" stroke-width="1.5" fill="none" marker-end="url(#arr)"/>
  <text x="370" y="176" fill="#4fffb0" font-family="monospace" font-size="12px">da, tot rau</text>
  <rect x="215" y="190" width="290" height="52" rx="10" fill="rgba(123,140,255,0.08)" stroke="#7b8cff" stroke-width="1.5"/>
  <text x="360" y="212" text-anchor="middle" fill="#e6e9f0" font-family="-apple-system, sans-serif" font-size="15px">Problema e ca lipsesc sau se</text>
  <text x="360" y="231" text-anchor="middle" fill="#e6e9f0" font-family="-apple-system, sans-serif" font-size="15px">schimba fapte / documente?</text>
  <path d="M505 216 L600 216 L600 270" stroke="#7b8cff" stroke-width="1.5" fill="none" marker-end="url(#arr)"/>
  <text x="560" y="208" fill="#4fffb0" font-family="monospace" font-size="12px">da</text>
  <rect x="510" y="270" width="180" height="52" rx="10" fill="rgba(251,191,36,0.08)" stroke="#fbbf24" stroke-width="1.5"/>
  <text x="600" y="292" text-anchor="middle" fill="#e6e9f0" font-family="-apple-system, sans-serif" font-size="15px">Foloseste RAG.</text>
  <text x="600" y="311" text-anchor="middle" fill="#9aa3b5" font-family="-apple-system, sans-serif" font-size="12px">Faptele traiesc intr-un index.</text>
  <path d="M360 242 L360 280" stroke="#7b8cff" stroke-width="1.5" fill="none" marker-end="url(#arr)"/>
  <text x="370" y="266" fill="#4fffb0" font-family="monospace" font-size="12px">nu — e comportament</text>
  <rect x="215" y="280" width="290" height="60" rx="10" fill="rgba(79,255,176,0.08)" stroke="#4fffb0" stroke-width="1.5"/>
  <text x="360" y="305" text-anchor="middle" fill="#e6e9f0" font-family="-apple-system, sans-serif" font-size="15px">Fine-tune. Acest curs.</text>
  <text x="360" y="326" text-anchor="middle" fill="#9aa3b5" font-family="-apple-system, sans-serif" font-size="12px">Ton, format, disciplina, stil de domeniu</text>
  <path d="M360 340 L360 372" stroke="#7b8cff" stroke-width="1.5" fill="none" marker-end="url(#arr)"/>
  <text x="360" y="396" text-anchor="middle" fill="#9aa3b5" font-family="-apple-system, sans-serif" font-size="12px">Adesea raspunsul real: model fine-tuned + RAG impreuna</text>
</svg>

## Obiective bune si rele pentru fine-tuning

**Obiective la care fine-tuning-ul exceleaza:**

- *"Raspunde la intrebari de suport cu vocea brandului nostru, incheind mereu cu un pas urmator."* — ton + format ✔
- *"Transforma notite dezordonate de sedinta in sablonul nostru exact de raport de status."* — transformare structurata ✔
- *"Clasifica emailurile primite in cele 12 categorii interne ale noastre."* — disciplina in sarcina ✔
- *"Scrie descrieri de produse care suna ca in catalogul nostru, in romana."* — stil + limba ✔
- *"Genereaza mereu JSON valid conform schemei noastre."* — fiabilitate de format ✔

**Obiective care se vor termina cu lacrimi:**

- *"Invata modelul lista noastra de preturi din 2026."* ✘ — faptele se schimba; foloseste RAG. Modelul va halucina preturi cu incredere totala.
- *"Fa un model 4B la fel de destept ca Claude."* ✘ — fine-tuning-ul nu adauga capacitate de rationament; modeleaza ce exista deja.
- *"Antreneaza-l pe toate documentele noastre ca sa stie tot."* ✘ — aruncatul documentelor brute in fine-tuning invata modelul sa *imite documentele tale*, nu sa raspunda la intrebari despre ele.

<div class="honest-note">
<h4>Nota sincera</h4>
Daca cineva iti spune ca a facut fine-tune pe un model "ca sa cunoasca datele companiei", fie a construit de fapt RAG, fie modelul lui inventeaza cu incredere date despre companie. Fine-tuning-ul pe documente brute este cea mai frecventa greseala de incepator din AI-ul local — iar de acum e una pe care tu nu o vei face niciodata.
</div>

## Proiectul cursului: definim treaba lui Ember

Pentru restul cursului, obiectivul de antrenare al lui Ember este unul dintre cele mai puternice cazuri de utilizare pentru un model local:

> **Ember este un asistent de suport pentru clienti al unui mic magazin online. Raspunde cu vocea prietenoasa-dar-precisa a magazinului, in limba clientului, structureaza mereu raspunsurile astfel: raspuns scurt → explicatie → pas urmator concret, si refuza sa inventeze detalii despre comenzi pe care nu le are.**

Observa din ce este facut acest obiectiv: **voce** (comportament), **structura** (format), **disciplina** (refuzul de a halucina). Toate merita bagate in ponderi. *Faptele* despre comenzi specifice ar veni dintr-o baza de date la runtime — nu din antrenare.

## Scrie un card de obiectiv inainte sa antrenezi orice

<div class="pro-tip">
<h4>Pro Tip</h4>
Profesionistii scriu evaluarea inainte de antrenare. Daca nu poti descrie cum vei <em>masura</em> succesul, nu ai inca un obiectiv de antrenare — ai o dorinta.
</div>

Cardul tau de obiectiv are patru linii. Iata-l pe al lui Ember:

- **Sarcina:** raspunde la intrebari de suport pentru un magazin online
- **Comportament:** voce prietenoasa-precisa; structura: raspuns → explicatie → pas urmator; nu inventa niciodata date despre comenzi
- **Test de succes:** pe 30 de intrebari de test tinute deoparte, ≥25 urmeaza structura si 0 inventeaza fapte
- **Non-obiective:** cunostinte despre produse (treaba RAG mai tarziu), alte limbi in afara de EN/RO

<div class="try-it">
<h4>Incearca</h4>
Scrie propriul tau card de obiectiv — patru linii, cu numere reale in testul de succes. Daca linia "Comportament" contine cuvintele "stie" sau "isi aminteste", opreste-te si muta acea parte pe linia Non-obiective: aceea e RAG. Pastreaza acest card; in lectia 6 devine checklist-ul tau de evaluare.
</div>

<div class="checkpoint">
<h4>Checkpoint</h4>
Poti explica fine-tuning vs RAG intr-o singura fraza, stii care obiective merita bagate in ponderi si ai un card de obiectiv scris, cu un test de succes masurabil. Urmeaza: matematica memoriei care iti spune exact ce poate antrena masina ta.
</div>
