post_header_image
Powrót

Inteligentni asystenci a LLM-y

Siła rozwiązań ChatGPT i alternatyw dała nam poczucie, iż posiadają ogromną wiedzę, która pozwala odpowiadać na wszelkie pytanie. Po prostu wystarczy podłączyć się do nich po API, by mieć zintegrowaną wyrocznię wiedzy w naszym systemie. Diabeł, jak zwykle, tkwi w szczegółach. Co się stanie, gdy LLM (ang. large language models) zmyśli coś, nie zna najświeższych informacji. Są bowiem systemy, jak rządowe e-usługi dla Obywateli, w których aktualność i pewność danych są kluczowym aspektem.

Rewolucja AI


#deep learning, transformery, boty, wyszukiwarki, hiperautomatyzacja


Rewolucja AI, której obecnie doświadczamy, zaczęła się dużo wcześniej. Jedni wymieniają konkurs ImageNet z 2012 i zwycięstwo sieci konwolucyjnej AlexNet jako pierwszy silny sygnał nadejścia ery głębokich sieci neuronowych, ci bardziej skupieni na NLP wskazują na pracę “Attention Is All You Need” z 2017, w której zaproponowano nową architekturę sieci o nazwie Transformer. Wszystkie w/w wydarzenia, czyli rozwój metod głębokiego uczenia, a następnie wysyp modeli opartych na architekturze Transformer, ostatecznie doprowadziły do kolejnego epokowego wydarzenia – oddania społeczeństwu ChatGPT w roku 2022. Łatwość użycia ChatGPT, jego głęboka ogólna wiedza dały mu szerokie rzesze użytkowników, którzy wykorzystują go poprzez proste zadawanie pytań w języku naturalnym aż po różne bardziej wysublimowane techniki tworzenia wejścia jak few shot learning. Po sukcesie ChatGPT w roku 2023 pojawił się wysyp różnych otwartych modeli LLM wystrojonych na dużych korpusach instrukcji jak Llama czy Mistral. Świat LLM-ów wyraźnie przyspiesza. Możliwości zastosowania LLM-ów w cyfrowych narzędziach jest bardzo dużo. Przyszłość pokaże nam prawdziwy zakres ich zastosowania. Od najniżej wiszących owoców wdrożenia LLM-ów – wszelkich botów (np. asystenci w call center, helpdeskach), automatyzacji procesów (np. IDP – Intelligent Document Processing) po ewolucję wyszukiwarek (uzupełnianie listy wyników elementami generatywnymi zawierającymi proponowaną odpowiedź w języku naturalnym).
W rozwoju ludzkości miała już miejsce rewolucja przemysłowa, potem szereg rewolucji technologicznych, naukowo-technicznych (motoryzacja, środki masowego przekazu), a teraz przyszedł czas na LLM-y.

LLMy


#halucynacje, brak najświeższych informacji


Co to są te LLMy?
Pierwsze, co zrobiłem, próbując podać zgrubną definicję LLM-ów, była próba odnalezienia definicji w polskiej Wikipedii. Założyłem istnienie artykułów, takich jak ‘LLM’ czy ‘duży model językowy’, jednak, o dziwo, nie ma takich stron zawierających definicję, więc postanowiłem sam troszkę napisać, jak ja to widzę. Dodam, że na stronie Instytutu Slawistyki PAN znalazłem dobry opis LLM-ów napisany z myślą o językoznawcach.

LLM – to generatywny neuronowy model językowy, który został wstępnie wytrenowany na ogromnych zbiorach danych tekstowych (nazywa się go wtedy modelem fundamentalnym), który potrafi generować tekst słowo po słowie na podstawie podanego mu wejściowego tekstu. W angielskich materiałach pojawiają się kluczowe słowa ‘prompt’ i ‘completion’; przy czym ‘prompt’ – to wejściowy tekst do modelu, a completion – wygenerowany przez model tekst wyjściowy. Takie modele następnie są strojone na korpusach instrukcji, które zawierają różne polecenia/zadania z przykładowymi ich rozwiązaniami, np. sklasyfikuj tekst, streść tekst, odpowiedz na pytanie zamknięte lub otwarte, rozwiąż zadanie matematyczne. Na dalszych etapach dochodzi do wychowania na bazie korpusów preferencji (tu dochodzi do wykorzystania informacji, jak ludzie oceniają odpowiedzi modelu, aby poprawić sam model). To wszystko wykonane pozwala nam zbudować silne modele konwersacyjne, jak popularny ChatGPT, Claude czy Gemini. Łatwość odpytania tych modeli i uzyskania tony poprawnych informacji pobudza wyobraźnię – skłania użytkowników do użycia ich jako jedynego sposobu do pozyskiwania wszelkich informacji. Problem, jaki się pojawia w trakcie użytkowania LLM-ów, to aktualność ujętych w nich danych (chodzi o to, jakie dane widziały te modele podczas uczenia). Dodatkowo należy pamiętać, iż proces wstępnego treningu jest bardzo kosztochłonny, oznacza to, że nie odbywa się w sposób ciągły. Dodatkowo zbieranie korpusów danych do treningu nie musi obejmować interesujących nas dokumentów. Wszystko to sprawia, że model może nie potrafić odpowiedzieć na nasze specjalistyczne pytania, a w konsekwencji – dochodzi do kolejnego ryzyka, którym jest zmyślanie (zwane halucynacją).

