O technicznych aspektach LLM-ów dla nieinformatyków, cz. 1. „Retrieval-Augmented Generation (RAG)”

Posłuchaj:
Udostępnij:

Duże modele językowe (ang. Large language models – LLM) są coraz bardziej zaawansowane, ale nadal ograniczone kontekstowo. Nie mają „wiedzy i świadomości biznesowej”. Nie mają dostępu do danych i przepływów czy wyników pracy w firmach. Działają w izolacji. Powadzi to do uzyskiwania ogólnych wyników i odpowiedzi na zadawane im pytania. Wciąż brakuje im aktualnej i konkretnej wiedzy na specyficzne tematy. Wynika to z tego że pomimo dostępu do zasobów Internetu opierają się one głównie na tym czego nauczyły się podczas ich trenowania, czyli na statycznym zbiorze wiedzy, gdzie brakuje dostępu do konkretnej informacji w czasie rzeczywistym, a to ogranicza ich możliwości. 

I tu pojawia się rozszerzone generowanie oparte na pobieranych danych kontekstowych (ang. Retrieval Augmented Generation – RAG), czyli technologia umożliwiająca za pomocą rozszerzonych zapytań (ang. promptów) dostarczanie modelom nowych danych. Dostarczanie poprzez udostępnianie im kontekstu zawierającego odpowiednie informacje z zewnętrznych źródeł danych, np. własnych danych kontekstowych w postaci dokumentów czy zestawień danych. Znacząco zwiększa to ich zdolność do generowania prawidłowych wyników, bardziej efektywnego wyszukiwania informacji. Jednak profesjonalne implementacje RAG pozostają niszowe, fragmentaryczne, co prowadzi do niestandardowych, nieskalowalnych rozwiązań.  

RAG nie zapewnia dokładnych istotnych i wiarygodnych odpowiedzi. Dlaczego?  Bo wymaga to wielu prac i ciągłej aktualizacji i wzmocnienia. Wspomagane generowanie to nie tylko wyszukiwanie i pobieranie danych, ale także, a może przede wszystkim wyszukiwanie i pobieranie właściwych danych, ich prawidłowa strukturyzacja i optymalizacja. Jeśli zrobisz to źle, to AI będzie pobierać tzw. szum, zamiast szczegółowych i prawidłowych informacji. Można temu częściowo zaradzić np. wykorzystując  Model Context Protocol (MCP), czyli otwarty standard technologiczny opracowany przez firmę Anthropic, który umożliwia efektywną i bezpieczną integrację dużych modeli językowych (LLM) z zewnętrznymi źródłami danych i narzędziami. Więcej o tym w oddzielnym artykule tutaj 

RAG już sam rozwiązuje kluczowe ograniczenie dużych modeli językowych (LLM), takie jak brak aktualnej wiedzy czy „wrodzoną” tendencje do halucynacji, właśnie poprzez integrację zewnętrznych źródeł danych.

Jak działa RAG?

RAG jest złożony z kilku elementów. 

– Korpusu (ang. Corpus), czyli tzw. źródła wiedzy najczęściej składającego się ze zbioru tekstów wprowadzanych bezpośrednio do polecenia (ang. prompt) lub opisu zadania lub pośrednio zbioru dokumentów, które służą jako baza wiedzy. Jest on podstawoaym elementem, ponieważ dostarcza informacje, które model wykorzystuje do generowania odpowiedzi na zapytania użytkownika. Korpus może zawierać różnorodne dane, takie jak dokumenty tekstowe, artykuły, raporty, dokumentację techniczną, pliki graficzne, wykresy czy inne dane organizacji, w tym dane wewnętrzne i poufne. 

– Model osadzania (ang. Embedding model) to algorytm przekształcający tekst na wektory numeryczne, które kodują znaczenie słów i reprezentują znaczenie semantyczne słów lub fragmentów tekstu. Te matematyczne reprezentacje umożliwiają systemowi przechowywanie tych wektorów w bazie danych i potem wyszukiwanie ich i porównywanie w bazie danych w oparciu o podobieństwo kontekstowe, co jest kluczowe dla efektywnego działania RAG. 

