Modele i platformy AI

Głębokie wprowadzenie do Retrieval-Augmented Generation w LLM

mm
Dodaj Unite.AI do preferowanych źródeł w Google

Wyobraź sobie, że jesteś analitykiem i masz dostęp do Large Language Model. Jesteś podekscytowany perspektywami, które ono przyносzi do Twojej pracy. Ale potem pytasz go o najnowsze ceny akcji lub obecny wskaźnik inflacji, a on odpowiada Ci:

“Przepraszam, ale nie mogę zapewnić danych w czasie rzeczywistym lub po dacie zakończenia szkolenia. Moje ostatnie dane szkoleniowe sięgają tylko do stycznia 2022 roku.”

Large Language Model, pomimo swojej językowej mocy, brakuje zdolności do pojmowania “teraźniejszości”. A w szybko zmieniającym się świecie “teraźniejszość” jest wszystkim.

Badania wykazały, że duże pre-trenowane modele językowe (LLM) są również repozytorium wiedzy faktograficznej.

Zostały one przeszkolone na tak ogromnych ilościach danych, że wchłonęły wiele faktów i liczb. Po dalszym szkoleniu mogą osiągać wyjątkowe wyniki w różnych zadaniach NLP.

Jednak tutaj jest haczyk: ich zdolność dostępu i manipulowania tym przechowywanym knowledge jest czasem nieidealna. Szczególnie gdy zadanie wymaga wiedzy, te modele mogą pozostawać w tyle za bardziej wyspecjalizowanymi architekturami. To jak mieć bibliotekę ze wszystkimi książkami na świecie, ale bez katalogu, aby znaleźć to, czego potrzebujesz.

OpenAI’s ChatGPT otrzymuje przeglądanie

Ostatnie ogłoszenie OpenAI o możliwości przeglądania ChatGPT jest znaczącym skokiem w kierunku Retrieval-Augmented Generation (RAG). Z ChatGPT, który teraz może przeszukiwać internet w celu uzyskania bieżących i autorytatywnych informacji, odzwierciedla podejście RAG, dynamicznie ściągając dane z zewnętrznych źródeł, aby zapewnić wzbogacone odpowiedzi.

https://twitter.com/OpenAI/status/1707077710047216095

Obecnie dostępne dla użytkowników Plus i Enterprise, OpenAI planuje wdrożyć tę funkcję dla wszystkich użytkowników wkrótce. Użytkownicy mogą aktywować ją, wybierając “Przeglądaj z Bing” w opcji GPT-4.

Nowa funkcja przeglądania ChatGPT

Nowa funkcja przeglądania ChatGPT

 Inżynieria promtu jest skuteczna, ale niewystarczająca

Prompty służą jako brama do wiedzy LLM. Kierują modelem, zapewniając kierunek odpowiedzi. Jednak tworzenie skutecznego promtu nie jest pełnym rozwiązaniem, aby uzyskać to, czego potrzebujesz od LLM. Nadal jednak przejdźmy przez beberapa dobre praktyki, które należy wziąć pod uwagę przy pisaniu promtu:

  1. Wyraźność: Dobrze zdefiniowany promt eliminuje niejasność. Powinien być prosty, zapewniając, że model rozumie intencję użytkownika. Ta wyraźność często przekłada się na bardziej spójne i istotne odpowiedzi.
  2. Kontekst: Szczególnie dla obszernych danych wejściowych, umieszczenie instrukcji może wpłynąć na dane wyjściowe. Na przykład przeniesienie instrukcji na koniec długiego promtu może często dawać lepsze wyniki.
  3. Dokładność w instrukcji: Siła pytania, często przekazywana przez ramę “kto, co, gdzie, kiedy, dlaczego, jak”, może skierować model w stronę bardziej ukierunkowanej odpowiedzi. Dodatkowo określenie pożądanego formatu danych wyjściowych lub rozmiaru może dalej udoskonalić dane wyjściowe modelu.
  4. Obsługa niepewności: Ważne jest, aby nakierować model, jak ma odpowiedzieć, gdy jest niepewny. Na przykład instruowanie modelu, aby odpowiedzieć “Nie wiem”, gdy jest niepewny, może zapobiec generowaniu nieprecyzyjnych lub “halucynacyjnych” odpowiedzi.
  5. Myślenie krok po kroku: Dla złożonych instrukcji, nakierowanie modelu, aby myślał systematycznie lub rozbijał zadanie na podzadania, może prowadzić do bardziej kompletnych i dokładnych danych wyjściowych.

W odniesieniu do ważności promtów w kierowaniu ChatGPT, obszerny artykuł można znaleźć w artykule na Unite.ai.

Wyzwania w modelach generatywnych AI

