RAG in Fine-tuning modela
RAG ureja, kaj mora model vedeti, prilagajanje modela pa, kako se mora model obnašati, in obravnavanje tega kot izključne izbire je najbolj zanesljiv način, da mesece zapravljate za izdelavo napačne stvari na začetku. Začnite z iskanjem, saj je to skoraj vedno hitrejša pot do nečesa resničnega, dodajte prilagajanje modela le tam, kjer lahko jasno navedete specifičen, trajen problem obnašanja, ki ga boljše usmerjanje in boljše iskanje nista odpravila, in pričakujte – že na začetku – da je pošten odgovor za resen proizvodni sistem verjetno oboje.
vir: https://machinelearningmastery.com/rag-vs-fine-tuning-for-domain-adaptation-when-to-use-which/
Kaj RAG pravzaprav je (in kaj ni)
Retrieval-augmented generation (generiranje s pomočjo iskanja) ne spreminja modela prav nič. Teže modela se nikoli ne spremenijo; spremenjeno je tisto, kar model vidi v svojem kontekstnem oknu v trenutku, ko mu postavimo vprašanje. Korak iskanja pregleda podatkovno bazo, poišče najbolj relevantne dokumente in jih predloži modelu skupaj z uporabnikovim vprašanjem, tako da model odgovarja z informacijami iz teh dokumentov pred seboj namesto zgolj po spominu.
Ta mehanizem je tisti, ki RAG dejansko odlikuje pri točno eni vrsti problema: informacije, ki so velike, ki se spreminjajo, ali oboje. Kar RAG ne popravi, je osnovno vedenje modela. Če je ton modela nekonsistenten, če ne sledi dosledno strogi obliki izhoda, če napačno uporablja žargon vaše industrije mu več dokumentov med izvajanjem ne bo pomagalo, saj problem nikoli ni bilo pomanjkanje informacij.
Kaj fine-tuning dejansko je (in kaj ni)
Fine-tuning počne ravno nasprotno: spremeni sam model, tako da trenira uteži na resničnih primerih vhodno/izhodnega vedenja, ki ga želite, dokler to vedenje ne postane privzeto za model, brez potrebe po dodatkih ob inferenčnem času, saj je vzorec zdaj vgrajen. LoRA in QLoRA sta standardni pristop pri večini projektov, kjer se trenira majhen adapter — pogosto manj kot 1 % celotnih parametrov osnovnega modela — namesto celotnega modela, kar zmanjša stroške fine-tuninga na nekaj sto dolarjev in nekaj ur, namesto celotnega projekta predelave.
Tukaj je pomembna točka, ki jo je vredno jasno poudariti, saj gre za najpogostejšo zmoto v celotni tej razpravi, na katero se več neodvisnih virov strinja z enako formulacijo: fine-tuning zanesljivo ne dodaja dejanskih znanj. Model, fine-tunan na kopici medicinske literature, ne “pozna” dejstev iz te literature na način, kot jo pozna sistem za iskanje informacij — prilagodi stil, strukturo in prepoznavanje vzorcev, vendar je zanesljivost pri priklicu dejstev iz trening podatkov vprašljiva, zlasti pri podrobnih dejstvih. Fine-tuning je orodje za vedenje, ne pa orodje za znanje. Ta razlika je ključna, saj jo prav dokažeta spodnja dva primera, ne le trdita.
Kdaj uporabiti kaj
- Ali se informacije, ki jih vaš model potrebuje, redno spreminjajo ali so prevelike, da bi bile vključene v poziv — podatki o izdelkih, trenutne politike, naraščajoči nabor dokumentov? Uporabite RAG.
- Ali potrebujete, da je vsak odgovor sledljiv do določenega vira zaradi skladnosti ali revizijskih razlogov? Uporabite RAG, saj je mogoče vsak trditev v odgovoru RAG povezati s specifičnim pridobljenim delčkom, kar številni regulativni okviri o razložljivih izhodih AI obravnavajo kot resnično, pomembno prednost pred izhodi modeli s fino nastavitvijo, ki zahtevajo ločene evalvacijske dokaze za prikaz iste stvari.
- Ali še nimate označenih učnih primerov ali potrebujete nekaj, kar teče ta teden namesto naslednji mesec? Uporabite RAG — skoraj vedno je hitrejša pot do delujoče prve različice, ne glede na to, kaj boste kasneje dodali.
- Ali mora model dosledno slediti tonu, strukturi ali besedišču, kar pozivanje na velikem obsegu ne uspeva zagotoviti? Fino nastavite.
- Je vaš čas zakasnitve dovolj omejen, da je dodatni korak pridobivanja informacij pred vsakim odgovorom resničen strošek? Fino nastavite, saj fino nastavljeni model odgovarja neposredno brez vključenega koraka pridobivanja.
- Je vaš volumen poizvedb dovolj velik, da bi bil manjši, fino nastavljen odprtokodni model dramatično cenejši na poizvedbo kot klic mejnika API? Fino nastavite — prihranek na poizvedbo lahko hitreje povrne stroške priprave podatkov, kot večina ekip pričakuje, ko je volumen resnično velik.