Ako doladiť LLM [a kedy namiesto toho použiť RAG alebo promptovanie]
Tento sprievodca vysvetľuje, ako krok za krokom doladiť LLM, porovnáva plné doladenie s LoRA a QLoRA a ukazuje, kedy je promptovanie alebo RAG lepším spôsobom, ako zlepšiť výstupy modelu.

Doladenie (fine-tuning) veľkého jazykového modelu (LLM) znamená dodatočné trénovanie predtrénovaného LLM na malej dátovej sade zameranej na konkrétnu úlohu, aby poskytoval výstupy, ktoré samotnými promptmi nedosiahnete.
Doladenie zahŕňa zhromaždenie vzorových dvojíc vstupov a výstupov, ktoré ukazujú požadované správanie, spustenie trénovacích behov, ktoré posúvajú váhy modelu smerom k nim, a porovnanie výsledku s výstupmi pôvodného modelu. Vďaka parametricky efektívnym metódam, ako je LoRA, je doladenie natoľko lacné, že ho zvládnete na jednom GPU.
Ak nie ste s výstupmi LLM spokojní, najprv vylepšite svoje prompty a generovanie rozšírené o vyhľadávanie (RAG). Doladenie mení spôsob, akým sa LLM správa. Keď potrebujete, aby pracoval s aktuálnymi alebo proprietárnymi informáciami, prompty a RAG sú zvyčajne lepšou voľbou.
V tomto článku nájdete postup, ako doladiť LLM krok za krokom, hlavné metódy doladenia (LoRA a QLoRA) aj výzvy a chyby, ktoré môžu celý proces pokaziť.
Čo je doladenie LLM a čím sa líši od predtrénovania LLM
Predtrénovanie LLM buduje všeobecné jazykové schopnosti modelu od nuly na rozsiahlom korpuse, zatiaľ čo doladenie LLM upravuje predtrénovaný model na malej dátovej sade pre jednu konkrétnu úlohu.
Predtrénovanie LLM je fáza náročná na zdroje, z ktorej vzniká základný model. Model sa učí zo širokého textového korpusu, vďaka čomu si osvojí všeobecnú gramatiku, fakty a schopnosť uvažovať, no nie je špecializovaný na vašu úlohu.
Doladenie LLM pokračuje v trénovaní základného modelu na malej, starostlivo zostavenej dátovej sade, aby model generoval požadované výstupy pre konkrétnu úlohu alebo prípad použitia. Ide napríklad o konzistentný formát, hlas či tón značky, vzory špecifické pre danú oblasť alebo spoľahlivé volania nástrojov a funkcií.
Kedy doladiť LLM a kedy namiesto toho použiť prompty alebo RAG
Ak chcete zlepšiť výkon LLM, postupujte po stupňoch: prompty -> RAG -> doladenie.
Vylepšite svoje prompty podrobnejšími pokynmi a pomocou RAG poskytnite modelu aktuálne informácie. K doladeniu siahnite až vtedy, keď vylepšenia promptov a vyhľadávania neprinesú výsledok.
Prístup | Čo mení | Kedy ho použiť | Hlavné obmedzenie |
Prompt engineering | Požiadavku, ktorú odosielate | Správanie je takmer správne a záleží vám na rýchlosti a možnosti vrátiť zmeny | Obmedzené existujúcimi schopnosťami základného modelu |
RAG | To, čo model vidí počas inferencie | Fakty sa často menia a LLM potrebuje prístup k aktuálnym informáciám | Zvyšuje latenciu kvôli vyhľadávaniu a vyžaduje ďalšiu infraštruktúru; nemení správanie |
Doladenie LLM | Váhy modelu (interné parametre modelu) | Potrebujete konzistentné správanie, formát alebo tón vo veľkom rozsahu, prípadne kratšie prompty pri každom volaní | Počiatočné náklady, znalosti zapečené vo váhach zastarávajú, riziko zabudnutia správania získaného pri predtrénovaní |
Kedy lepšie prompty prekonajú doladenie a kedy nestačia
Prompty sú najrýchlejšou a najlacnejšou pákou. V mnohých prípadoch dosiahnu požadované zmeny správania presnejšie a podrobnejšie prompty.
Dlhšie prompty však prácu spomaľujú a predražujú a nedokážu prekonať existujúce obmedzenia modelu.
Znaky, že ste s promptmi možno narazili na hranice:
- Nové okrajové prípady neustále narúšajú výstup: Model napríklad vráti súvislý text, keď potrebujete JSON, alebo sa odkloní od požadovaného tónu, a vy prompt pri každom novom prípade záplatujete.
- Systémový prompt neustále narastá: Prompt má stovky či tisíce riadkov a ťažko sa spravuje.
- Platíte za to pri každom volaní: Prompt sa pri každej požiadavke znova odosiela a spracúva, takže rastú náklady na tokeny aj latencia.
- Zmeny prestávajú mať efekt: Nové pokyny výstupy nezlepšujú.
Aj vtedy najprv vyskúšajte lacnejšie úpravy na úrovni promptu. Použite príklady few-shot, ktoré modelu ukážu vzor (dvojice vstupov a výstupov), reťazenie promptov na rozdelenie náročných úloh na menšie kroky alebo volanie funkcií, pomocou ktorého presuniete presné vyhľadávanie údajov či výpočty mimo modelu.
Kedy dáva RAG väčší zmysel ako doladenie modelu
RAG mení to, čo LLM vie, kým doladenie LLM mení to, ako sa správa. Ak ide o medzeru vo vedomostiach, najmä vo vedomostiach, ktoré sa často menia alebo sú uložené vo vašich vlastných dokumentoch, riešením je RAG. Ak ide o medzeru v správaní, model dolaďte.
Doladenie síce ovplyvňuje aj to, čo model vie, no všetky fakty, ktoré si osvojí, zamrznú v čase trénovania a v rýchlo sa vyvíjajúcich oblastiach rýchlo strácajú aktuálnosť. Informácie sa navyše zapečú do váh modelu, ktoré neuchovávajú žiadny záznam o ich zdroji.
Aktualizácia zdrojových dokumentov, ktoré používa vyhľadávacia vrstva, je rýchlejšia a lacnejšia a táto vrstva dokáže citovať presné zdroje, z ktorých čerpala. Preto je lepšou voľbou, keď potrebujete obhájiteľné a aktuálne informácie.
Nevýhoda RAG? Je to ďalšia vrstva, ktorú treba vybudovať a udržiavať, a zvyšuje latenciu.
V praxi budete často potrebovať oboje. Produkčné systémy kombinujú doladené modely s RAG – jedno slúži na konzistentné správanie, druhé na aktuálne fakty.
Časté úskalia, riziká a výzvy doladenia
Aj keď je doladenie tým správnym nástrojom, prináša náklady a riziká:
- Náklady a čas: Zostavenie čistých, reprezentatívnych trénovacích dát aj výpočtový výkon na trénovanie sú drahé.
- Katastrofické zabúdanie: Model trénovaný na úzkej dátovej sade môže stratiť všeobecné schopnosti a osvojiť si nové spôsoby zlyhania, čo vedie k chybám, ktorých sa základný model nedopúšťal.
- Preučenie: Pri príliš malom množstve dát alebo príliš opakujúcich sa dátach si model namiesto učenia sa vzorov zapamätá vaše trénovacie príklady, takže na trénovacích vzorkách funguje dobre, no na reálnych vstupoch slabo.
- Zastaranie znalostí: Znalosti zapečené vo váhach rýchlo zastarávajú, takže model musíte pretrénovať na nových dátach.
- Zastaranie modelu: Keď vyjde silnejší model, často prekoná váš doladený model hneď po vybalení a celú prácu musíte zopakovať.
- Výzvy pri hodnotení a reprodukovateľnosti: Dokázať, že doladený model prekonáva základný model, je ťažké. Dva trénovacie behy na GPU s rovnakými nastaveniami môžu navyše vytvoriť mierne odlišné modely.
- Správa dát: Trénovanie na proprietárnych alebo citlivých dátach otvára otázky ochrany súkromia a licencovania; model môže neskôr odhaliť útržky dát, na ktorých bol trénovaný.
Hlavné metódy doladenia
Hlavné typy doladenia LLM sa líšia tým, akú časť modelu menia: úplné doladenie pretrénuje celý model, zatiaľ čo metódy parametricky efektívneho doladenia (PEFT), ako LoRA a QLoRA, aktualizujú len časť váh. Metódy PEFT potrebujú len zlomok pamäte oproti úplnému doladeniu a pri správnych nastaveniach môžu dosiahnuť porovnateľné výsledky.
Úplné doladenie aktualizuje každú váhu modelu. Je najdrahšie a nesie najvyššie riziko katastrofického zabúdania. Vyhraďte si ho pre veľké zmeny správania, keď máte dostatok dát a výpočtového výkonu.
Alternatívou je parametricky efektívne doladenie, čiže PEFT. Ide o súhrnný názov pre metódy, ktoré zmrazia väčšinu modelu a trénujú len malú množinu parametrov. Využíva oveľa menej pamäte a je menej náchylné na zabúdanie, pretože základný model zostáva nedotknutý.
Pri nízkych hodnostiach (rank) sa PEFT naučí menej ako úplné doladenie, no zvýšenie hodnosti a vyladenie rýchlosti učenia odstráni väčšinu rozdielu pri úlohách inštrukčného ladenia (instruction tuning).
Medzi metódy PEFT patria:
- LoRA (Low-Rank Adaptation): Zvyčajný východiskový bod. Zmrazí pôvodné váhy a trénuje malú množinu pridaných parametrov adaptéra, často menej ako 1 % celkového počtu, takže beží na jednom spotrebiteľskom GPU.
- QLoRA (Quantized Low-Rank Adaptation): Pred použitím LoRA skomprimuje základný model na 4-bitovú presnosť, vďaka čomu môžete doladiť veľký model na jednom GPU.
Metóda | Čo aktualizuje | Hardvérové nároky v praxi | Kedy ho použiť |
Úplné doladenie | Každú váhu v modeli | Uzol s viacerými GPU pre modely triedy 7B, pre väčšie modely oveľa viac | Potrebujete hlbokú zmenu správania a máte na to dáta aj výpočtový výkon |
LoRA (PEFT) | Malú množinu pridaných váh adaptéra | Jedno spotrebiteľské GPU | Váš predvolený východiskový bod |
QLoRA (PEFT) | Adaptéry LoRA na 4-bitovo skomprimovanom základnom modeli | Veľmi veľké modely na jednom GPU | Máte málo pamäte, ale chcete veľký základný model |
Okrem toho používame metódy inštrukčného ladenia a ladenia podľa preferencií – od RLHF (Reinforcement Learning from Human Feedback, posilňované učenie zo spätnej väzby od ľudí) až po ľahšie alternatívy, ako sú Direct Preference Optimization (DPO) a Odds Ratio Preference Optimization (ORPO) – na formovanie toho, ako model dodržiava pokyny a zodpovedá ľudským preferenciám.
Ako doladiť LLM krok za krokom
Keď ste sa rozhodli, že doladenie LLM je správna voľba, tu je pracovný postup.
Krok 1: Definujte úlohu a spôsob merania úspechu
Rozhodnite sa, aké správanie od LLM chcete a ako zistíte, že ste ho dosiahli.
Pomenujte konkrétnu úlohu, ktorú má doladený model plniť, napríklad klasifikáciu tiketov podpory, zhŕňanie zmlúv v pevne danom formáte alebo generovanie kódu v štýle vašej firmy.
Potom definujte, čo znamená úspech. Medzi bežné možnosti patria:
- Platnosť výstupu: Dá sa napríklad výsledok spracovať ako platný JSON alebo zodpovedá štruktúre Markdown, ktorú potrebujete?
- Automatizované skóre: Použite metriky ako BLEU alebo ROUGE, ktoré porovnávajú vygenerovaný text s referenčnými odpoveďami, alebo presnosť plnenia úlohy na označenej sade dát.
- Hodnotenie ľuďmi: Bodovacia alebo binárna (vyhovel/nevyhovel) hodnotiaca schéma pre vlastnosti, ktoré skript hodnotí zle, napríklad tón alebo užitočnosť.
- Spoľahlivosť pri náročných vstupoch: Zvláda model neobvyklé vstupy, na ktorých základný model zlyhával?
Krok 2: Pripravte si dátovú sadu
Kvalita dát rozhoduje o úspechu doladenia, preto venujte úsilie zostaveniu správnej dátovej sady na doladenie.
Naformátujte dáta ako dvojice inštrukcií a odpovedí vo formáte JSONL, kde každý riadok obsahuje vstup (spolu s prípadným kontextom) a presný výstup, ktorý chcete dostať.
Pozrite si napríklad verejné dátové sady, ako je všeobecná inštrukčná sada Alpaca-cleaned alebo Dolly od spoločnosti Databricks, prípadne úlohovo špecifická sada banking77, ktorá obsahuje viac ako 13 000 skutočných dopytov na zákaznícku podporu označených podľa 77 zámerov.
Pri cielenej úlohe dokáže správanie zmeniť niekoľko stoviek až niekoľko tisíc čistých, rôznorodých príkladov – pokiaľ verne odrážajú skutočné produkčné vstupy vrátane okrajových prípadov a majú konzistentný formát.
Ešte nemáte dvojice vstupov a výstupov? Zostavte sadu z dát, ktoré už máte, napríklad z tiketov podpory a ich najlepších odpovedí alebo z dokumentov a ich zhrnutí.
Ak máte len výstupy, použite silnejší model na vygenerovanie vierohodného vstupu ku každému z nich, alebo ručne napíšte malú počiatočnú sadu a rozšírte ju pomocou väčšieho modelu „učiteľa“; potom si ponechajte najlepšie dvojice.
Nakoniec rozdeľte dáta na trénovaciu, validačnú a testovaciu sadu, aby ste mohli merať výsledky na príkladoch, ktoré model ešte nevidel.
Krok 3: Vyberte základný model a metódu
Začnite s malým open-source modelom s 3 až 7 miliardami parametrov a s metódou parametricky efektívneho doladenia, ako je LoRA alebo QLoRA.
Otvorené rodiny modelov ako Llama, Mistral a Qwen vám poskytnú silný základ, ktorý môžete hostovať sami, a metódy PEFT udržia nároky na hardvér nízke: QLoRA kvantizuje základný model na 4 bity, takže na doladenie modelu 7B stačí spotrebiteľská grafická karta so 16–24 GB. Úplné doladenie toho istého modelu vyžaduje mnohonásobne viac pamäte.
Krok 4: Nastavte trénovacie hyperparametre
Tu sú kľúčové parametre doladenia LLM a odporúčané počiatočné rozsahy:
- Rýchlosť učenia určuje, aká veľká je každá aktualizácia váh. Štúdia Bidermana a kol. z roku 2024 zistila, že najlepšie hodnoty pre LoRA boli zhruba desaťkrát vyššie ako pri úplnom doladení, typicky 5e-5 až 5e-4 oproti 1e-5 až 5e-5. Štúdia odporúča prehľadať rozsah od 1e-5 do 5e-4 a použiť najvyššiu hodnotu, pri ktorej trénovanie prebieha stabilne.
- Veľkosť dávky je počet príkladov, z ktorých sa model učí pred každou aktualizáciou váh. Na jednom GPU použite malú dávku na zariadenie s veľkosťou 1 až 8 a akumuláciu gradientov, aby ste dosiahli efektívnu veľkosť dávky približne 16 až 64.
- Počet epoch určuje, koľkokrát model prejde celou množinou dát. Pri trénovaní modelu na konkrétne úlohy je dobrým orientačným pravidlom 1 až 3 epochy, no behy s LoRA ich často potrebujú viac.
- Rank LoRA (r) určuje kapacitu adaptéra, teda koľko sa dokáže naučiť. Pri jednoduchších úlohách začnite na hodnote 8 až 32 a pri náročnejších ju zvýšte: v štúdii o LoRA od Bidermana a kol., ktorú sme citovali vyššie, potreboval 7B model pri inštrukčnom ladení na kóde rank 256, aby dosiahol úroveň plného doladenia, zatiaľ čo pri matematike sa k nej rank 64 takmer priblížil.
- Maximálna dĺžka sekvencie je najdlhší vstup, ktorý beh spracuje. Nastavte ju tak, aby pokryla vaše najdlhšie príklady, najviac však po veľkosť kontextového okna modelu, pretože čokoľvek dlhšie sa skráti.
- Zahrievanie a plán učenia určujú, ako sa rýchlosť učenia počas behu postupne zvyšuje a mení. Zvyčajne sa predvolene používa krátke zahrievanie a kosínusový pokles. Štúdia malých modelov od Pareju a kol. však zistila, že vynechanie zahrievania konečné skóre nezhoršilo.
Považujte tieto hodnoty za východiskové body na systematické prehľadávanie hyperparametrov, nie za pevné nastavenia.
Krok 5: Trénujte model a sledujte stratu
Počas trénovania sledujte krivky trénovacej a validačnej straty, aby ste zistili, či trénovanie funguje.
Strata meria, nakoľko sa výstupy modelu líšia od vašich príkladov, a s postupom behu by mala plynulo klesať. Trénovacia strata sa týka dát, z ktorých sa model učí. Validačná strata sa počíta na odložených príkladoch.
Ak trénovacia a validačná strata klesajú spoločne, model sa učí zovšeobecňovať. Ak trénovacia strata ďalej klesá, ale validačná strata sa ustáli alebo začne stúpať, model si namiesto osvojenia vzoru zapamätáva trénovaciu množinu (preučenie).
Krok 6: Vyhodnoťte model a potom ho nasaďte
Nízka trénovacia strata nezaručuje správne výstupy, preto doladený model posúďte podľa kritérií, ktoré ste stanovili v kroku 1.
Keď model obstojí, máte dve možnosti nasadenia:
- Prevádzkujte adaptér nad základným modelom a oba načítavajte za behu; adaptér tak zostane vymeniteľný.
- Zlúčte adaptér so základnými váhami a získajte jeden samostatný model, ktorý sa jednoduchšie hostuje.
Využite Perplexity, aby mal váš LLM prístup k aktuálnym informáciám
Doladenie je správna voľba, keď chcete prispôsobiť správanie modelu svojim potrebám.
Ak váš model potrebuje aktuálne informácie, najmä také, ktoré sa rýchlo menia, potrebujete RAG alebo spoľahlivý vyhľadávací nástroj tretej strany.
Vlastný systém na vyhľadávanie informácií funguje najlepšie pri proprietárnych množinách dát, napríklad pri internej wiki, histórii zákazníckej podpory, zmluvách či produktovej dokumentácii.
Ak sú znalosti, ktoré chcete využiť, verejné, nie je potrebné budovať vlastnú vyhľadávaciu vrstvu. Perplexity je vyhľadávač odpovedí, ktorý vracia odpovede s klikateľnými citáciami priamo v texte zo živého webového indexu. Jeho Agent API poskytuje tieto odpovede podložené webovými zdrojmi a doplnené citáciami v jedinom volaní, takže vaša aplikácia môže čerpať z aktuálnych zdrojov.
Často kladené otázky o doladení LLM
Dá sa LLM doladiť zadarmo?
Áno, malý otvorený LLM môžete doladiť zadarmo. Napríklad bezplatná úroveň služby Google Colab vám poskytne dostatok výkonu GPU na spustenie QLoRA na modeli s 3B až 8B parametrami, čo na úzko zameranú úlohu bohato stačí. Platiť začnete, keď budete potrebovať viac pamäte, dlhšie behy alebo väčší základný model, než aký zvládne bezplatná úroveň.
Potrebujete vlastný GPU, alebo môžete model doladiť v cloude?
Na doladenie LLM nemusíte vlastniť GPU. Spravované služby a poskytovatelia cloudových GPU prenajímajú hardvér na hodiny, takže na beh QLoRA s malým modelom stačí jeden prenajatý GPU. Kúpa GPU sa oplatí, iba ak dolaďujete často alebo musíte mať všetky svoje dáta na vlastných počítačoch.
Ako dlho trvá doladenie LLM?
Pri malom LLM môže beh trvať od niekoľkých minút až po niekoľko hodín v závislosti od veľkosti množiny dát a hardvéru. Spoločnosť Oumi napríklad plne doladila model s 0,8B parametrami za niečo vyše hodiny na svojej hostovanej platforme.
Väčšie modely alebo desaťtisíce príkladov to predĺžia na deň či viac: behy LoRA spoločnosti Emburse na 7B modeli trvali na jednom GPU so 40 GB pamäte 8 hodín pre 5 000 príkladov a približne 30 hodín pre 50 000 príkladov.
Dá sa doladený model priebežne aktualizovať, keď sa vaše dáta menia?
Model môžete znova doladiť na nových dátach, no každé kolo stojí výpočtový výkon a hrozí pri ňom katastrofické zabúdanie. Pri znalostiach, ktoré sa často menia, je zvyčajne lepším riešením RAG, pretože namiesto opätovného trénovania aktualizujete zdrojové dokumenty.