Inżynieria promtu obejmuje dostosowanie dyrektyw podanych modelowi w celu poprawy jego wydajności. Jest to bardzo efektywny sposób na zwiększenie dokładności aplikacji Generatywnego AI, wymagający tylko niewielkich modyfikacji kodu. Podczas gdy inżynieria promtu może znacząco poprawić dane wyjściowe, ważne jest, aby zrozumieć wewnętrzne ograniczenia dużych modeli językowych (LLM). Dwa podstawowe wyzwania to halucynacje i przerwy wiedzy.

  • Halucynacje: Odnosi się to do przypadków, w których model z pewnością zwraca niepoprawną lub sfabrykowaną odpowiedź. Chociaż zaawansowane LLM mają wbudowane mechanizmy rozpoznawania i unikania takich danych wyjściowych.
Halucynacje w LLM

Halucynacje w LLM

  • Przerwy wiedzy: Każdy model LLM ma datę zakończenia szkolenia, po której nie jest świadomy zdarzeń lub rozwoju. To ograniczenie oznacza, że wiedza modelu jest zamrożona w momencie jego ostatniej daty szkolenia. Na przykład model przeszkolony do 2022 roku nie będzie wiedział o zdarzeniach z 2023 roku.
Przerwa wiedzy w LLM

Przerwa wiedzy w LLM

Retrieval-augmented generation (RAG) oferuje rozwiązanie tych wyzwań. Pozwala modelom uzyskać dostęp do zewnętrznych informacji, łagodząc problemy halucynacji, zapewniając dostęp do danych specyficznych dla domeny lub nieobjętych treścią szkoleniową modelu.

To również pozwala LLM na pobieranie danych z różnych zewnętrznych źródeł w czasie rzeczywistym. Mogą to być bazy wiedzy, bazy danych lub nawet ogromny zbiór internetu.

Wprowadzenie do Retrieval-Augmented Generation

Retrieval-augmented generation (RAG) jest ramą, a nie konkretną technologią, umożliwiającą dużym modelom językowym korzystanie z danych, na których nie zostały przeszkolone. Istnieje wiele sposobów implementacji RAG, a najlepsze dopasowanie zależy od konkretnego zadania i natury danych.

Rama RAG działa w sposób uporządkowany:

Wejście promtu

Proces zaczyna się od wejścia użytkownika lub promtu. Mogą to być pytania lub oświadczenia szukające określonych informacji.

Pobieranie z zewnętrznych źródeł

Zamiast generować odpowiedź bezpośrednio na podstawie szkolenia, model, z pomocą składnika pobierającego, przeszukuje zewnętrzne źródła danych. Te źródła mogą sięgać od baz wiedzy, baz danych i magazynów dokumentów po dane dostępne w internecie.

Poznanie pobierania

W swej istocie pobieranie odbija operację wyszukiwania. Chodzi o wydobycie najbardziej istotnych informacji w odpowiedzi na wejście użytkownika. Ten proces można podzielić na dwa etapy:

  1. Indeksowanie: Można uznać, że najtrudniejszą częścią całej podróży RAG jest indeksowanie bazy wiedzy. Proces indeksowania można podzielić na dwie fazy: Ładowanie i Dzielenie. W narzędziach takich jak LangChain, te procesy są określane jako “ładuj” i “dziel”. Ładuj pobiera treści z różnych źródeł, takich jak strony internetowe lub pliki PDF. Po pobraniu dziel je na mniejsze, zoptymalizowane kawałki, idealne do osadzania i wyszukiwania.
  2. Wyszukiwanie: Jest to akt wydobycia najbardziej istotnych fragmentów wiedzy na podstawie frazy wyszukiwania.

Chociaż istnieje wiele sposobów podejścia do pobierania, od prostego dopasowania tekstu do korzystania z wyszukiwarek takich jak Google , nowoczesne systemy RAG opierają się na wyszukiwaniu semantycznym. W sercu wyszukiwania semantycznego leży pojęcie osadzania.

Osadzanie jest centralne dla tego, jak duże modele językowe (LLM) rozumieją język. Gdy ludzie próbują wyjaśnić, jak pojmują znaczenie słów, wyjaśnienie często wraca do wrodzonego zrozumienia. Głęboko w naszych strukturach kognitywnych rozpoznajemy, że “dziecko” i “maluch” są synonimami, lub że “czerwony” i “zielony” oznaczają kolory.

Uzupełnienie promtu

Pobrane informacje są następnie łączone z oryginalnym promtem, tworząc uzupełniony lub rozszerzony promt. Ten uzupełniony promt zapewnia modelowi dodatkowy kontekst, co jest szczególnie cenne, jeśli dane są specyficzne dla domeny lub nie są częścią oryginalnego korpusu szkoleniowego modelu.

