Szkic odpowiedzi dla klienta
Zgłoszenie wpada, a obok pojawia się propozycja odpowiedzi i fragment procedury, z którego wyszła. Agent poprawia jedno zdanie i wysyła. Przy trudniejszej sprawie otwiera go i czyta w całości.
Maciej Nuzia · RAG
RAG, czyli Retrieval Augmented Generation, przed ułożeniem odpowiedzi przeszukuje wskazane dokumenty. Odpowiedź wraca razem z fragmentami źródłowymi, które można otworzyć i sprawdzić. Dlatego zaczynam od wyszukiwania i uporządkowania materiałów.
Nie każdy zbiór dokumentów nadaje się pod RAG. Niżej opisuję trzy miejsca, w których takie wdrożenie się psuje.
Problem
Regulamin obowiązuje w wersji z aneksem, a o tym, jak stosuje się to w praktyce, wie osoba z najdłuższym stażem. Kiedy przychodzi pytanie, ktoś zestawia te rzeczy i formułuje odpowiedź. Potem odpowiedź idzie mailem do jednego klienta i tam zostaje.
Dla kogo
Pytania muszą wracać na tyle często, żeby ktoś zauważył, że system je przejął. Kiedy po próbce dokumentów widzę, że tak nie jest, odradzam to wdrożenie i mówię dlaczego. Oba warunki schodzą się tam, gdzie z dokumentów korzysta się codziennie.
Zastosowania
Zgłoszenie wpada, a obok pojawia się propozycja odpowiedzi i fragment procedury, z którego wyszła. Agent poprawia jedno zdanie i wysyła. Przy trudniejszej sprawie otwiera go i czyta w całości.
Pytasz, jak w tej umowie wygląda okres wypowiedzenia, i dostajesz akapit, w którym to zapisano. Przy umowach różniących się drobiazgami samo wskazanie miejsca bywa całą wartością.
Ktoś pyta o zwrot towaru po terminie, a procedura nazywa tę sytuację reklamacją pozagwarancyjną. Dopasowanie po znaczeniu ma szansę te dwie nazwy zestawić.
Nowy pracownik pyta system o rzeczy, o które przy koledze wypada zapytać najwyżej raz.
Zbiór, który zmienia się rok do roku. System odpowiada z wersji wskazanej jako obowiązująca, więc ktoś w firmie musi tę wersję wskazać. Jedna decyzja, którą trzeba komuś przypisać.
Ten sam mechanizm po zewnętrznej stronie. Tu jestem ostrożniejszy z granicami: o czym model może rozmawiać, a przy jakich sprawach ma od razu podać kontakt do człowieka.
Bywa, że RAG jest jedną z funkcji większej aplikacji. Piszę o tym na stronie o aplikacjach webowych z AI.
Przebieg
O wyniku decyduje materiał, który włożę do modelu i do bazy wektorowej. Stąd kolejność poniżej.
01
Siadam do tego, co firma trzyma: regulaminów, umów, korespondencji z klientami. Część odpada od razu, bo dubluje inny plik albo przestała obowiązywać. Przy każdym zbiorze muszę wiedzieć, kto rozstrzyga, która wersja jest ważna. Bez takiej osoby sprzeczności między dokumentami zostają w bazie i wychodzą dopiero w odpowiedziach.
02
Tnę dokumenty na fragmenty, które da się zrozumieć bez reszty pliku, i zamieniam je na wektory, żeby dało się szukać po znaczeniu. Wielkość fragmentu i to, co dokładam do niego z nagłówków, wychodzi z prób na Twoich plikach. Umowa dzieli się inaczej niż zapis rozmowy z klientem.
03
Na pytanie system najpierw wybiera fragmenty, dopiero z nich układa zdanie. Ustawiam, ile ich bierze, czym uzupełnia zapytanie i co ma się stać, gdy nic nie pasuje. Ostatni punkt wymaga osobnej instrukcji: co system ma powiedzieć, kiedy wyszukiwanie nic nie przyniosło.
04
Zbieram z Tobą listę pytań, które naprawdę padają, i przechodzę je po kolei: co zwróciło wyszukiwanie, co model z tego ułożył i czy źródło to potwierdza. Poprawki wracają na tę listę. Dokumenty dostają swój tryb odświeżania.
Technologie
Wybieram bazę wektorową i model pod to, gdzie mogą leżeć Twoje dokumenty.
Trudne miejsca
Do odpowiedzi dopinam fragmenty, na których się oparła, a przy ważnej sprawie trzeba je otworzyć. Wyszukiwanie miewa chybione trafienia, a model zbuduje zdanie z tego, co dostanie. Sam przypis nie dowodzi, że odpowiedź jest poprawna. Dowodzi tylko, z czego została ułożona.
Odświeżanie bazy projektuję osobno: co ją zasila, jak często i kto to uruchamia. Do momentu odświeżenia w odpowiedziach wraca starsza wersja dokumentu.
Część wiedzy firmy nigdy nie została spisana. RAG jej nie wyciągnie, bo nie ma z czego. Po uruchomieniu widać, o co ludzie pytają i czego w zbiorze brakuje. Zwykle powstaje wtedy kilka dokumentów, których wcześniej nikt nie napisał.
Z tych trzech najczęściej zaskakuje ostatnia. Lista pytań, na które w firmie nie ma odpowiedzi, zbiera się sama i bywa ciekawsza od samego systemu.
FAQ
Skrót od Retrieval Augmented Generation. Model dostaje pytanie, ale zanim odpowie, przeszukuje wskazany mu zbiór dokumentów i wyciąga z niego fragmenty. Odpowiedź bierze się właśnie z nich i wraca razem z nimi, więc widać, na czym stanęła.
Fine-tuning zmienia zachowanie samego modelu i po każdej zmianie wiedzy trzeba go uczyć jeszcze raz. RAG zostawia model w spokoju i dokłada mu wyszukiwanie w Twoich plikach, więc świeża wiedza wchodzi przez podmianę dokumentu. Przy wiedzy, która co miesiąc wygląda inaczej, ta różnica jest rozstrzygająca. Przy stałym stylu i formacie odpowiedzi fine-tuning bywa lepszym wyborem.
System można ustawić tak, żeby powiedział, że nie znalazł, i podał kontakt do człowieka. Ta instrukcja jest częścią projektu i sprawdzam ją na pytaniach, o których z góry wiadomo, że odpowiedzi w zbiorze nie ma.
Dane trafiają tam, gdzie ustalimy. Model można wołać u dostawcy, który nie uczy się na przesłanych treściach, albo postawić bliżej Twoich systemów, jeśli dokumenty nie mogą wyjść poza firmę. Osobną sprawą są uprawnienia: system musi wiedzieć, kto o co może pytać, bo inaczej wyszukiwanie pokaże pracownikowi zapis umowy, którego nie powinien widzieć. Poruszam to na początku, bo odpowiedź zmienia architekturę.
Dokumenty
Wystarczy kilka zdań. Napisz, jakie to dokumenty, w czym są zapisane i kto dziś odpowiada na pytania o nie. Jeśli wolisz zacząć od liczb, przejdź przez narzędzie do wyceny i odezwij się z jego raportem.