Preskoči na sadržaj

Uvidi

RAG ili fine-tuning: šta firmama treba

RAG, fine-tuning, dugi kontekst sa prompt cachingom ili strukturirani izlazi? Razumljiv vodič za izbor pravog pristupa, uz kontrolnu listu za odlučivanje.

Inženjerski tim sigmacode.io9 min čitanja

Na ovoj stranici (8)
  1. Četiri alata u kutiji
  2. Kada koji pristup odgovara
  3. Usporedba
  4. Praktična lista za odlučivanje
  5. Česte zamke
  6. Prvo evaluirajte, zatim optimizirajte
  7. Kako naše vlastite demonstracije prikazuju ove obrasce
  8. Ukratko

Gotovo svaki AI projekat o kojem razgovaramo s klijentima počinje istim pitanjem: „Trebamo li dodatno istrenirati (fine-tuning) model na našim podacima?" Ponekad je odgovor da. Češće je stvarna potreba nešto drugo: asistent koji poznaje vaše aktuelne dokumente, navodi izvore i može se ažurirati u utorak poslijepodne bez ikakvog treniranja. Ovaj članak jednostavnim jezikom objašnjava glavne opcije, kada koja odgovara i kako donijeti odluku bez trošenja mjeseci na pogrešan pristup.

Četiri alata u kutiji#

Kada ljudi kažu „naučimo model o našem poslovanju", obično misle na jednu od četiri različite tehnike. One rješavaju različite probleme i mogu se kombinovati.

Generisanje potpomognuto pretragom (RAG)#

RAG ne mijenja model. Umjesto toga, kada stigne pitanje, sistem prvo pretražuje vaš vlastiti sadržaj, na primjer priručnike, ugovore, tikete ili katalog proizvoda, i modelu uz pitanje predaje najrelevantnije odlomke. Model zatim odgovara na osnovu tih odlomaka.

Tri su pojma ključna:

  • Pretraga (retrieval): pronalaženje pravih odlomaka. Obično je to kombinacija semantičke pretrage preko embeddinga i klasične pretrage po ključnim riječima, često uz dodatni korak ponovnog rangiranja.
  • Utemeljenje (grounding): uputa modelu da odgovara iz dostavljenog materijala i da to jasno kaže kada materijal ne sadrži odgovor.
  • Citati: upućivanje na tačan dokument, stranicu ili odlomak iz kojeg odgovor potiče, kako bi ga čovjek mogao provjeriti.

RAG dolazi do izražaja kada se znanje često mijenja, kada je korpus velik i kada ljudi trebaju provjeravati odgovore.

Fine-tuning#

Fine-tuning nastavlja trenirati model na vašim vlastitim primjerima, tako da mu se promijeni ponašanje. Dobar je za učenje kako odgovarati: dosljedan ton, strogi format izlaza, klasifikacijska šema specifična za domenu ili uzak zadatak koji se izvršava hiljadama puta dnevno. Loš je način da se nauči šta je trenutno istina. Činjenice naučene fine-tuningom teško je ažurirati, teško ih je povezati s izvorom i mogu se pomiješati ili pogrešno zapamtiti.

Fine-tuning također omogućuje prebacivanje uskog zadatka na manji, jeftiniji i brži model, što pri velikom volumenu može mnogo značiti.

Dugi kontekst sa keširanjem upita (prompt caching)#

Savremeni modeli kompanija Anthropic i OpenAI te nekoliko porodica modela otvorenog koda prihvataju vrlo duge ulaze. Ako je vaša baza znanja umjerene veličine, na primjer priručnik za proizvod, skup pravila ili zbirka čestih pitanja, često je možete u cijelosti staviti direktno u upit. Bez indeksa, bez pipelinea za pretragu, bez odluka o dijeljenju na dijelove.

Očigledan je prigovor trošak i latencija: slanje istog velikog dokumenta uz svaki zahtjev je rasipno. Tu pomaže prompt caching. Pružatelji usluga mogu keširati stabilan početni dio upita, pa ponovljeni zahtjevi koriste već obrađeni sadržaj te se efikasnije naplaćuju i poslužuju. Za stabilan, ograničen skup znanja dugi kontekst sa keširanjem često je najjednostavnije rješenje koje funkcionira.

Strukturirani izlazi#

Mnogi „AI" projekti zapravo su projekti ekstrakcije: pročitati račun, životopis, ugovor ili e-mail i dobiti uredna polja. Ključna je mogućnost ovdje strukturirani izlaz (structured outputs), kod kojeg je model ograničen na vraćanje podataka koji odgovaraju šemi koju vi definišete, na primjer JSON s određenim poljima i tipovima. Tu uopće nije riječ o znanju, nego o pouzdanosti formata, a u zadacima ekstrakcije to obično uklanja potrebu za fine-tuningom.

Kada koji pristup odgovara#

