Preskoči na sadržaj

Članci

RAG ili fine-tuning: što tvrtkama zapravo treba

RAG, fine-tuning, dugi kontekst s predmemoriranjem ili strukturirani izlazi? Jasan vodič za odabir pravog pristupa, uz popis 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čan popis za odlučivanje
  5. Česte zamke
  6. Najprije evaluirajte, zatim optimizirajte
  7. Kako naše vlastite demonstracije prikazuju ove obrasce
  8. Ukratko

Gotovo svaki AI projekt 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 aktualne dokumente, navodi izvore i može se ažurirati u utorak poslijepodne bez ikakvog treniranja. Ovaj članak jednostavnim jezikom objašnjava glavne mogućnosti, 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 kombinirati.

Generiranje potpomognuto pretraživanjem (RAG)#

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

Tri su pojma ključna:

  • Pretraživanje (retrieval): pronalaženje pravih odlomaka. Obično je to kombinacija semantičkog pretraživanja preko embeddinga i klasičnog pretraživanja 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 točan dokument, stranicu ili odlomak iz kojeg odgovor potječ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 shema specifična za domenu ili uzak zadatak koji se izvršava tisuće puta dnevno. Loš je način da se nauči što je trenutačno 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 s predmemoriranjem upita (prompt caching)#

Suvremeni modeli tvrtki Anthropic i OpenAI te nekoliko obitelji modela otvorenog koda prihvaćaju vrlo duge ulaze. Ako je vaša baza znanja umjerene veličine, primjerice priručnik za proizvod, skup pravila ili zbirka čestih pitanja, često je možete u cijelosti staviti izravno u upit. Bez indeksa, bez cjevovoda za pretraživanje, bez odluka o dijeljenju na dijelove.

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

Strukturirani izlazi#

Mnogi „AI” projekti zapravo su projekti ekstrakcije: pročitati račun, životopis, ugovor ili e-poruku 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 shemi koju vi definirate, primjerice 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 predmemoriranjem upita. Prijeđ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: najprije 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 opsegu: 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 sustav može koristiti RAG za znanje, strukturirane izlaze za format odgovora i mali fine-tunirani model za usmjeravanje dolaznih zahtjeva.

Usporedba#

KriterijRAGDugi kontekst + predmemoriranjeFine-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 shemu
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 primjeraShema i ogledni dokumenti
Vrijeme do prve verzijeOd nekoliko dana do nekoliko tjedanaOd nekoliko sati do nekoliko danaTjedni, uključujući pripremu podatakaOd nekoliko sati do nekoliko dana
Glavni riziciLoše pretraživanje, zastarjeli indeks, prompt injection kroz dokumenteOgraničenja konteksta, trošak bez predmemoriranjaZastarjele činjenice, pretjerana prilagodba, skrivena pristranost u podacima za treniranjePreruta ili prelabava shema

Praktičan popis za odlučivanje#

Prije odabira arhitekture iskreno odgovorite na ova pitanja:

  1. Koji je točno zadatak? Odgovaranje na pitanja, pisanje teksta, klasifikacija ili ekstrakcija? Zapišite pet stvarnih primjera ulaza i idealnog izlaza.
  2. Koliko se često mijenja temeljno znanje? Dnevne ili tjedne promjene snažno govore protiv fine-tuninga.
  3. Trebaju li korisnici provjeravati odgovore? U pravnom, financijskom, 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, najprije isprobajte dugi kontekst s predmemoriranjem.
  5. Tko smije vidjeti što? Ako različiti korisnici imaju pristup različitim dokumentima, potrebno vam je pretraživanje 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 najprije 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 pregledavamo AI sustave koji „gotovo rade”.

  • Loše dijeljenje na dijelove (chunking). Dijeljenje dokumenata na proizvoljne dijelove fiksne veličine presijeca tablice, 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 sustav ne pokazuje odakle odgovor potječ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. Osobni podaci u dokumentima, upitima i zapisima i dalje su osobni podaci. Znajte koji ih pružatelj usluga obrađuje, u kojoj regiji, prema kojem ugovoru o obradi podataka i koliko se dugo zapisi čuvaju. Fine-tuning na osobnim podacima zahtijeva dodatan oprez jer ih je kasnije teško ukloniti.
  • Prompt injection iz dokumenata. Dohvaćeni sadržaj je nepouzdan ulaz. Dokument može sadržavati tekst koji pokušava davati upute modelu, primjerice da zanemari svoja pravila ili otkrije druge podatke. Dohvaćeni tekst tretirajte kao podatke, ograničite što model smije raditi s alatima i nikada ne dopustite da sadržaj dokumenta dodjeljuje ovlasti.

Najprije 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 pretraživanja: je li sustav pronašao prave odlomke?
  • Kvalitetu odgovora: je li odgovor točan, potpun i utemeljen na izvorima?
  • Točnost citata: podupiru li citirani odlomci doista tvrdnju?
  • Ponašanje pri odbijanju: kaže li sustav „Ne znam” kada bi trebao?
  • Usklađenost s formatom: odgovara li kod ekstrakcije svaki izlaz shemi?

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 bolje pretraživanje ili jasniji upit, a ne veći model ili novo treniranje.

Automatsko ocjenjivanje pomoću modela može ubrzati taj proces, ali ga, osobito 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 cjevovoda za pretraživanje koristi dugi kontekst s predmemoriranjem upita: cijela baza znanja nalazi se u predmemoriranom 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 toč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 temelji. To je temeljno obećanje utemeljene umjetne inteligencije: svaka se tvrdnja može provjeriti u svojem 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 s predmemoriranjem 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 sustav mora strojno obraditi.
  • Najprije evaluirajte, a zatim optimizirajte ono na što vas upućuju rezultati.

Ako razmatrate ove mogućnosti za stvaran projekt, naš tim za AI i automatizaciju, koji vodi tehnički voditelj s više od 20 godina iskustva, može vam pomoći definirati opseg, izraditi skup za evaluaciju i isporučiti prvu verziju koju zaista možete mjeriti. Javite nam se i recite nam što želite riješiti.

Imate projekt na umu?

Recite nam što gradite. Dobit ćete iskrenu procjenu, jasan opseg i ponudu s fiksnom cijenom ili po fazama – obično u roku od nekoliko radnih dana.

Radije biste prvo pisali? Pišite nam