Modele językowe

RAG czy fine-tuning? Jak dać modelowi wiedzę, której nie ma

Dwie techniki rozwiązują dwa różne problemy, a mylenie ich kosztuje najwięcej czasu przy wdrożeniach.

Redakcja Zespół redakcyjny 4 min czytania
Kobieta przeszukująca katalog kartkowy w bibliotece
Źródło: Pexels (pexels.com/photo/6549375)

Czego się dowiesz

  • Kiedy RAG jest właściwym wyborem, a kiedy dostrajanie modelu
  • Jak dzielić dokumenty na fragmenty, żeby wyszukiwanie działało
  • Ile realnie kosztuje każde z podejść

Model językowy zna język i wiedzę ogólną z okresu treningu. Nie zna dokumentacji Twojego produktu, procedur firmy ani wczorajszych wyników. Są dwa sposoby, żeby to zmienić - i wybór między nimi jest zaskakująco prosty, jeśli zada się właściwe pytanie.

RAG: wyszukaj, potem odpowiedz

RAG (retrieval-augmented generation) to podejście, w którym przed wygenerowaniem odpowiedzi system wyszukuje w Twoich dokumentach fragmenty pasujące do pytania i dokłada je do zapytania. Model streszcza dostarczony materiał zamiast odtwarzać wiedzę z wag.

Jak to działa krok po kroku


Przygotowanie dokumentów

Pliki dzielisz na fragmenty i zamieniasz każdy z nich na wektor - listę liczb opisującą znaczenie tekstu.


Indeksowanie

Wektory trafiają do bazy pozwalającej szybko znaleźć te najbliższe znaczeniowo.


Wyszukiwanie

Pytanie użytkownika też zamieniasz na wektor i szukasz najbardziej podobnych fragmentów.


Generowanie

Znalezione fragmenty trafiają do zapytania wraz z instrukcją: odpowiadaj wyłącznie na ich podstawie i podaj źródło.


Co decyduje o jakości

Wbrew pozorom nie wybór modelu, tylko sposób dzielenia dokumentów. Fragment powinien być zamkniętą myślą - dlatego dzieli się po nagłówkach i sekcjach, a nie co tysiąc znaków. Do każdego fragmentu warto dołączyć tytuł dokumentu i ścieżkę sekcji, żeby model wiedział, skąd pochodzi tekst.

Tabele traktuje się osobno: rozbita tabela traci sens. Podobnie kod - dzielenie w środku funkcji sprawia, że żaden fragment nie jest użyteczny.

Wyszukiwanie hybrydowe

Wyszukiwanie wektorowe świetnie radzi sobie z pytaniami sformułowanymi inaczej niż tekst źródłowy ("jak zwrócić towar" znajdzie sekcję o reklamacjach). Przegrywa jednak z nazwami własnymi, numerami katalogowymi i skrótami - tam lepsze jest klasyczne wyszukiwanie pełnotekstowe. Najlepsze wyniki daje połączenie obu metod z ponownym uszeregowaniem wyników.

Fine-tuning: zmiana zachowania modelu

Dostrajanie polega na dalszym trenowaniu gotowego modelu na własnym zbiorze przykładów. Zmieniasz wagi, więc zmieniasz to, jak model odpowiada - nie to, co wie o świecie.

Do czego się nadaje

  • Stały format odpowiedzi - np. zawsze poprawny JSON o określonej strukturze.
  • Ton i styl - konkretny sposób komunikacji marki, którego trudno opisać instrukcją.
  • Wąska dziedzina z własnym żargonem - terminologia medyczna, prawnicza, branżowa.
  • Zmniejszenie kosztu - dostrojony mniejszy model potrafi dorównać większemu w jednym konkretnym zadaniu, przy niższej cenie za zapytanie.

Do czego się nie nadaje

Do przekazywania faktów. Dostrojenie modelu na cenniku sprawi, że model nauczy się formy odpowiedzi o cenach - ale konkretne kwoty i tak będzie mylił, a każda zmiana cennika wymagałaby powtórzenia treningu.

Porównanie kosztów

AspektRAGFine-tuning
Koszt uruchomienianiski - indeksowanie dokumentówśredni/wysoki - przygotowanie zbioru i trening
Aktualizacja wiedzypodmiana plikuponowny trening
Koszt zapytaniawyższy - dłuższy kontekstniższy - krótszy prompt
Możliwość podania źródełtak, naturalnienie
Czas wdrożeniadnitygodnie

Kiedy warto połączyć oba podejścia

Typowy scenariusz zaawansowany: dostrajasz mniejszy model, żeby zawsze odpowiadał w wymaganym formacie i trzymał się stylu, a fakty dostarczasz mu przez RAG. Dostajesz stałą formę i aktualną treść, przy koszcie niższym niż wywołania dużego modelu z długim promptem systemowym.

Jak zmierzyć, czy działa

Zbierz 30-50 realnych pytań z odpowiedziami wzorcowymi i mierz dwie rzeczy osobno: czy wyszukiwanie zwróciło właściwy fragment oraz czy odpowiedź jest poprawna. Rozdzielenie tych metryk jest kluczowe - inaczej nie wiesz, czy poprawiać dzielenie dokumentów, czy instrukcję dla modelu.

Odpowiedź "nie znalazłem tego w materiałach" przy pytaniu spoza bazy traktuj jako wynik pozytywny, nie porażkę.

Najczęstsze pytania


Nie. Indeks może stać na własnej infrastrukturze, a do modelu trafiają tylko fragmenty potrzebne do konkretnej odpowiedzi. Przy danych wrażliwych można dodatkowo użyć modelu uruchamianego lokalnie.


Zwykle od trzech do ośmiu. Więcej podnosi koszt i rozprasza model. Jeśli odpowiedzi są niepełne, częściej winne jest złe dzielenie dokumentów niż zbyt mała liczba fragmentów.


Dostrajanie przez API dostawców jest dziś kwestią przygotowania pliku z przykładami. Trudność nie leży w uruchomieniu treningu, tylko w zebraniu kilkuset dobrych przykładów i ocenie, czy wynik jest lepszy niż przed dostrojeniem.


Czy ten artykuł był pomocny?

Jeden głos na artykuł. Możesz go zmienić albo wycofać ponownym kliknięciem - Twój wybór zapamiętujemy w tej przeglądarce.

Redakcja

Zespół redakcyjny portalu. Piszemy i redagujemy teksty, weryfikujemy zgłoszenia od autorów i pilnujemy, żeby definicje w słowniku były aktualne.

Wszystkie artykuły autora →

Dołącz do dyskusji

Twój adres e-mail nie zostanie opublikowany. Komentarze są moderowane - trzymajmy poziom merytoryczny.