Koristan način razmišljanja: odvojite znanje od ponašanja.

  • Svježe ili promjenjivo znanje te odgovori koje ljudi moraju provjeriti: koristite RAG ili dugi kontekst ako je materijal dovoljno malen. Oba pristupa omogućuju ažuriranje znanja ažuriranjem dokumenata i oba podržavaju citate.
  • Stabilno, ograničeno znanje koje stane u kontekstni prozor: počnite s dugim kontekstom i keširanjem upita. Pređite na RAG kada materijal preraste prozor ili kada vam je potrebna precizna kontrola pristupa po dokumentu.
  • Dosljedan stil, ton ili format kroz mnogo izlaza: prvo pokušajte s jasnim uputama i nekoliko dobrih primjera u upitu. Ako to pri vašem volumenu nije dovoljno, fine-tuning je legitimna opcija.
  • Uska klasifikacija ili usmjeravanje u velikom obimu: fine-tuning manjeg modela, ili jednostavno manji opći model s dobro osmišljenim upitom, često je najisplativiji put.
  • Ekstrakcija polja iz dokumenata: strukturirani izlazi, po potrebi u kombinaciji s dokumentima kao ulazom i citatima, kako bi se svaka izdvojena vrijednost mogla provjeriti.

Ti se pristupi međusobno ne isključuju. Zreo sistem može koristiti RAG za znanje, strukturirane izlaze za format odgovora i mali fine-tunirani model za usmjeravanje dolaznih zahtjeva.

Usporedba#

KriterijRAGDugi kontekst + keširanjeFine-tuningStrukturirani izlazi
Svježina znanjaVisoka: ažurirajte indeksVisoka: ažurirajte dokumenteNiska: potrebno ponovno treniranjeNije tehnika za znanje
Trošak ažuriranjaNizak: ponovno indeksiranje promijenjenih dokumenataVrlo nizak: uredite izvorVisok: novi skup podataka i treniranjeVrlo nizak: uredite šemu
Sljedivost i citatiJaka, ako je ugrađenaJaka, uz citate iz dokumenataSlaba: nema izvora na koji se može uputitiDobra u kombinaciji s citatima
Zahtjevi za podacimaVaši postojeći dokumentiVaši postojeći dokumentiMnogo pažljivo odabranih, kvalitetnih primjeraŠema i ogledni dokumenti
Vrijeme do prve verzijeOd nekoliko dana do nekoliko sedmicaOd nekoliko sati do nekoliko danaSedmice, uključujući pripremu podatakaOd nekoliko sati do nekoliko dana
Glavni riziciLoša pretraga, zastarjeli indeks, prompt injection kroz dokumenteOgraničenja konteksta, trošak bez keširanjaZastarjele činjenice, pretjerana prilagodba, skrivena pristranost u podacima za treniranjePreruta ili prelabava šema

Praktična lista za odlučivanje#

Prije odabira arhitekture iskreno odgovorite na ova pitanja:

  1. Koji je tačno zadatak? Odgovaranje na pitanja, pisanje teksta, klasifikacija ili ekstrakcija? Zapišite pet stvarnih primjera ulaza i idealnog izlaza.
  2. Koliko se često mijenja osnovno znanje? Dnevne ili sedmične promjene snažno govore protiv fine-tuninga.
  3. Trebaju li korisnici provjeravati odgovore? U pravnom, finansijskom, zdravstvenom kontekstu, u usklađenosti s propisima ili korisničkoj podršci citati su obično neizostavni.
  4. Koliko je velika baza znanja? Ako lako stane u kontekstni prozor, prvo isprobajte dugi kontekst sa keširanjem.
  5. Ko smije vidjeti šta? Ako različiti korisnici imaju pristup različitim dokumentima, potrebna vam je pretraga s filtriranjem prema ovlastima, a ne jedan zajednički upit ili model istreniran na svemu.
  6. Kakav volumen i latenciju očekujete? Velik volumen na uskom zadatku upravo je područje u kojem se manji ili fine-tunirani modeli isplate.
  7. Imate li označene primjere? Fine-tuning bez velikog skupa dobrih primjera rijetko nadmašuje dobro napisan upit.
  8. Kako ćete mjeriti uspjeh? Ako na to ne možete odgovoriti, zastanite i prvo izradite skup za evaluaciju.

Ako većina odgovora upućuje na „promjenjivo znanje, potrebni citati, umjeren volumen", trebate RAG ili dugi kontekst. Ako upućuju na „stabilan zadatak, strogi format, vrlo velik volumen", razmotrite fine-tuning ili manji model.

Česte zamke#

