Fine-tuning, retrieval-augmented generation (RAG) oraz zwykły prompting rozwiązują różne klasy problemów w przypadku dużych modeli językowych (LLM). Wybór niewłaściwej metody marnuje cykle GPU, zwiększa rachunki za chmurę i wciąż pozostawia użytkowników z błędnymi odpowiedziami. Poniżej znajduje się krok po kroku opracowany framework, który pozwala programistom zdecydować, które narzędzie pasuje do ich przypadku użycia oraz jak je ze sobą łączyć, gdy zajdzie taka potrzeba.
Trzy dźwignie
| Co się zmienia | Jak to działa | Typowe zastosowanie |
|---|---|---|
| RAG | Dodaje zewnętrzne fakty do kontekstu modelu podczas wnioskowania (inference) | Aktualizacja cen, pobieranie najnowszych dokumentów polityki, cytowanie prywatnych danych |
| Fine-tuning | Dostosowuje wewnętrzne wagi modelu, aby zmienić styl, format lub powtarzalne zachowanie | Spójny ton, złożone struktury wyjściowe, klasyfikacja o wysokiej przepustowości |
| Prompting | Kształtuje natychmiastową odpowiedź modelu za pomocą jasnych instrukcji i przykładów | Ogólne rozumowanie, szybkie prototypy, wdrażanie funkcji w ciągu kilku dni |
Kluczowe pytanie, które należy zadać na początku każdego projektu, brzmi: Czy braki wynikają z luki w wiedzy, czy z luki w zachowaniu? Luka w wiedzy oznacza, że model po prostu nie posiada odpowiednich faktów; luka w zachowaniu oznacza, że model zna fakty, ale nie wyraża ich w sposób, jakiego potrzebujesz.
Gdy problemem jest luka w wiedzy – sięgnij po RAG
Jeśli model halucynuje, zwraca nieaktualne liczby lub nie potrafi wskazać źródła, problemem są brakujące lub nieaktualne informacje. RAG rozwiązuje to poprzez pobieranie odpowiedniego dokumentu lub punktu danych do promptu w czasie rzeczywistym.
- Używaj RAG, gdy fakty zmieniają się często – np. poziomy zapasów, ceny rynkowe lub tabele regulacyjne.
- Używaj go, gdy musisz podawać cytowania lub zapewniać identyfikowalność (traceability) na potrzeby zgodności lub audytu.
- Używaj go dla prywatnych korpusów danych, których nie można udostępniać publicznym modelom; warstwa wyszukiwania (retrieval layer) utrzymuje dane za Twoim firewallem.
Aktualizacja dokumentu jest łatwa. Ponowne trenowanie modelu jest trudne.
Gdy problemem jest luka w zachowaniu – wykonaj fine-tuning
Jeśli model zna już poprawne fakty, ale przekazuje je w niewłaściwym formacie, tonie lub o niespójnej strukturze, musisz ukształtować jego wewnętrzne zachowanie. Fine-tuning zmienia wagi modelu tak, aby pożądany styl stał się domyślny.
- Idealny dla specyficznego głosu marki, języka prawniczego lub jakiegokolwiek wyniku, który musi być zgodny ze ścisłym szablonem.
- Dobrze sprawdza się w zadaniach o dużej objętości i powtarzalnych, takich jak masowa klasyfikacja, gdzie niewielki koszt promptu przy każdym wywołaniu sumuje się do dużych kwot.
- Może skracać prompty, zmniejszając zużycie tokenów, a tym samym koszt wnioskowania (inference cost).
Częstym błędem jest fine-tuning modelu tylko po to, aby nauczyć go faktów. Marnuje to moc obliczeniową i wciąż pozostawia model podatnym na przyszły dryft danych (data drift). Fakty powinny znajdować się w warstwie wyszukiwania; fine-tuning powinien znajdować się w warstwie zachowania.
Gdy problemem jest luka w instrukcjach – zacznij od promptingu
Prompt engineering to najtańszy i najszybszy sposób na sprawdzenie, czy model w ogóle potrafi rozwiązać dane zadanie. Jasne instrukcje, przykłady typu few-shot oraz prompting typu chain-of-thought często niwelują lukę bez wprowadzania jakichkolwiek zmian w modelu.
- Używaj go, aby sprawdzić, jak wygląda „dobra” odpowiedź, zanim zdecydujesz się na droższe rozwiązanie.
- Stosuj go w zadaniach wymagających intensywnego rozumowania, podczas burzy mózgów lub w każdym scenariuszu, w którym potrzebny jest szybki rezultat.
- Jeśli możesz uzyskać satysfakcjonujące wyniki dzięki dobrze sformułowanemu promptowi, unikasz narzutu związanego z gromadzeniem danych, trenowaniem modelu czy budowaniem potoków wyszukiwania (retrieval pipelines).
Jeśli nie wyczerpałeś możliwości jasnego promptingu i podania kilku przykładów, nie jesteś gotowy na inwestycję w infrastrukturę fine-tuningu lub RAG.
Przepływ decyzji
Przeanalizuj swój przypadek użycia za pomocą poniższej listy kontrolnej. Zatrzymaj się przy pierwszym „tak” i zastosuj tę technikę. Jeśli spełnionych jest więcej niż jeden warunek, połącz rozwiązania.
- Czy próbowałeś promptingu z wyraźnymi instrukcjami i przykładami few-shot? Nie → zacznij od promptingu.
- Czy błąd wynika z braku lub nieaktualnych faktów, lub czy musisz cytować źródła? Tak → dodaj warstwę RAG.
- Czy błąd wynika z niespójnego stylu, formatowania lub potrzeby uzyskania wysokoprzepustowego, powtarzalnego wyniku? Tak → wykonaj fine-tuning modelu.
Gdy występują zarówno luki w wiedzy, jak i w zachowaniu, połącz RAG i fine-tuning: najpierw pobierz poprawne fakty, a następnie pozwól fine-tuned modelowi przedstawić je w pożądanym stylu.
Pomiar sukcesu
Nigdy nie polegaj na samym „wyczuciu”. Stwórz mały, reprezentatywny zestaw ewaluacyjny, który obejmuje kluczowe dane wejściowe i oczekiwane wyniki. Przeprowadź testy tego samego zestawu dla każdego kandydata na rozwiązanie — sam prompt, prompt + RAG, prompt + fine-tuning lub pełny stos technologiczny. Porównaj dokładność, jakość cytowań, koszt tokenów oraz opóźnienia. Dane powiedzą Ci, która warstwa wnosi realną wartość, a która jest niepotrzebnym narzutem.
Wybór odpowiedniego podejścia na wczesnym etapie oszczędza czas, pieniądze i frustrację. Zacznij od promptu, dodaj retrieval, gdy wąskim gardłem są fakty, i fine-tuning, gdy problemem jest zachowanie modelu. Mierz, iteruj, a unikniesz powszechnego błędu polegającego na marnowaniu mocy GPU na rozwiązanie niewłaściwego problemu.