Sprawdziłem powyższe hipotezy, pytając ChatGPT i Claude o kilka kwestii dotyczących ustaw podpisanych przez Prezydenta RP w lutym 2024, np. ustawy z 9 II o zmianie ustawy o pomocy obywatelom Ukrainy w związku z konfliktem zbrojnym na terytorium tego państwa. Nie był w stanie nic konkretnego odpowiedzieć, odesłał mnie do poszukiwania informacji na stronach odpowiednich organów. Potem zadałem mu kilka pytań dotyczących rozporządzeń wojewodów w sprawie odstrzałów sanitarnych zwierząt, odpowiedź, jaką dostałem, nie bazowała na faktycznych rozporządzeniach tychże organów, ale została wygenerowana na bazie artykułu dziennikarskiego z 6 lutego bieżącego roku 2024 https://wiadomosci.dziennik.pl/wydarzenia/artykuly/9425285,kilka-tysiecy-dzikow-do-odstrzalu-wojewodowie-wydali-wyrok-dzialacze . Po krótkiej analizie okazało się również, że zdecydowanie więcej wojewodów niż tylko trzech wydało analogiczną decyzję.

chat_window

Na te wszystkie przypadłości LLM-ów, tzn. brak aktualnej domenowej informacji, kosztochłonność aktualizacji LLM-ów, skłonność do halucynacji, odpowiedzią jest podejście RAG.

RAG


RAG to skrót od angielskiego Retrieval Augmented Generation, które można oddać polskim opisem: generowanie oparte na wyszukanych danych. Wiem, wiem, to nie jest piękne i dokładne tłumaczenie, ale chciałem w nim zawrzeć kilka istotnych elementów. Mianowicie – zaakcentować dwa procesy “wyszukiwania” i “generowania” w działaniu sekwencyjnym w rodzaju potoku „pobierz, a następnie wygeneruj”, który najpierw pobiera kilka/kilkanaście/kilkaset najlepszych właściwych bloków tekstu (zwanych dalej pasażami lub kontekstami - są to fragmenty oryginalnych dokumentów) z zamkniętego korpusu, takiego jak korpus dokumentów odpowiedniego urzędu/agencji, a następnie mając już kolekcję top N wyszukanych pasaży (zawierających z dużym prawdopodobieństwem potencjalne odpowiedzi na nasze pytania) przystępuje do procesu przewidywania konkretnej odpowiedzi w ramach tych pasaży. Proces przewidywania konkretnej odpowiedzi zostaje zlecony odpowiednio dostrojonemu LLM-owi, który pełni rolę generatora danych obejmujących podane w prompcie pytanie i konteksty w postaci kolekcji wyszukanych pasaży, by w efekcie wygenerować z modelu na wyjściu finalną odpowiedź.

Podejście RAG opiera się na badaniach prowadzonych przez zespół firmy META (Lewis Patrick, et al. "Retrieval-augmented generation for knowledge-intensive nlp tasks.", 2020). Naukowcy z firmy Meta zaproponowali połączenie komponentów wyszukiwania z LLM-ami tak, by modele językowe były bardziej inteligentne i skuteczne w generowaniu odpowiedzi w zamkniętych domenach, w których duże (niedziedzinowe) LLM-y mogą być obarczone wcześniej wymienionymi wadami, jak brak informacji z zamkniętej domeny czy zmyślanie wyników (halucynacja).

Dodatkowe zalety podejścia RAG to:
  • łatwa weryfikowalność, gdyż konteksty/pasaże przekazywane generatorowi są fragmentami z dokumentów wewnętrznych, stron internetowych, co oznacza, że można je podlinkować, a to daje możliwość łatwej weryfikacji przez człowieka;
  • wydajność i aspekt kosztowy, gdyż podejścia RAG są szybsze i tańsze niż domenowe adaptowanie dużych modeli językowych za pomocą nowych specjalizowanych korpusów dokumentów.


Jednym z zadań projektu PLLuM jest stworzenie polskiego inteligentnego asystenta dla administracji publicznej. Jest to bardzo ważne wyzwanie dla polskiego społeczeństwa i gospodarki. Prognozowane jest, że do 2030 roku istotna liczba spraw kluczowych dla obywateli w kontakcie z administracją publiczną może zostać skutecznie obsłużona przez AI. Polski inteligentny asystent w administracji publicznej zostanie zaprojektowany i opracowany z użyciem wyżej opisanego podejścia RAG.

Na tym etapie projektu tworzymy właśnie narzędzia do łatwego budowania RAG-ów o różnej konfiguracji (np. składowych modeli) i ich szybkiego testowania przez ludzi ( bardzo ważnym aspektem walidacji rozwiązań opartych na LLM-ach jest czynnik ludzkiej percepcji, o czym napiszę jeszcze niejeden materiał ), a także zbieramy odpowiedniej jakości zbiory danych, które będą kluczowe między innymi dla utworzenia modułów wyszukiwania; strojenia LLM-ów do zadania generowania odpowiedzi.

Następnie wykorzystując wcześniej opracowany silnik RAG-owy zbudujemy aplikację internetową z odpowiednio zaprojektowanym interfejsem użytkownika. Zostanie ona udostępniona w wybranych instytucjach w ramach demonstracyjnego wdrożenia.