Ovo su problemi na koje najčešće nailazimo kada pregledamo AI sisteme koji „gotovo rade".

  • Loše dijeljenje na dijelove (chunking). Dijeljenje dokumenata na proizvoljne dijelove fiksne veličine presijeca tabele, odvaja naslove od sadržaja i gubi kontekst. Dijelite prema strukturi dokumenta i zadržite korisne metapodatke poput naslova, odjeljka i datuma.
  • Nema evaluacija. Bez testnog skupa svaka je promjena nagađanje. Timovi mijenjaju upite, zamjenjuju modele i veličine dijelova, a da ne znaju je li se stanje poboljšalo ili pogoršalo.
  • Zastarjeli indeksi. Izvorni dokumenti su ažurirani, indeks nije. Asistent samouvjereno citira prošlogodišnja pravila. Ponovno indeksiranje mora biti dio procesa upravljanja sadržajem, a ne ručni naknadni korak.
  • Halucinacije bez citata. Ako sistem ne pokazuje odakle odgovor potiče, korisnici ne mogu razlikovati utemeljen odgovor od izmišljenog. Zahtijevajte citate i naučite model da kaže „Ne znam" kada izvori šute.
  • Privatnost i GDPR. Lični podaci u dokumentima, upitima i logovima i dalje su lični podaci. Znajte koji ih pružatelj usluga obrađuje, u kojoj regiji, prema kojem ugovoru o obradi podataka i koliko se dugo logovi čuvaju. Fine-tuning na ličnim podacima zahtijeva dodatan oprez jer ih je kasnije teško ukloniti.
  • Prompt injection iz dokumenata. Dobavljeni sadržaj je nepouzdan ulaz. Dokument može sadržavati tekst koji pokušava davati upute modelu, na primjer da zanemari svoja pravila ili otkrije druge podatke. Dobavljeni tekst tretirajte kao podatke, ograničite šta model smije raditi s alatima i nikada ne dopustite da sadržaj dokumenta dodjeljuje ovlasti.

Prvo evaluirajte, zatim optimizirajte#

Najvrjedniji korak u svakom AI projektu ujedno je i najmanje glamurozan: izradite skup za evaluaciju prije nego što odaberete arhitekturu.

Dobar je početak jednostavno nekoliko desetaka do nekoliko stotina stvarnih pitanja ili ulaza, svaki s očekivanim odgovorom ili dokumentima koje treba citirati. Zatim mjerite:

  • Kvalitetu pretrage: je li sistem pronašao prave odlomke?
  • Kvalitetu odgovora: je li odgovor tačan, potpun i utemeljen na izvorima?
  • Tačnost citata: podupiru li citirani odlomci doista tvrdnju?
  • Ponašanje pri odbijanju: kaže li sistem „Ne znam" kada bi trebao?
  • Usklađenost s formatom: odgovara li kod ekstrakcije svaki izlaz šemi?

Kada to imate, usporedbe postaju činjenične. Možete testirati dugi kontekst protiv RAG-a, jedan model protiv drugoga ili fine-tunirani model protiv modela vođenog upitom, i to na vlastitim podacima umjesto na generičkim mjerilima. Često ćete otkriti da je najjeftinije rješenje bolja pretraga ili jasniji upit, a ne veći model ili novo treniranje.

Automatsko ocjenjivanje pomoću modela može ubrzati taj proces, ali ga, posebno na početku, povremeno provjerite ljudskim pregledom.

Kako naše vlastite demonstracije prikazuju ove obrasce#

Nastojimo primjenjivati ono što preporučujemo, a dvije demonstracije na ovoj stranici prikazuju te obrasce u praksi.

sigmacode Assistant odgovara na pitanja o našim uslugama i načinu rada. Njegova je baza znanja mala i namjerno zamrznuta, pa umjesto pipelinea za pretragu koristi dugi kontekst sa keširanjem upita: cijela baza znanja nalazi se u keširanom početnom dijelu upita, a model ima uputu da odgovara isključivo iz nje. Za ograničen skup znanja to je jednostavnije izgraditi i lakše održavati tačnim od vektorskog indeksa.

Demonstracija Document Q&A prikazuje drugu stranu. Priložite dokument, postavite pitanja, a svaki odgovor dolazi s citatima koji upućuju na odlomke na kojima se zasniva. To je temeljno obećanje utemeljene umjetne inteligencije: svaka se tvrdnja može provjeriti u svom izvoru.

Nijedna od tih demonstracija nije zahtijevala fine-tuning. To je tipično. Za većinu poslovnih problema sa znanjem utemeljenje i dobra evaluacija važniji su od prilagođenog treniranja.

Ukratko#

  • Koristite RAG kada je znanje opsežno, često se mijenja, zahtijeva kontrolu pristupa ili se mora citirati.
  • Koristite dugi kontekst sa keširanjem upita kada je znanje stabilno i stane u kontekstni prozor.
  • Koristite fine-tuning ili manje modele za dosljedno ponašanje ili uske zadatke velikog volumena, a ne za činjenice.
  • Koristite strukturirane izlaze za ekstrakciju i svaki izlaz koji sistem mora mašinski obraditi.
  • Prvo evaluirajte, a zatim optimizirajte ono na što vas upućuju rezultati.

Ako razmatrate ove opcije za stvaran projekat, naš tim za AI i automatizaciju, koji vodi tech lead s više od 20 godina iskustva, može vam pomoći definisati opseg, izraditi skup za evaluaciju i isporučiti prvu verziju koju zaista možete mjeriti. Javite nam se i recite nam šta želite riješiti.

Imate projekt na umu?

Recite nam šta gradite. Senior inženjer odgovara u roku od sat vremena radnim danom — a zatim dobijate poštenu procjenu, jasan opseg i ponudu po fiksnoj cijeni ili po koracima, obično za nekoliko radnih dana.

Radije prvo pišete? Pišite nam

Razgovarat ćete direktno s Ing. Ismet Mesic, Tech lead.