Menu
O mnie Kontakt

Mike Tomala w swoim najnowszym odcinku przedstawia metodę RAK, czyli Retrieval Augmented Generation, która łączy wyszukiwanie informacji z generatywną sztuczną inteligencją. Dzięki tej metodzie możliwa jest znaczna poprawa jakości odpowiedzi generowanych przez modele językowe. W odcinku Mike wyjaśnia, jak praktycznie wykorzystać tę metodę w różnych sytuacjach, takich jak znajdowanie specyfikacji produktów w czasie rozmowy z klientem czy analiza wyników kampanii marketingowych. RAK znajduje zastosowanie w wielu branżach, a Mike dzieli się z widzami swoimi doświadczeniami oraz spostrzeżeniami na temat budowy efektywnych baz wiedzy.

Podczas prezentacji Mike podkreśla, że kluczowym elementem systemu RAK jest dobrze skonstruowana baza wiedzy. Rozpoczyna się od inwentaryzacji dostępnych źródeł danych, takich jak systemy CRM, intranety czy dokumenty PDF. Właściwy wybór źródeł danych jest istotny, ponieważ różne systemy mogą wymagać różnych działań przy tworzeniu bazy wiedzy. Mike następująco omawia etapy tego procesu, aby skutecznie opracować bazę, która będzie spełniać zapotrzebowania użytkowników.

Kolejnym kluczowym etapem jest przygotowanie danych, które wymaga ich zorganizowania i oczyszczenia. Zasadniczo wszystkie dokumenty muszą być przekształcone w postać tekstową, co umożliwi ich dalszą obróbkę. Mike wyjaśnia również proces chunkingu, który polega na dzieleniu dokumentów na mniejsze fragmenty, co zwiększa efektywność wyszukiwania potrzebnych informacji. Warto pamiętać, że zastosowane strategie chunkingu muszą być dostosowane do celów systemu, co wpływa na jakość późniejszych odpowiedzi.

Wszystko to prowadzi do etapu embeddingu, w którym każdy fragment tekstu jest przetwarzany przez model embeddingowy. Mike zwraca uwagę na różne dostępne modele, zarówno komercyjne, jak i open source, oraz na koszty związane z ich wykorzystaniem. Jak podkreśla, wybrany model ma istotny wpływ na jakość generowanych odpowiedzi przez system RAK. Mike przytacza różne parametry, takie jak długość wektora, które wpływają na skuteczność algorytmu, i wyjaśnia, jak można je przetworzyć na wektory w wektorowej bazie danych.

Na końcu odcinka Mike prezentuje statystyki filmu, które pokazują zainteresowanie tematem; w chwili pisania tego artykułu, film ma 3377 wyświetleń i 183 polubienia. Zachęca również widzów do zadawania pytań i zostawiania komentarzy, jeśli chcą poznać więcej szczegółów na temat metody RAK. Daje też sugestię dotyczące obejrzenia wcześniejszych materiałów, co pozwala lepiej zrozumieć kontekst i praktyczne zastosowania metody RAK.

Toggle timeline summary

  • 00:00 Wprowadzenie do tematu i przygotowanie do nagrania.
  • 00:05 Wyjaśnienie naukowej pomocy w przedstawieniu głównego tematu odcinka: RAK.
  • 00:11 Wprowadzenie RAK jako metody łączącej wyszukiwanie informacji z AI.
  • 00:17 Zalety RAK, takie jak poprawa jakości odpowiedzi i ułatwienie procesów pracy.
  • 00:29 Przykłady praktycznych zastosowań RAK w środowisku zawodowym.
  • 00:56 Wyjaśnienie RAK (Rozszerzona Generacja Wyszukiwania) i jej funkcji.
  • 01:12 Przegląd operacyjnych kroków RAK: wyszukiwanie informacji i przekazywanie jej do modelu językowego.
  • 02:03 Znaczenie dobrze przygotowanej bazy wiedzy dla generowania dokładnych odpowiedzi.
  • 02:09 Omówienie etapu inwentaryzacji w celu określenia niezbędnych źródeł danych.
  • 03:00 Kroki czyszczenia danych i potrzeba formatów tylko tekstowych przed wprowadzeniem do bazy danych.
  • 03:21 Etap dzielenia, podczas którego dokumenty są dzielone na mniejsze części dla efektywnego wyszukiwania informacji.
  • 04:15 Wyjaśnienie strategii dzielenia na podstawie równej długości i jej ograniczeń.
  • 05:29 Wprowadzenie do osadzania (wektoryzacji) jako kluczowego kroku w przetwarzaniu tekstu.
  • 07:44 Omówienie modeli osadzania i ich wpływu na jakość generowanych odpowiedzi.
  • 09:30 Demonstracja, jak zapytać bazę wiedzy i generować odpowiedzi za pomocą RAK.
  • 11:25 Podsumowanie funkcjonalności RAK i zaproszenie do przekazywania opinii od widzów.

