
Kilka miesięcy temu trafiłem na ciekawy paradoks. Dzisiejsze modele językowe potrafią wyjaśniać złożone pojęcia, pisać kod i pomagać rozwiązywać problemy techniczne z zaskakującą precyzją. Jeśli jednak zapytasz je o wewnętrzny dokument firmy, prywatny podręcznik albo konkretny protokół, nie wiedzą nic.
To ma sens: ta wiedza nie była częścią ich treningu. Pomyślałem wtedy o czymś bardzo typowym dla każdej organizacji: firma gromadzi setki dokumentów.
- Procedury
- Umowy
- Protokoły
- Raporty
- Regulaminy
- Wewnętrzne instrukcje
Wszystkie te informacje istnieją, ale szybki dostęp do nich bywa trudny. Zadałem sobie pytanie:
A gdyby dało się rozmawiać z tymi dokumentami tak, jak rozmawia się z człowiekiem?
Nie przez szukanie słów kluczowych. Nie przez przeglądanie folderów. Po prostu pytając: "Jaka jest procedura dla X?" i otrzymując jasną odpowiedź opartą na dokumentacji wewnętrznej. Tak zaczął się projekt.
Czym naprawdę jest system RAG#
Najprościej zrozumieć system RAG, wyobrażając sobie bibliotekę.
Tradycyjny model językowy przypomina bardzo inteligentną osobę, która odpowiada wyłącznie z pamięci. Czasem trafia, czasem nie, a do tego nie ma dostępu do informacji prywatnych ani specyficznych dla danej firmy. System RAG działa inaczej.
Przed odpowiedzią szuka istotnych informacji w kolekcji dokumentów. Pobiera najbardziej przydatne fragmenty i przekazuje je modelowi, aby ten mógł wygenerować odpowiedź.
Innymi słowy: nie odpowiada tylko z pamięci. Odpowiada na podstawie dowodów. To całkowicie zmienia jego użyteczność w środowiskach biznesowych.
Jak zbudowałem system#
Cel był jasny: użytkownik ma móc przesłać dokumenty PDF i zadawać pytania na ich temat w języku naturalnym.
Przepływ systemu wyglądał tak:
- Ekstrakcja treści z PDF-ów
- Dzielenie tekstu na fragmenty
- Generowanie embeddingów dla każdego fragmentu
- Zapis w wektorowej bazie danych
- Wyszukiwanie semantyczne istotnych fragmentów
- Przekazanie kontekstu do modelu językowego
- Wygenerowanie odpowiedzi z odwołaniami do źródeł
Dokumenty PDF
|
v
Ekstrakcja i czyszczenie
|
v
Dzielenie na fragmenty
|
v
Embeddingi
|
v
Baza wektorowa
|
v
Wyszukiwanie semantyczne
|
v
LLM + odzyskany kontekst
|
v
Odpowiedź z cytowanymi źródłamiPraktyczny przykład#
Załóżmy, że firma ma kilka dokumentów wewnętrznych:
- Instrukcję procedur
- Politykę zwrotów
- Regulamin wewnętrzny
Użytkownik może zapytać:
Ile dni wcześniej trzeba zgłosić zwrot?
System wyszukuje istotne informacje w dokumentach i odpowiada:
Ważna jest tu nie tylko sama odpowiedź, ale też możliwość prześledzenia jej pochodzenia.
Czego nauczyłem się podczas pracy#
Zanim zacząłem budowę, myślałem, że system RAG polega głównie na połączeniu narzędzi. W praktyce okazało się, że prawdziwa praca kryje się w decyzjach projektowych:
- Rozmiar fragmentów bezpośrednio wpływa na jakość odpowiedzi.
- Zbyt małe fragmenty tracą kontekst.
- Zbyt duże fragmenty wprowadzają szum.
- Ilość odzyskanej informacji zmienia precyzję modelu.
Jakość systemu nie zależy wyłącznie od modelu, ale od tego, jak wiedza jest strukturyzowana i odzyskiwana.
Osobista refleksja#
Podczas mojego przygotowania jako psycholog nauczyłem się czegoś, co wydaje mi się tutaj ważne: duża część ludzkiej inteligencji nie polega tylko na przechowywaniu informacji, ale na odzyskiwaniu jej we właściwym momencie.
Podobnie dzieje się w organizacjach. Wiedza już istnieje. Wyzwanie polega na tym, aby była dostępna. Tu właśnie systemy takie jak RAG zaczynają mieć znaczenie: nie zastępują wiedzy, tylko czynią ją użyteczną.
Wniosek#
Sztuczna inteligencja nie jest tylko narzędziem do generowania tekstu. Może też stać się interfejsem do wiedzy organizacji.
Największa zmiana może nie być technologiczna, lecz koncepcyjna: przechodzimy od szukania informacji do rozmowy z nią.