"Fine-tuning czy RAG?" to jedno z najczęstszych pytań, jakie słyszę od klientów, i zwykle jest to źle postawione pytanie. Fine-tuning i RAG rozwiązują różne problemy - jeden zmienia to, co model umie robić, drugi zmienia to, do czego model ma dostęp. Oto framework, który stosuję, by ustalić, czego projekt faktycznie potrzebuje.
01
Co każde z nich naprawdę zmienia
RAG w ogóle nie dotyka modelu - zmienia to, co jest w prompcie. W momencie zapytania pobierasz odpowiednie dokumenty i wstrzykujesz je do kontekstu, więc model rozumuje na podstawie informacji, których nigdy nie widział podczas treningu. Fine-tuning robi odwrotnie: zmienia wagi modelu, więc zachowanie jest wpieczone na trwałe i żaden krok wyszukiwania nie jest potrzebny w czasie inferencji.
Sama ta różnica odpowiada na większość nieporozumień. Jeśli Twój problem to "model nie wie o X" - fakt, dokument, coś, co zmienia się co tydzień - to problem dostępu do wiedzy i RAG rozwiązuje go bezpośrednio. Jeśli Twój problem to "model zna fakty, ale odpowiada w złym formacie, tonie czy stylu rozumowania", to problem behawioralny i żadna ilość wyszukanego kontekstu nie naprawi tego wiarygodnie.
02
Test świeżości
Zapytaj, jak często zmienia się bazowa informacja. Katalogi produktów, ceny, dokumenty polityk, zgłoszenia supportowe, wewnętrzne wiki - wszystko, co aktualizuje się tygodniowo lub dziennie, to silny sygnał na RAG. Fine-tunowanie modelu przy każdej zmianie ceny nie jest realną opcją - trenowałbyś bez końca i wciąż dostarczał nieaktualne odpowiedzi między przebiegami treningu.
Fine-tuning pasuje lepiej, gdy docelowe zachowanie jest stabilne: konsekwentny format wyjścia, konkretna taksonomia klasyfikacji, firmowy styl pisania albo wąskie zadanie, które model musi wykonywać poprawnie bez instruowania go od nowa każdy raz. Jeśli fine-tunujesz, by nauczyć model faktów, które się zmieniają, wybrałeś złe narzędzie, niezależnie od tego, jak dobrze przebiegnie trening.
"RAG odpowiada na 'co model wie teraz'. Fine-tuning odpowiada na 'jak model się zachowuje, zawsze'. Mylenie tych dwóch jest najczęstszą przyczyną, dla której te projekty nie dowożą."
- Bartosz Ziółkowski
03
Koszt, latencja i narzut operacyjny
RAG ma niższy próg wejścia - brak infrastruktury treningowej, brak oznaczonego zbioru danych, tylko pipeline wyszukiwania przed gotowym modelem. Jego bieżący koszt leży w warstwie wyszukiwania i indeksowania: hosting bazy wektorowej, zadania odświeżania embeddingów i dodatkowa latencja kroku wyszukiwania przed każdym wywołaniem generacji.
Fine-tuning ma wyższy koszt początkowy - potrzebujesz jakościowego zbioru treningowego (to zwykle prawdziwe wąskie gardło, nie moc obliczeniowa) i pipeline'u treningu oraz ewaluacji. Jego zwrot to mniejszy, tańszy i szybszy model przy inferencji, bo nie płacisz już za przetwarzanie wyszukanego kontekstu przy każdym wywołaniu. Dla zadań o dużej skali i wąskim zakresie ta redukcja kosztu inferencji może przebić początkową inwestycję w trening już po kilku miesiącach.
“Jeśli nie jesteś pewien, czego potrzebujesz, prawie na pewno najpierw potrzebujesz RAG - łatwiej się pomylić za mniejszą cenę i łatwiej iterować.”
04
Kiedy naprawdę potrzebujesz obu
Te dwie techniki nie wykluczają się wzajemnie, a najsilniejsze systemy produkcyjne, które budowałem, używają obu z różnych powodów. Fine-tunuj mniejszy model, by wiarygodnie trzymał się Twojego schematu wyjścia, używał wewnętrznej terminologii i rozumował w domenowym stylu - a potem i tak połącz go z RAG, by miał dostęp do informacji, które zmieniły się po granicy treningu.
Częsty wzorzec: fine-tuning na zachowanie i format, wyszukiwanie na fakty i świeżość. Próba zmuszenia jednej techniki do wykonania obu zadań to zwykle miejsce, gdzie te projekty się zatrzymują - albo fine-tunowany model z przekonaniem myli się w sprawach, które zmieniły się od treningu, albo system oparty tylko na RAG technicznie zna fakty, ale wciąż odpowiada w złym formacie, bo formatowanie nie jest problemem wyszukiwania.
05
Praktyczna checklist decyzyjna
Przed zdecydowaniem się na jedno albo drugie, odpowiedz uczciwie na trzy pytania. Czy wymagana wiedza zmienia się szybciej, niż jesteś skłonny retrenować? Jeśli tak, potrzebujesz gdzieś wyszukiwania w pętli. Czy tryb błędu to zły fakt czy złe zachowanie? Zły fakt wskazuje na RAG, złe zachowanie na fine-tuning. Czy masz, albo możesz wygenerować, zbiór treningowy, który faktycznie reprezentuje docelowe zachowanie w skali? Jeśli nie, fine-tuning nie zadziała dobrze niezależnie od techniki, a RAG z dobrym promptowaniem jest bardziej realistyczną ścieżką na najbliższy czas.
Większość projektów, które zaczynają od "zróbmy fine-tuning", jeszcze nie wypróbowała dobrze zbudowanego pipeline'u RAG z właściwym wyszukiwaniem hybrydowym i rerankingiem - a zaskakująca liczba z nich przestaje potrzebować fine-tuningu w ogóle, gdy to jest już na miejscu.
Fine-tuning i RAG nie są konkurującymi odpowiedziami na to samo pytanie - odpowiadają na różne pytania o Twój system. Ustal, czy Twoja luka to wiedza czy zachowanie, zanim zaangażujesz czas inżynierski w jedno albo drugie, i nie zdziw się, jeśli właściwa odpowiedź, w końcu, brzmi: obie.
Powiązane artykuły