Transcription

Mike, już nagrywamy, co tam jeszcze szykujesz? A, to będzie taka pomoc naukowa, aby w prosty sposób zaprezentować główny temat odcinka, czyli RAK. Co to takiego? RAK to metoda, która łączy wyszukiwanie informacji z generatywną sztuczną inteligencją. Dzięki tej metodzie możemy znacznie poprawić jakość odpowiedzi modelu językowego, a także usprawnić i ułatwić sobie pracę. W jaki sposób? Wyobraź sobie, że możesz błyskawicznie znaleźć każdą potrzebną informację do pracy w firmie, np. specyfikację produktu podczas rozmowy z klientem, albo sprawdzić status zadań w projekcie, czy błyskawicznie przeanalizować wyniki poprzednich kampanii marketingowych. Tych przykładów mógłbym wymieniać sporo, ale to właśnie umożliwia RAK. W tym odcinku w prosty sposób wyjaśnię, jak działa system RAK oraz na co zwrócić uwagę przy planowaniu takiego systemu. Zaczynaj, jak to działa? RAK, czyli po angielsku Retrieval Augmented Generation, można przetłumaczyć na język polski jako generowanie wzbogacone wyszukiwaniem. A więc jest to system związany z wyszukiwaniem informacji i generowaniem odpowiedzi przez AI. W praktyce wygląda to tak, że gdy taki system otrzyma zapytanie od użytkownika, to wykonuje dwa główne kroki. Najpierw przeszukuje specjalnie opracowaną bazę wiedzy pod kątem informacji, które mogą być istotne dla zadanego pytania. Taka baza wiedzy jest często określona angielską nazwą Knowledge Base. Natomiast w drugim kroku system RAK przekazuje znalezione informacje do modelu językowego, czyli do sztucznej inteligencji. Na podstawie przekazanych informacji model generuje dla użytkownika dokładną i ładnie sformatowaną odpowiedź. I już? To wszystko? No nie tak szybko. Jak wspomniałem, system RAK musi mieć specjalnie przygotowaną bazę wiedzy. Odpowiednie stworzenie takiej bazy wiedzy jest bardzo istotne dla jakości generowanych odpowiedzi. Dlatego zobacz, jak wygląda budowanie takiego systemu i na co zwrócić uwagę. Okej, pokaż. Pierwszy etap nazwałbym inwentaryzacją. Na tym etapie trzeba ustalić wszystkie dostępne źródła danych, które mogą być potrzebne do generowania odpowiedzi. Źródłem danych może być np. system CRM, intranet, firmowe bazy danych, czy po prostu jakieś dokumenty, w tym także PDF-y. Wybierając źródła danych warto dobrze określić cel systemu, kto będzie zadawał do niego pytania oraz jakich odpowiedzi będzie oczekiwał. Inaczej będzie zbudowany system automatycznej obsługi klienta, a inaczej np. system do analizy prawnej wewnętrznych dokumentów. Większa liczba dokumentów to także wyższe koszty stworzenia bazy wiedzy, ale o tym opowiem za chwilę. Dane pochodzące z różnych systemów mogą być w różnych formatach, więc kolejnym krokiem jest zebranie i czyszczenie danych. Przykładowo pliki w formacie PDF mogą wymagać przekształcenia na zwykły tekst, a pliki dokumentów muszą zostać pozbawione formatowania. Przed kolejnym etapem wszystkie dokumenty muszą mieć postać tekstową. Mając już dokumenty przygotowane do umieszczenia w bazie wiedzy można przejść do kolejnego etapu, czyli chunkingu. Jest to kluczowy etap, dlatego zatrzymajmy się przy nim na chwilę. Otwórzmy sobie przykładowy dokument tekstowy. Jest to tekst z opisem fikcyjnej firmy. Jeśli chcesz znaleźć informację, kto np. kieruje działem sprzedaży w tej firmie, to nie czytasz całego dokumentu, ale starasz się znaleźć fragment, który może zawierać poszukiwaną informację. Można powiedzieć, że nawet nieświadomie dzielisz długi dokument na fragmenty i wybierasz ten, w którym prawdopodobnie znajduje się informacja, kto jest szefem działu sprzedaży. Przygotowując bazę wiedzy dla systemu RAK również trzeba podzielić dokumenty na fragmenty, aby efektywnie wyszukiwać istotne informacje. Jedną z podstawowych strategii chunkingu jest podział na fragmenty o równej długości. Chunk to po angielsku właśnie fragment lub kawałek, dlatego nazywa się to chunking. Ale przecież wtedy zdania mogą zostać ucięte w środku. Słuszna uwaga. Przy takim podziale możemy stracić bardzo ważny kontekst treści, ponieważ znajdzie się na styku dwóch fragmentów. Dlatego można zastosować np. tzw. overlapping, czyli dzielimy tekst na fragmenty, które się na siebie nakładają. Jest szansa, że w ten sposób kontekst treści nie zostanie utracony i znajdzie się w którymś fragmencie. Oczywiście i ta metoda nie jest idealna i powoduje sporą duplikację treści, a co za tym idzie zwiększa koszty i stworzenia bazy wiedzy i aktualizacji danych w przyszłości. A jakbym miał dokument z tabelą? Wtedy overlapping nie pomoże. Strategii i różnych technik podziału dokumentów na fragmenty jest więcej. Wszystko zależy od celów danego systemu i rodzaju danych wejściowych. Można np. wykorzystać model językowy do próby semantycznego podziału tekstu na fragmenty, które będą zawierały wspólny kontekst, ale to już bardziej złożone rozwiązanie i temat na inny odcinek. Okej, ale co daje ten podział na fragmenty? Teraz przechodzimy do etapu trzeciego, który możemy nazwać embeddingiem, czyli osadzaniem. I już wyjaśniam o co chodzi. Polega on na tym, że każdy chang jest przesyłany do specjalnego modelu językowego. Taki model nazwany jest modelem embeddingowym. Zadaniem tego modelu jest wygenerowanie wektora liczb dla przekazanego fragmentu tekstu. I co dalej się dzieje? Poczekaj, poczekaj. Nie ciekawi Cię, jak ten model przekształca tekst na wektor? No jak? Model embeddingowy analizuje tekst semantycznie, przekształcając znaczenie słów i kontekst w wielowymiarową przestrzeń wektorową. Pokażę Ci to na przykładzie. Wezmę chang A, który brzmi W najbliższych latach planujemy ekspansję na rynki zagraniczne oraz dalszy rozwój naszych produktów w oparciu o najnowsze technologie. I teraz wygeneruje dla niego wektor. Jeśli jednak napisałbym ten tekst inaczej, używając innych słów, na przykład firma chce stać się międzynarodowym liderem innowacji i teraz dla niego wygenerował wektor liczb, to widać, że te wektory są bardzo podobne, mimo, że zawierają zupełnie inne słowa. I co z tego? Wektor można rozumieć jako punkt w takiej przestrzeni wielowymiarowej, ale dla uproszczenia, zobacz to w przestrzeni dwuwymiarowej. Punkty z tych changów A i B byłyby blisko siebie. Gdy weźmiemy fragment z zupełnie innym kontekstem, to wygenerowany wektor może znajdować się w zupełnie innym miejscu. Te wektory wraz z fragmentami i metainformacjami zapisywane są do specjalnej bazy danych, tak zwanej wektorowej bazy danych. I właśnie w ten sposób mamy stworzoną wektorową bazę wiedzy. To nawet zrozumiałem. Świetnie, porozmawiajmy więc o pieniądzach. Ale już Ci przecież wszystko oddałem. Po pierwsze nie wszystko, a po drugie mówię o kosztach tworzenia wektorowej bazy wiedzy. Wektoryzacja wymaga modelu embeddingowego. Na rynku dostępne są zarówno modele embeddingowe zamknięte, komercyjne, jak i otwarte open source. Wybór modelu ma znaczenie dla finalnej jakości odpowiedzi generowanych przez RAC. Jednym z podstawowych parametrów modeli embeddingowych jest rozmiar generowanego wektora. Przykładowo OpenAI udostępnia modele embeddingowe, które generują wektory z 1536 wymiarami albo 3072 wymiarami. Koszt wygenerowania jednego wektora, czyli przetworzenia jednego fragmentu tekstu, różni się w obu przypadkach. Zazwyczaj im więcej wymiarów, tym drożej. Istnieją jednak modele np. open source z mniejszą liczbą wymiarów, których koszt wykorzystania może być mniejszy. Warto jednak wiedzieć, że im więcej wymiarów, tym dopasowanie fragmentów może być lepsze, co sprawi także, że finalne odpowiedzi systemu będą bardziej trafne. Poza tym generowanie wektorów często wiąże się z przetwarzaniem danych poufnych czy po prostu wewnętrznych firmowych. W takich przypadkach rozwiązania open source uruchamiane na własnych serwerach mogą okazać się bardziej bezpieczne. Nie omówię wszystkich aspektów, które należy wziąć pod uwagę wybierając modele embeddingowe, ale pamiętaj, że wybór musi zostać poprzedzony dokładną analizą i uwzględniać różne aspekty i ograniczenia. Jak już jesteśmy przy kwestiach nieco technicznych, to warto też zwrócić uwagę na wektorową bazę danych. Na rynku istnieje kilka rozwiązań, które zyskały na popularności dzięki AI. Wybór wektorowej bazy danych to temat na osobny odcinek, ale możesz zobaczyć kilka popularnych rozwiązań takich jak Pinecone, Wayfade, Melvos. Ale czemu to musi być wektorowa baza danych, a nie jakaś zwykła? Jak pamiętasz, RAC to generowanie wzbogacone wyszukiwaniem. Mamy już bazę wiedzy, w której będziemy poszukiwać informacje, a teraz zobacz, jak wygląda proces generowania odpowiedzi. Wtedy wszystko się wyjaśni. Ok, pokaż. Pokażę to na przykładzie. Tworząc bazę wiedzy przetworzyliśmy opis naszej fikcyjnej firmy. Zadajmy więc teraz pytanie, jaka jest strategia firmy? W pierwszym kroku zapytanie jest również wysyłane do modelu embeddingowego. Jak już wiesz, model embeddingowy generuje wektor. Wektor zapytania możemy porównać do wektorów w bazie wiedzy i wybrać te fragmenty, które są zbliżone semantycznie do zadawanego pytania. Zaczynam kapować. Ale żeby nie było tak łatwo, powiem Ci, jak wyszukiwane są wektory fragmentów podobne do wektora zapytania. Najczęściej używana jest odległość kosinusowa, która mierzy kąt między wektorami. Im mniejszy kąt, tym większe podobieństwo, czyli im wartość kosinusowa bliżej jedynki, tym bardziej podobne wektory. Tego na pewno nie zrozumiem. Nie musisz. Tym właśnie zajmuje się wektorowa baza danych. Taka baza ma zaimplementowane algorytmy wyszukiwania zbliżonych wektorów. Dlatego właśnie systemy RAAG buduje się na wektorowych bazach danych, a nie jakichś klasycznych. Gdy w wektorowej bazie danych znalezione zostaną fragmenty podobne do zapytania, to wraz z całym zapytaniem są przekazywane do LLM-a, czyli po prostu do modelu językowego. Może to być jakiś zamknięty model typu ChatGPT, CLOT, ale też open source jak Bielik, LLM czy DeepSeek. Model językowy analizuje pytanie oraz przekazane fragmenty i zwraca pełną precyzyjną odpowiedź dla użytkownika. Możemy nawet zasymulować, jaką odpowiedź wygenerowałby ChatGPT, gdy przekażemy mu wybrane fragmenty oraz pytanie. Zobaczcie. Odpowiedź jest krótka, ale prawdziwa. Niezmyślona. Model nie pyta, o jaką firmę chodzi i nie zadaje dodatkowych pytań. To tyle na dzisiaj. Widzieliście, jak działa RAK i jakie daje możliwości. Jeśli chcecie więcej technicznych detali, dajcie znać w komentarzach. Zachęcam także do obejrzenia poprzednich filmów i do zobaczenia w kolejnym odcinku.