Kako fino podesiti LLM [i kada umesto toga koristiti RAG ili promptovanje]
Ovaj vodič objašnjava kako da fino podesite LLM korak po korak, poredi potpuno fino podešavanje sa metodama LoRA i QLoRA i pokazuje kada su promptovanje ili RAG bolji način za poboljšanje izlaza modela.

Fino podešavanje velikog jezičkog modela (LLM) znači doradu prethodno treniranog LLM-a na malom skupu podataka specifičnom za zadatak, kako bi davao izlaze koje ne možete dobiti samo promptovanjem.
Fino podešavanje podrazumeva prikupljanje primera parova ulaz/izlaz koji pokazuju željeno ponašanje, izvođenje prolaza treniranja koji pomeraju težine modela ka njima i proveru rezultata u poređenju sa izlazima originalnog modela. Parametarski efikasne metode kao što je LoRA čine ovaj proces dovoljno jeftinim da se izvodi na jednom GPU-u.
Ako niste zadovoljni izlazima LLM-a, najpre doradite promptove i generisanje prošireno pretraživanjem (RAG). Fino podešavanje menja način na koji se LLM ponaša. Kada vam je potrebno da koristi sveže ili vlasničke informacije, promptovanje i RAG su obično bolji izbor.
Evo kako da korak po korak fino podesite LLM, koje su glavne metode finog podešavanja (LoRA i QLoRA) i koji izazovi i greške mogu da pokvare proces.
Šta je fino podešavanje LLM-a i po čemu se razlikuje od pretreninga LLM-a
Pretrening LLM-a od nule gradi opštu jezičku sposobnost modela na ogromnom korpusu, dok fino podešavanje LLM-a prilagođava prethodno trenirani model na malom skupu podataka za jedan posao.
Pretrening LLM-a je faza koja zahteva mnogo resursa i iz koje nastaje osnovni model. On uči iz širokog korpusa tekstova, što mu daje opšte znanje gramatike, činjenica i rezonovanja, ali ne i specijalizaciju za vaš zadatak.
Fino podešavanje LLM-a nastavlja treniranje osnovnog modela na malom, pažljivo odabranom skupu podataka kako bi davao željene izlaze za određeni zadatak ili slučaj upotrebe. Zamislite dosledan format, glas ili ton brenda, obrasce specifične za domen ili pouzdane pozive alata i funkcija.
Kada fino podesiti LLM, a kada umesto toga koristiti promptove ili RAG
Da biste poboljšali performanse LLM-a, penjite se lestvicom: promptovanje -> RAG -> fino podešavanje.
Doradite promptove detaljnijim uputstvima i koristite RAG da biste modelu pružili ažurne informacije. Fino podešavanje koristite samo kada poboljšanja prompta i pretraživanja ne daju rezultate.
Pristup | Šta menja | Koristite kada | Glavno ograničenje |
Inženjering promptova | Zahtev koji šaljete | Ponašanje je skoro onakvo kakvo želite, a potrebni su vam brzina i mogućnost poništavanja izmena | Ograničen postojećim sposobnostima osnovnog modela |
RAG | Ono što model vidi u trenutku inferencije | Činjenice se često menjaju i potrebno je da LLM pristupa ažurnim informacijama | Dodaje latenciju pretraživanja i infrastrukturu; ne menja ponašanje |
Fino podešavanje LLM-a | Težine modela (interni parametri modela) | Potrebno vam je dosledno ponašanje, format ili ton u velikom obimu, ili kraći promptovi pri svakom pozivu | Početni trošak, znanje ugrađeno u težine zastareva, rizik od zaboravljanja ponašanja stečenih pretreningom |
Kada bolji promptovi nadmašuju fino podešavanje, a kada nisu dovoljni
Promptovanje je najbrža i najjeftinija poluga. U mnogim slučajevima precizniji i detaljniji promptovi postižu željene promene ponašanja.
Ali duži promptovi usporavaju rad i poskupljuju ga, a ne mogu da prevaziđu postojeća ograničenja modela.
Znaci da je promptovanje možda dostiglo svoje granice:
- Novi granični slučajevi stalno kvare izlaz: Na primer, model vraća prozni tekst kada vam je potreban JSON ili odstupa od tona, a vi krpite prompt za svaki novi slučaj.
- Sistemski prompt stalno raste: Prompt ima stotine ili hiljade redova i teško se održava.
- Plaćate ga pri svakom pozivu: Prompt se ponovo šalje i obrađuje pri svakom zahtevu, pa rastu troškovi tokena i latencija.
- Izmene više ne prave razliku: Nova uputstva ne poboljšavaju izlaze.
Čak i tada, najpre isprobajte jeftinija rešenja na nivou prompta. Koristite few-shot primere da biste modelu pokazali obrazac (parove ulaz/izlaz), ulančavanje promptova da biste složene zadatke podelili na manje korake ili mehanizme za pozivanje funkcija da biste precizna pretraživanja ili izračunavanja prepustili spoljnim funkcijama.
Kada RAG ima više smisla od finog podešavanja modela
RAG menja ono što LLM zna, dok fino podešavanje LLM-a menja način na koji se ponaša. Ako je jaz u znanju, posebno u znanju koje se često menja ili se nalazi u vašim dokumentima, RAG je rešenje. Ako je jaz u ponašanju, primenite fino podešavanje.
Fino podešavanje takođe menja ono što model zna, ali sve činjenice koje usvoji zamrznute su u trenutku treniranja i brzo zastarevaju u oblastima koje se brzo razvijaju. Uz to, informacije se ugrađuju u težine modela, pa ne nose nikakav zapis o svom izvoru.
Ažuriranje izvornih dokumenata koje koristi sloj za pretraživanje brže je i jeftinije, a taj sloj može da navede tačne izvore koje je koristio. Zato je to bolji izbor kada su vam potrebne proverljive, ažurne informacije.
Nedostatak RAG-a? To je dodatni sloj koji treba izgraditi i održavati, a povećava i latenciju.
U praksi će vam često biti potrebno oboje. Produkcioni sistemi kombinuju fino podešene modele sa RAG-om, koristeći jedno za dosledno ponašanje, a drugo za aktuelne činjenice.
Česte zamke, rizici i izazovi finog podešavanja
Čak i kada je fino podešavanje pravi alat, ono nosi troškove i rizike:
- Trošak i vreme: Prikupljanje čistih, reprezentativnih podataka za treniranje i računarski resursi za treniranje su skupi.
- Katastrofalno zaboravljanje: Kada se trenira na uskom skupu podataka, model može da izgubi opšte veštine i razvije nove obrasce grešaka, što dovodi do grešaka koje osnovni model nije pravio.
- Preprilagođavanje (overfitting): Uz premalo ili previše repetitivnih podataka, model pamti vaše primere za treniranje umesto da uči obrasce, pa dobro radi na uzorcima za treniranje, ali loše na stvarnim ulazima.
- Zastarevanje: Znanje ugrađeno u težine brzo zastareva, pa morate ponovo da trenirate model na novim podacima.
- Prevaziđenost: Kada se pojavi jači model, on često već bez ikakvog podešavanja nadmaši vaš fino podešeni model, pa morate ponovo da uradite posao.
- Izazovi evaluacije i reprodukcije: Teško je dokazati da fino podešeni model nadmašuje osnovni model. Dva treniranja na GPU-u sa istim podešavanjima takođe mogu da daju malo drugačije modele.
- Upravljanje podacima: Treniranje na vlasničkim ili osetljivim podacima otvara pitanja privatnosti i licenciranja; model kasnije može da otkrije delove onoga na čemu je treniran.
Glavne metode finog podešavanja
Glavne vrste finog podešavanja LLM-a razlikuju se po tome koliki deo modela menjaju: potpuno fino podešavanje ponovo trenira ceo model, dok metode parametarski efikasnog finog podešavanja (PEFT), kao što su LoRA i QLoRA, ažuriraju samo deo težina. PEFT metode zahtevaju samo delić memorije potrebne za potpuno fino podešavanje i, uz prava podešavanja, mogu da postignu iste rezultate.
Potpuno fino podešavanje ažurira svaku težinu modela. Najskuplje je i nosi najveći rizik od katastrofalnog zaboravljanja. Sačuvajte ga za velike promene ponašanja kada imate dovoljno podataka i računarskih resursa za to.
Alternativa je parametarski efikasno fino podešavanje, odnosno PEFT. To je krovni termin za metode koje zamrzavaju veći deo modela i treniraju samo mali skup parametara. Koristi daleko manje memorije i manje je sklono zaboravljanju, jer osnovni model ostaje netaknut.
Pri niskim rangovima PEFT uči manje od potpunog finog podešavanja, ali povećanje ranga i podešavanje stope učenja zatvaraju veći deo tog jaza na zadacima podešavanja prema instrukcijama (instruction tuning).
PEFT metode obuhvataju:
- LoRA (Low-Rank Adaptation): Uobičajena polazna tačka; zamrzava originalne težine i trenira mali skup dodatih parametara adaptera, često manje od 1% ukupnog broja, pa radi na jednom potrošačkom GPU-u.
- QLoRA (Quantized Low-Rank Adaptation): Kompresuje osnovni model na 4-bitnu preciznost pre primene LoRA metode, što omogućava fino podešavanje velikog modela na jednom GPU-u.
Metoda | Šta ažurira | Hardver u praksi | Koristite kada |
Potpuno fino podešavanje | Svaku težinu u modelu | Čvor sa više GPU-ova za modele klase 7B, daleko više za veće modele | Potrebna vam je duboka promena ponašanja i imate podatke i računarske resurse |
LoRA (PEFT) | Mali skup dodatih težina adaptera | Jedan potrošački GPU | Vaša podrazumevana polazna tačka |
QLoRA (PEFT) | LoRA adaptere na 4-bitno kompresovanom osnovnom modelu | Veoma veliki modeli na jednom GPU-u | Nemate dovoljno memorije, ali želite veliki osnovni model |
Pored toga, koristimo metode podešavanja prema instrukcijama i prema preferencijama, od RLHF-a (Reinforcement Learning from Human Feedback) do lakših alternativa kao što su Direct Preference Optimization (DPO) i Odds Ratio Preference Optimization (ORPO), kako bismo oblikovali način na koji model prati instrukcije i usklađuje se sa ljudskim preferencijama.
Kako fino podesiti LLM korak po korak
Kada odlučite da je fino podešavanje LLM-a prava odluka, evo kako izgleda radni tok.
Korak 1: Definišite zadatak i način na koji ćete meriti uspeh
Odlučite kakvo ponašanje želite od LLM-a i kako ćete znati da ste ga postigli.
Navedite konkretan posao koji želite da fino podešeni model obavlja, na primer klasifikaciju tiketa podrške, sažimanje ugovora u fiksnom formatu ili generisanje koda u internom stilu vaše kompanije.
Zatim definišite uspeh. Uobičajene opcije su:
- Validnost izlaza: Na primer, da li se rezultat parsira kao validan JSON ili odgovara Markdown strukturi koja vam je potrebna?
- Automatizovane ocene: Koristite metrike kao što su BLEU ili ROUGE, koje porede generisani tekst sa referentnim odgovorima, ili tačnost izvršavanja zadatka na označenom skupu podataka.
- Ljudske ocene: Kriterijumi ocenjivanja sa bodovima ili po principu prolazi/ne prolazi za kvalitete koje skripta ne može pouzdano da oceni, kao što su ton ili korisnost.
- Pouzdanost na teškim ulazima: Da li obrađuje neobične ulaze na kojima je osnovni model grešio?
Korak 2: Pripremite skup podataka
Kvalitet podataka određuje uspeh finog podešavanja, zato uložite trud u prikupljanje pravog skupa podataka za fino podešavanje.
Formatirajte podatke kao parove instrukcija/odgovor u JSONL formatu, gde svaki red sadrži ulaz (uz eventualni kontekst) i tačan izlaz koji želite da dobijete.
Na primer, pogledajte javne skupove podataka kao što su Alpaca-cleaned za opšte instrukcije ili Dolly kompanije Databricks, ili skup specifičan za zadatak banking77, koji sadrži više od 13.000 stvarnih upita podrške razvrstanih u 77 namera.
Za usko definisan zadatak, nekoliko stotina do nekoliko hiljada čistih, raznovrsnih primera može da promeni ponašanje, pod uslovom da primeri odražavaju stvarne produkcione ulaze, uključujući granične slučajeve, i da su dosledno formatirani.
Još nemate parove ulaz/izlaz? Napravite skup od podataka koje već imate, kao što su tiketi podrške i najbolji odgovori na njih, ili dokumenti i njihovi sažeci.
Ako imate samo izlaze, koristite jači model da za svaki generišete uverljiv ulaz ili ručno napišite mali početni skup i proširite ga pomoću većeg modela „učitelja“, a zatim zadržite najbolje parove.
Na kraju podelite podatke na skupove za treniranje, validaciju i testiranje, kako biste mogli da merite rezultate na primerima koje model nije video.
Korak 3: Izaberite osnovni model i metodu
Počnite sa malim modelom otvorenog koda od 3 do 7 milijardi parametara i metodom parametarski efikasnog finog podešavanja kao što su LoRA ili QLoRA.
Otvorene porodice modela kao što su Llama, Mistral i Qwen pružaju vam snažnu osnovu koju možete sami da hostujete, a PEFT metode drže hardverske zahteve niskim: QLoRA kvantizuje osnovni model na 4 bita, pa je za fino podešavanje modela od 7B potrebna samo potrošačka grafička kartica sa 16–24 GB. Potpuno fino podešavanje istog modela zahteva višestruko više memorije.
Korak 4: Podesite hiperparametre treniranja
Evo ključnih parametara finog podešavanja LLM-a i predloženih početnih opsega:
- Stopa učenja određuje koliko je veliko svako ažuriranje težina. Studija Bidermana i saradnika iz 2024. godine pokazala je da su najbolje stope za LoRA bile otprilike deset puta veće nego za potpuno fino podešavanje, obično od 5e-5 do 5e-4, naspram raspona od 1e-5 do 5e-5. Studija preporučuje isprobavanje vrednosti od 1e-5 do 5e-4 i korišćenje najveće vrednosti pri kojoj je treniranje stabilno.
- Veličina batch-a je broj primera iz kojih model uči pre svakog ažuriranja težina. Na jednom GPU-u koristite mali batch po uređaju, od 1 do 8, i akumulaciju gradijenata kako biste dostigli efektivni batch od otprilike 16 do 64.
- Broj epoha označava koliko puta model prođe kroz ceo skup podataka. Kada model trenirate za obavljanje određenih zadataka, 1–3 epohe su dobro okvirno pravilo, ali LoRA treninzima je često potrebno više.
- LoRA rang (r) određuje kapacitet adaptera, odnosno koliko on može da nauči. Počnite sa rangom od 8 do 32 za jednostavnije zadatke i povećajte ga za teže: prema ranije navedenoj LoRA studiji Bidermana i saradnika, pri instrukcijskom podešavanju 7B modela za programski kod bio je potreban rang 256 da bi se dostigli rezultati potpunog finog podešavanja, dok se rang 64 tome približio kod matematike.
- Maksimalna dužina sekvence je najduži ulaz koji će trening obraditi. Podesite je tako da obuhvati vaše najduže primere, najviše do veličine kontekstnog prozora modela, jer se sve što je duže skraćuje.
- Zagrevanje i raspored određuju kako stopa učenja raste i kako se menja tokom treninga. Kratko zagrevanje i kosinusno opadanje uobičajena su podrazumevana podešavanja. Međutim, studija Pareje i saradnika o malim modelima pokazala je da izostavljanje zagrevanja nije pogoršalo konačne rezultate.
Ove vrednosti shvatite kao polazne tačke za pretragu hiperparametara, a ne kao fiksna podešavanja.
Korak 5: Trenirajte model i pratite gubitak
Tokom treninga pratite krive gubitka na treningu i validaciji da biste videli da li sve funkcioniše.
Gubitak meri koliko se izlazi modela razlikuju od vaših primera i trebalo bi da ravnomerno opada kako trening odmiče. Gubitak na treningu odnosi se na podatke iz kojih model uči. Gubitak na validaciji meri se na izdvojenim primerima.
Ako gubitak na treningu i gubitak na validaciji opadaju zajedno, model uči da generalizuje. Ako gubitak na treningu nastavlja da opada, a gubitak na validaciji stagnira ili raste, model pamti skup za trening umesto da uči obrazac (preprilagođavanje, engl. overfitting).
Korak 6: Evaluirajte model, a zatim ga implementirajte
Nizak gubitak na treningu ne garantuje tačne izlaze, zato fino podešeni model procenite prema kriterijumima koje ste postavili u 1. koraku.
Kada model prođe evaluaciju, možete ga implementirati na dva načina:
- Pokrenite adapter na osnovnom modelu i učitajte oba tokom izvršavanja; tako adapter ostaje zamenljiv.
- Spojite adapter sa težinama osnovnog modela i dobićete jedan samostalan model koji je jednostavnije hostovati.
Koristite Perplexity da biste svom LLM-u omogućili pristup ažurnim informacijama
Fino podešavanje je pravi izbor kada želite da ponašanje modela prilagodite svojim potrebama.
Ako su vašem modelu potrebne aktuelne informacije, naročito one koje se brzo menjaju, potreban vam je RAG ili pouzdan alat za pretragu nezavisnog dobavljača.
Prilagođeni sistem za pronalaženje informacija najbolje funkcioniše za vlasničke skupove podataka, kao što su vaš interni wiki, istorija korisničke podrške, ugovori ili dokumentacija proizvoda.
Kada je znanje koje želite da koristite javno, nema potrebe da gradite sopstveni sloj za pronalaženje informacija. Perplexity je mašina za odgovore koja daje odgovore sa ugrađenim citatima na koje se može kliknuti, iz veb indeksa koji se stalno ažurira. Njegov Agent API pruža takve odgovore zasnovane na vebu i potkrepljene citatima u jednom pozivu, tako da vaša aplikacija može da se oslanja na aktuelne izvore.
Često postavljana pitanja o finom podešavanju LLM-ova
Da li LLM možete fino podesiti besplatno?
Da, mali otvoreni LLM možete fino podesiti besplatno. Na primer, besplatni nivo usluge Google Colab pruža dovoljno GPU resursa za pokretanje QLoRA metode na modelu od 3B do 8B parametara, što je sasvim dovoljno za uži zadatak. Plaćanje počinje kada vam zatreba više memorije, duži treninzi ili veći osnovni model nego što besplatni nivo može da podrži.
Da li vam je potreban sopstveni GPU ili fino podešavanje možete obaviti u oblaku?
Ne morate da posedujete GPU da biste fino podešavali LLM-ove. Upravljane usluge i dobavljači GPU resursa u oblaku iznajmljuju hardver po satu, pa je jedan iznajmljeni GPU dovoljan za QLoRA trening malog modela. Kupovina GPU-a isplati se samo ako često radite fino podešavanje ili sve podatke morate da čuvate na sopstvenim računarima.
Koliko traje fino podešavanje LLM-ova?
Kod malog LLM-a trening se može završiti za nekoliko minuta do nekoliko sati, u zavisnosti od veličine skupa podataka i hardvera. Oumi je, na primer, potpuno fino podesio model od 0,8B parametara za nešto više od sat vremena na svojoj hostovanoj platformi.
Kod većih modela ili desetina hiljada primera to može potrajati dan ili duže: LoRA treninzi kompanije Emburse na modelu od 7B parametara trajali su 8 sati za 5.000 primera i oko 30 sati za 50.000 primera na jednom GPU-u od 40 GB.
Da li fino podešeni model možete stalno ažurirati kako se vaši podaci menjaju?
Model možete ponovo fino podesiti na novim podacima, ali svaki krug troši računarske resurse i nosi rizik od katastrofalnog zaboravljanja. Za znanje koje se često menja RAG je obično bolje rešenje, jer ažurirate izvorne dokumente umesto da ponovo trenirate model.