Model językowy zna język i wiedzę ogólną. Nie zna Waszego cennika, procedury reklamacyjnej ani ustaleń z projektu sprzed dwóch lat. RAG - generowanie wspierane wyszukiwaniem - rozwiązuje to bez uczenia modelu: przy każdym pytaniu system wyszukuje najbardziej pasujące fragmenty dokumentów i dokłada je do zapytania.
Dlaczego nie dostrajanie modelu
Dostrajanie (fine-tuning) uczy model stylu i formatu odpowiedzi, ale słabo nadaje się do przekazywania faktów, które się zmieniają. Zmiana cennika oznaczałaby ponowne uczenie. RAG pozwala zaktualizować odpowiedź przez podmianę pliku.
Krok 1: uporządkuj źródła
Największym problemem większości wdrożeń nie jest technologia, tylko stan dokumentacji. Zanim cokolwiek zindeksujesz, ustal: które dokumenty są aktualne, kto je aktualizuje i co zrobić z wersjami nieaktualnymi. System, który odpowiada na podstawie procedury sprzed trzech lat, jest gorszy niż brak systemu.
Krok 2: podziel dokumenty na fragmenty
Model dostaje fragmenty, nie całe pliki. Sposób podziału decyduje o jakości odpowiedzi bardziej niż wybór modelu.
Co działa
- Podział po nagłówkach i sekcjach, nie po stałej liczbie znaków - fragment powinien być zamkniętą myślą.
- Zachowanie kontekstu: do każdego fragmentu dołącz tytuł dokumentu i ścieżkę sekcji.
- Zakładka między fragmentami (kilkadziesiąt-kilkaset znaków), żeby zdanie na granicy nie zostało ucięte.
- Osobne traktowanie tabel - rozbita tabela traci sens, lepiej zapisać ją w całości z opisem.
Krok 3: wybierz sposób wyszukiwania
Wyszukiwanie wektorowe świetnie radzi sobie z pytaniami sformułowanymi inaczej niż tekst źródłowy. Wyszukiwanie pełnotekstowe wygrywa przy nazwach własnych, numerach katalogowych i skrótach. W praktyce najlepsze wyniki daje połączenie obu z ponownym uszeregowaniem wyników.
Ile fragmentów przekazywać
Zwykle 3-8. Więcej oznacza wyższy koszt i większe ryzyko, że model skupi się na fragmencie mniej istotnym. Jeśli odpowiedzi są niepełne, częściej winne jest złe dzielenie dokumentów niż zbyt mała liczba fragmentów.
Krok 4: zbuduj instrukcję odporną na zmyślanie
Instrukcja systemowa powinna jasno mówić: odpowiadaj wyłącznie na podstawie dostarczonych fragmentów, podawaj źródło, a jeśli w materiale nie ma odpowiedzi - napisz, że jej nie ma. To jedno zdanie eliminuje większość wymyślonych odpowiedzi.
Krok 5: zmierz jakość
Zbierz zestaw pytań testowych
30-50 realnych pytań od zespołu, z odpowiedziami wzorcowymi.
Sprawdź trafność wyszukiwania
Czy wśród zwróconych fragmentów jest ten właściwy? To mierzysz osobno od jakości odpowiedzi.
Oceń odpowiedzi
Poprawna, częściowa, błędna, "nie wiem". Odpowiedź "nie wiem" przy braku danych to wynik pozytywny.
Powtarzaj po każdej zmianie
Zmiana sposobu dzielenia dokumentów potrafi poprawić jedne pytania i zepsuć inne.
Koszty i wydajność
Główne składniki: przetworzenie dokumentów na wektory (jednorazowo plus przy aktualizacjach), przechowywanie indeksu i koszt zapytań do modelu. Przy bazie kilku tysięcy stron i kilkuset zapytaniach dziennie mówimy o kwotach rzędu kilkuset złotych miesięcznie - dominującym kosztem jest utrzymanie aktualności dokumentów, a nie infrastruktura.
Najczęstsze pytania
Nie muszą. Indeks można trzymać na własnej infrastrukturze, a jako model użyć rozwiązania uruchamianego lokalnie. Przy danych wrażliwych to często wymóg wynikający z analizy ryzyka.
Najlepiej automatycznie, przy każdej zmianie dokumentu - przez webhook z systemu, w którym trzymacie pliki. Aktualizacja ręczna raz na kwartał kończy się odpowiedziami opartymi na nieaktualnych danych.