– Model najlepszego dopasowania (ang. Best Matching ), który znacząco zwiększa dokładność działania wsparty przez metody statystyczne przetwarzania języka naturalnego (ang. Natural Language Processing – NLP) i wyszukiwania informacji oparte o częstotliwość występowania słów i dokumentów (ang. Term Frequency-Inverse Document Frequency – TF-IDF), które to oceniają  znaczenie słowa w dokumencie w porównaniu do całego zbioru danych/dokumentów, czyli tzw. korpusu (ang. Corpus). 

– Modelu fragmentowania (ang. Fragmenting), strukturyzującego danych w celu uzyskania maksymalnej trafności. Fragmentowanie definiuje to, co rozumie sztuczna inteligencja w celu lepszej trafności wyszukiwania i zapewnienia kontekstowego wydajnego pobierania danych. 

– Bazy wektorowej (ang. Vector base). Jest to baza danych (informacji) służąca do przechowywania i indeksowania oraz do wyszukiwania wektorów o wysokiej wymiarowości (tu wektor jest tablicą liczb, a ta liczba wymiarów, często setek lub tysięcy odpowiada liczbie atrybutów opisujących dane, które reprezentują semantyczne znaczenie tych danych, takich jak tekst, obrazy czy dźwięk). Wektor bazowy jest kluczowym elementem architektury RAG, umożliwiając szybkie iprecyzyjne wyszukiwanie informacji w oparciu o podobieństwo semantyczne. 

– Indeksu częstotliwość występowania słów i dokumentów (ang.TF-IDF Indeks). Jest to swego rodzaju baza danych lub macierz danych, która w sposób ustrukturyzowany przechowuje wartości częstotliwości ww. TF-IDF dla każdego słowa w każdym dokumencie w korpusie. Jest to kluczowy element w systemach wyszukiwania informacji (ang. Information Research) i przetwarzania języka naturalnego (NLP), ponieważ umożliwia szybkie obliczanie podobieństwa między zapytaniem użytkownika  (ang. User query) a dokumentami w bazie danych. 

– Rankingu/ów (ang. Rank). Są to uporządkowane listy dokumentów lub fragmentów informacji, posortowane według ich trafności względem zapytania użytkownika. Są tworzone w czasie rzeczywistym, a trafność oceniana jest na podstawie różnych miar, takich jak podobieństwo semantyczne, znaczenie kontekstowe czy inne wskaźniki związane z zapytaniem użytkownika (ang. User query) i celem działania modelu. 

– Łącznia rankingów ( ang. Rank fusion). Jest to technologia, która podczas wyszukiwania łączy wyniki z wielu list rankingowych w jedną, bardziej spójną i efektywną listę rankingową. Celem jest wykorzystanie mocnych stron różnych algorytmów rankingowych i zminimalizowanie ich słabości, co prowadzi do poprawy ogólnej jakości wyników. 

– Udoskonalanie dynamicznego (ang. Dynamic optimization). W zaawansowanych tzw. rekurencyjnych systemach RAG występuje wiele cykli „udoskonalania”, które działają w iteracyjny i rekurencyjny sposób w celu poprawy dokładności i lepszej precyzji. To pozwala dynamicznie przekształcać zapytania na podstawie pobranych wyników. Wzmacnia kontekst i znaczenie. 

Wyniki działania tych elementów – poza tymi widzianymi w interfejsie użytkownika czy poprzez MCP przez inne systemy – są wykorzystywane do uczenia modelu generatywnego. 

 

 

W sieci pojawiło się już wiele systemów RAG i każdy duży dostawca AI je oferuje do swojego rozwiązania Powstaje pytanie, czy będzie on odpowiadał na potrzeby użytkowników Twojej firmy? 

Bartosz Radziszewski