Generowanie uzupełnienia

Z uzupełnionym promtem, model generuje uzupełnienie lub odpowiedź. Odpowiedź ta nie jest oparta tylko na szkoleniu modelu, ale również poinformowana o danych w czasie rzeczywistym pobranych z zewnętrznych źródeł.

Retrieval-Augmented Generation

Retrieval-Augmented Generation

Architektura pierwszego RAG LLM

Artykuł badawczy opublikowany przez Meta w 2020 roku “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” zapewnia szczegółowy wgląd w tę technikę. Model Retrieval-Augmented Generation uzupełnia tradycyjny proces generowania o zewnętrzny mechanizm wyszukiwania. Pozwala to modelowi pobrać istotne informacje z ogromnych zbiorów danych, wzmacniając jego zdolność do generowania odpowiedzi kontekstowo dokładnych.

Oto jak to działa:

  1. Pamięć parametryczna: Jest to tradycyjny model językowy, taki jak model sekwencja-do-sekwencji. Został przeszkolony na ogromnych ilościach danych i wie wiele.
  2. Pamięć nieparametryczna: Można to uznać za wyszukiwarkę. Jest to gęsty indeks wektorowy, na przykład Wikipedii, który można uzyskać za pomocą neuralowego pobierającego.

Po połączeniu tworzą one dokładny model. Model RAG najpierw pobiera istotne informacje z pamięci nieparametrycznej, a następnie wykorzystuje swoją wiedzę parametryczną, aby wydać spójną odpowiedź.

Oryginalny model RAG autorstwa Meta

Oryginalny model RAG autorstwa Meta

1. Dwuetapowy proces:

Model RAG LLM działa w dwuetapowym procesie:

  • Pobieranie: Model najpierw wyszukuje istotne dokumenty lub fragmenty z dużej bazy danych. Robi to za pomocą gęstego mechanizmu pobierania, który wykorzystuje osadzanie do reprezentowania zarówno zapytania, jak i dokumentów. Osadzanie jest następnie używane do obliczania wyników podobieństwa, a najwyżej sklasyfikowane dokumenty są pobierane.
  • Generowanie: Z najwyżej sklasyfikowanymi dokumentami w ręku, są one kanałowane do generatora sekwencja-do-sekwencji wraz z pierwotnym zapytaniem. Ten generator następnie tworzy ostateczne dane wyjściowe, czerpiąc kontekst zarówno z zapytania, jak i pobranych dokumentów.

2. Gęste pobieranie:

Tradycyjne systemy pobierania często polegają na rzadkich reprezentacjach, takich jak TF-IDF. Jednak model RAG LLM wykorzystuje gęste reprezentacje, gdzie zarówno zapytanie, jak i dokumenty są osadzane w ciągłych przestrzeniach wektorowych. Pozwala to na bardziej nuansowane porównania podobieństwa, przechwytując relacje semantyczne poza prostym dopasowaniem słów kluczowych.

3. Generowanie sekwencja-do-sekwencji:

Pobrane dokumenty działają jako rozszerzony kontekst dla modelu generującego. Ten model, często oparty na architekturach takich jak Transformatory, generuje ostateczne dane wyjściowe, zapewniając, że są one spójne i kontekstowo istotne.

Wyszukiwanie dokumentów

Indeksowanie i wyszukiwanie dokumentów

Dla wydajnego pobierania informacji, szczególnie z dużych dokumentów, dane są często przechowywane w bazie danych wektorowej. Każdy kawałek danych lub dokument jest indeksowany na podstawie wektora osadzania, który przechwytuje istotę semantyczną treści. Wydajne indeksowanie zapewnia szybkie pobieranie istotnych informacji na podstawie wejścia użytkownika.

Bazy danych wektorowych

Baza danych wektorowej

Źródło: Redis

Bazy danych wektorowych, czasem określane jako magazyny wektorowe, są bazami danych przystosowanymi do przechowywania i pobierania danych wektorowych. W dziedzinie AI i informatyki wektory są podstawowo listami liczb reprezentującymi punkty w wielowymiarowej przestrzeni. W przeciwieństwie do tradycyjnych baz danych, które są bardziej dostosowane do danych tabelarycznych, bazy danych wektorowych wyróżniają się w zarządzaniu danymi, które naturalnie pasują do formatu wektorowego, takimi jak osadzania z modeli AI.

Niektóre znaczące bazy danych wektorowych obejmują Annoy, Faiss od Meta, Milvus i Pinecone. Bazy te są kluczowe w aplikacjach AI, pomagając w zadaniach od systemów rekomendacji po wyszukiwanie obrazów. Platformy takie jak AWS oferują również usługi dostosowane do potrzeb baz danych wektorowych, takie jak Amazon OpenSearch Service i Amazon RDS dla PostgreSQL. Usługi te są optymalizowane dla konkretnych przypadków użycia, zapewniając wydajne indeksowanie i wyszukiwanie.

Dzielenie na fragmenty dla istotności

Ponieważ wiele dokumentów może być obszernych, technika znana jako “dzielenie” jest często stosowana. Polega ona na rozbijaniu dużych dokumentów na mniejsze, spójne fragmenty semantyczne. Następnie te fragmenty są indeksowane i pobierane według potrzeby, zapewniając, że najbardziej istotne części dokumentu są wykorzystywane do uzupełnienia promtu.

Zagadnienia okna kontekstowego

Każdy LLM działa w oknie kontekstowym, które jest podstawowo maksymalną ilością informacji, które może rozważyć jednocześnie. Jeśli zewnętrzne źródła danych dostarczają informacje, które przekraczają to okno, muszą być one rozbite na mniejsze fragmenty, które mieszczą się w oknie kontekstowym modelu.

Korzyści z wykorzystania Retrieval-Augmented Generation

  1. Poprawiona dokładność: Dzięki wykorzystaniu zewnętrznych źródeł danych, model RAG LLM może generować odpowiedzi, które nie są oparte tylko na danych szkoleniowych, ale również poinformowane o najbardziej istotnych i aktualnych informacjach dostępnych w korpusie pobierania.
  2. Przekroczenie luk wiedzy: RAG skutecznie rozwiązuje wewnętrzne ograniczenia wiedzy LLM, niezależnie od tego, czy jest to spowodowane datą zakończenia szkolenia modelu, czy brakiem danych specyficznych dla domeny w korpusie szkoleniowym.
  3. Wszechstronność: RAG może być zintegrowany z różnymi zewnętrznymi źródłami danych, od baz danych wewnątrz organizacji po publicznie dostępne dane internetowe. To sprawia, że jest on adaptowalny do szerokiego zakresu aplikacji i branż.
  4. Redukcja halucynacji: Jednym z wyzwań związanych z LLM jest potencjał “halucynacji” lub generowania faktograficznie niepoprawnych lub sfabrykowanych informacji. Dzięki zapewnieniu kontekstu danych w czasie rzeczywistym, RAG może znacząco zmniejszyć szanse na takie dane wyjściowe.
  5. Skalowalność: Jedną z podstawowych korzyści modelu RAG LLM jest jego zdolność do skalowania. Dzięki oddzieleniu procesów pobierania i generowania, model może efektywnie obsłużyć ogromne zbiory danych, co sprawia, że jest on odpowiedni do aplikacji świata rzeczywistego, gdzie dane są obfite.

Wyzwania i rozważania

  • Nadmiar obliczeniowy: Dwuetapowy proces może być obciążający obliczeniowo, szczególnie przy dużych zbiorach danych.
  • Zależność od danych: Jakość pobranych dokumentów ma bezpośredni wpływ na jakość generowania. Dlatego posiadanie kompleksowej i dobrze utrzymanej bazy danych pobierania jest kluczowe.

Podsumowanie

Poprzez integrację procesów pobierania i generowania, Retrieval-Augmented Generation oferuje solidne rozwiązanie dla zadań wymagających wiedzy, zapewniając dane wyjściowe, które są zarówno poinformowane, jak i kontekstowo istotne.

Prawdziwa obietnica RAG leży w jego potencjalnych aplikacjach w świecie rzeczywistym. Dla sektorów takich jak opieka zdrowotna, gdzie terminowe i dokładne informacje mogą być kluczowe, RAG oferuje możliwość wydobycia i generowania spostrzeżeń z ogromnych zbiorów literatury medycznej w sposób bezproblemowy. W dziedzinie finansów, gdzie rynki ewoluują z minuty na minutę, RAG może dostarczyć dane napędzane przez dane w czasie rzeczywistym, ułatwiając podejmowanie świadomych decyzji. Ponadto w środowisku akademickim i badawczym, uczeni mogą wykorzystywać RAG do przeszukiwania ogromnych repozytoriów informacji, czyniąc przeglądy literatury i analizę danych bardziej efektywnymi.

Przez ostatnie pięć lat zanurzałem się w fascynującym świecie Machine Learning i Deep Learning. Moja pasja i ekspertyza doprowadziły mnie do udziału w ponad 50 różnorodnych projektach inżynierii oprogramowania, ze szczególnym uwzględnieniem AI/ML. Moja nieustanna ciekawość również skierowała mnie w stronę Natural Language Processing, dziedziny, którą chcę dalej eksplorować.