Do czego służy funkcja Retrieval-Augmented Generation (RAG)?

Alan Zeichick | strateg ds. treści technicznych | 19 września 2023 r.

Generatywna sztuczna inteligencja doskonale radzi sobie z udzielaniem odpowiedzi tekstowych na bazie dużych modeli językowych (Large Language Model, LLM), w których sztuczna inteligencja jest trenowana przy użyciu ogromnej liczby punktów danych. Dobra wiadomość jest taka, że wygenerowany w ten sposób tekst jest często łatwy do zrozumienia i zawiera szczegółowe odpowiedzi na zadane temu oprogramowaniu pytania (często nazywane promptami).

Zła wiadomość jest taka, że informacje użyte do wygenerowania odpowiedzi są ograniczone do informacji użytych do wytrenowania sztucznej inteligencji, często wchodzących w skład uogólnionego modelu LLM. Dane LLM mogą być nieaktualne od tygodni, miesięcy lub lat, a korporacyjny czatbot oparty na sztucznej inteligencji może nie mieć dostępu do szczegółowych informacji o oferowanych przez dane przedsiębiorstwo produktach lub usługach. Może to prowadzić do nieprawidłowych odpowiedzi, które zmniejszają zaufanie do sztucznej inteligencji u klientów i pracowników.

Do czego służy funkcja Retrieval-Augmented Generation (RAG)?

W tym miejscu do gry wkracza funkcja RAG. Funkcja RAG optymalizuje wyniki z modelu LLM przy wykorzystaniu konkretnych informacji bez konieczności modyfikowania samego modelu; te konkretne informacje mogą być bardziej aktualne niż informacje z modelu LLM, a także mogą być właściwe dla konkretnej organizacji i branży. Oznacza to, że system generatywnej sztucznej inteligencji może udzielać bardziej kontekstowo osadzonych odpowiedzi na prompty, a także opierać te odpowiedzi na najbardziej aktualnych danych.

Funkcja RAG po raz pierwszy zwróciła uwagę twórców systemów generatywnej sztucznej inteligencji po publikacji w 2020 r. przez Patricka Lewisa i zespół z Facebook AI Research artykułu zatytułowanego „Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” (Generowanie odpowiedzi oparte na pobraniu odpowiednich danych w zadaniach NLP wymagających intensywnego dostępu do wiedzy). Koncepcja RAG została przyjęta przez wielu badaczy akademickich i biznesowych, którzy dostrzegają w niej sposób na znaczną poprawę działania systemów generatywnej sztucznej inteligencji.

Informacje o funkcji Retrieval-Augmented Generation

Rozważmy ligę sportową, która chce, aby fani i przedstawiciele środków przekazu mogli korzystać z czatu w celu uzyskiwania dostępu do jej danych, a także otrzymywania odpowiedzi na pytania dotyczące zawodników, drużyn, historii i zasad gry oraz aktualnych statystyk i wyników. Uogólniony model LLM może odpowiadać na pytania dotyczące historii i zasad gry lub opisać stadion konkretnej drużyny. Nie byłby jednak w stanie omówić wczorajszego meczu ani przekazać aktualnych informacji na temat kontuzji konkretnego sportowca, ponieważ nie ma tych informacji, przy czym biorąc pod uwagę, że model LLM wymaga znacznej mocy obliczeniowej do ponownego treningu, zapewnienie jego aktualności jest niewykonalne.

Oprócz dużego, dość statycznego modelu LLM, liga sportowa ma lub może mieć dostęp do wielu innych źródeł informacji, w tym baz danych, hurtowni danych, biografii zawodników i kanałów informacyjnych, które szczegółowo omawiają każdy mecz. Funkcja RAG pozwala generatywnej sztucznej inteligencji pobrać te informacje. Po takim pobraniu czat może udostępniać informacje bardziej aktualne, dokładniejsze i lepiej dopasowane do kontekstu.

Innymi słowy, dzięki funkcji RAG model LLM udziela lepszych odpowiedzi.

Kluczowe wnioski

  • Funkcja RAG to stosunkowo nowa technologia, która może poprawić jakość działania generatywnej sztucznej inteligencji, dając modelom LLM możliwość korzystania z dodatkowych zasobów danych bez konieczności ponownego treningu.
  • Modele RAG tworzą repozytoria wiedzy bazujące na danych własnych organizacji, przy czym repozytoria te mogą być stale aktualizowane, aby pomóc generatywnej sztucznej inteligencji w udzielaniu aktualnych, kontekstowych odpowiedzi.
  • Czatboty i inne systemy konwersacyjne, które przetwarzają język naturalny, również mogą istotnie skorzystać z funkcji RAG i generatywnej sztucznej inteligencji.
  • Wdrożenie funkcji RAG wymaga technologii takich jak bazy danych wektorowych, które pozwalają na szybkie kodowanie nowych danych i wyszukiwanie ich w modelu LLM.

Jak działa funkcja RAG?

Weźmy pod uwagę wszystkie posiadane przez organizację informacje, w tym uporządkowane bazy danych, nieuporządkowane pliki PDF i inne dokumenty, blogi, kanały informacyjne, transkrypcje czatów z poprzednich sesji obsługi klienta itp. Funkcja RAG tłumaczy tę ogromną ilość danych dynamicznych na wspólny format i przechowuje je w bibliotece wiedzy dostępnej dla systemu generatywnej sztucznej inteligencji.

Dane w tej bibliotece są następnie przetwarzane na reprezentacje numeryczne za pomocą specjalnego typu algorytmu zwanego wektorowym modelem językowym i przechowywane w bazie danych wektorów, którą można szybko przeszukiwać i wykorzystywać do pobierania właściwych informacji kontekstowych.

Funkcja RAG i duże modele językowe (LLM)

Załóżmy teraz, że użytkownik końcowy wysyła systemowi generatywnej sztucznej inteligencji konkretny prompt, na przykład: „Gdzie odbędzie się dzisiejszy mecz, kim są gracze wyjściowi i co o nim mówią dziennikarze?”. Prompt ten zostaje przekształcony w wektor i użyty do wysłania zapytania do bazy danych wektorowych, która pobiera informacje istotne dla kontekstu tego zapytania. Te informacje kontekstowe wraz z oryginalną podpowiedzią są następnie przekazywane do modelu LLM, który generuje odpowiedź tekstową na bazie zarówno swoich nieco nieaktualnych danych ogólnych, jak i aktualnych informacji kontekstowych.

Co ciekawe, o ile proces trenowania uogólnionego modelu LLM jest czasochłonny i kosztowny, o tyle aktualizacja funkcji RAG — wręcz przeciwnie. Nowe dane mogą być ładowane do wektorowego modelu językowego i tłumaczone na wektory w sposób ciągły i przyrostowy. W rzeczywistości odpowiedzi z całego systemu generatywnej sztucznej inteligencji mogą być ponownie przesyłane do funkcji RAG, poprawiając jej wydajność i dokładność, ponieważ w rezultacie funkcja ta już wie, jakiej odpowiedzi udzieliła na podobne pytanie.

Dodatkową korzyścią płynącą z zastosowania funkcji RAG jest to, że korzystając z bazy danych wektorowych, generatywna sztuczna inteligencja może podać konkretne źródło danych cytowanych w jej odpowiedzi, czyli może zrobić coś, do czego model LLM nie jest zdolny. Jeśli zatem w generatywnej sztucznej inteligencji pojawi się niedokładność, dokument zawierający błędne informacje może zostać szybko zidentyfikowany i poprawiony, a następnie poprawione informacje zostaną wprowadzone do bazy danych wektorowych.

Krótko mówiąc, funkcja RAG sprawia, że generatywna sztuczna inteligencja staje się bardziej aktualna, kontekstowa, dokładna i oparta na dobrych źródłach, wykraczając poza to, co model LLM może zapewnić samodzielnie.

Generowanie odpowiedzi oparte na pobraniu odpowiednich danych a wyszukiwanie semantyczne

Funkcja RAG nie jest jedyną techniką stosowaną do poprawy dokładności działania generatywnej sztucznej inteligencji opartej na modelu LLM. Inną techniką jest tutaj wyszukiwanie semantyczne, które pomaga systemowi sztucznej inteligencji zawęzić znaczenie zapytania poprzez dokładne zrozumienie konkretnych słów i zwrotów w prompcie.

Tradycyjne wyszukiwanie skupia się na słowach kluczowych. Na przykład proste zapytanie o gatunki drzew występujące we Francji skutkuje przeszukaniem bazy danych systemu sztucznej inteligencji przy użyciu słów kluczowych „drzewa” i „Francja” i znalezieniem danych zawierających oba te słowa kluczowe, ale system może nie do końca rozumieć znaczenie drzew we Francji i dlatego może pobrać zbyt wiele lub zbyt mało informacji, także błędnych. Wyszukiwanie oparte na słowach kluczowych może również pomijać istotne informacje, ponieważ jest zbyt dosłowne. Na przykład ze względu na brak słowa kluczowego pominięte mogą zostać drzewa rosnące w Normandii, mimo że znajdują się we Francji.

Wyszukiwanie semantyczne wykracza poza wyszukiwanie słów kluczowych, określając znaczenie zapytań i dokumentów źródłowych oraz wykorzystując to znaczenie do uzyskania dokładniejszych wyników. Wyszukiwanie semantyczne jest integralną częścią funkcji RAG.

Używanie funkcji RAG w aplikacjach czatu

Jeśli potrzebna jest natychmiastowa odpowiedź na pytanie, trudno jest dorównać „natychmiastowości” i użyteczności czatbota. Większość botów jest trenowana w zakresie obsługi skończonej liczby intencji (czyli pożądanych przez klienta celów lub wyników) i reaguje na te intencje. Funkcja RAG może sprawić, że czatboty będą działać lepiej, umożliwiając sztucznej inteligencji udzielanie odpowiedzi w języku naturalnym na pytania, które nie znajdują się na liście intencji.

Paradygmat „zadaj pytanie, uzyskaj odpowiedź” sprawia, że czatboty są idealnym zastosowaniem dla generatywnej sztucznej inteligencji. Jest ku temu wiele przyczyn. Zapytania często wymagają określonego kontekstu, aby wygenerować dokładną odpowiedź, a biorąc pod uwagę, że oczekiwania użytkowników czatbotów co do trafności i dokładności są często wysokie, cele zastosowania funkcji RAG wydają się być oczywiste. W rzeczywistości dla wielu organizacji czatboty mogą być punktem wyjścia dla zastosowania funkcji RAG i generatywnej sztucznej inteligencji.

Zapytania często wymagają konkretnego kontekstu, aby udzielić dokładnej odpowiedzi. Zapytania klientów dotyczące na przykład nowo wprowadzonego produktu nie są przydatne i mogą wprowadzać w błąd, jeśli dane dotyczą poprzedniego modelu. Turysta, który chce się dowiedzieć, czy park jest otwarty w najbliższą niedzielę, spodziewa się aktualnych i dokładnych informacji o godzinach otwarcia tego konkretnego parku w tym konkretnym dniu.

Korzyści z funkcji RAG

Funkcja RAG mogą poprawić jakość odpowiedzi generatywnej sztucznej inteligencji na prompty, wykraczając poza możliwości zapewniane przez model LLM działający samodzielnie. Przykładowe korzyści:

  • Funkcja RAG ma dostęp do informacji, które mogą być bardziej aktualne niż informacje użyte do treningu modelu LLM.
  • Dane w repozytorium wiedzy RAG mogą być na bieżąco aktualizowane bez ponoszenia znaczących kosztów.
  • Repozytorium wiedzy RAG może zawierać dane, które są bardziej kontekstowe niż dane w uogólnionym modelu LLM.
  • Źródło informacji w bazie danych wektorowych RAG można zidentyfikować. Skoro źródło danych jest znane, błędne informacje w funkcji RAG można skorygować lub usunąć.

Wyzwania związane z funkcją RAG

Funkcja RAG to stosunkowo nowa technologia, po raz pierwszy zaprezentowana w 2020 r., deweloperzy sztucznej inteligencji nadal się zatem uczą się, jak najlepiej te funkcje wykorzystać w kontekście generatywnej sztucznej inteligencji. Najważniejsze wyzwania to:

  • Poprawa wiedzy organizacyjnej i zrozumienia funkcji RAG ze względu na jej nowość.
  • Rosnące koszty; o ile generatywna sztuczna inteligencja z funkcją RAG będzie droższa w implementacji niż samodzielny model LLM, ścieżka ta jest tańsza niż częste ponowne treningi takiego modelu LLM.
  • Określenie najlepszego sposobu modelowania uporządkowanych i nieuporządkowanych danych w bibliotece wiedzy i bazie danych wektorowych.
  • Opracowanie wymagań dla procesu przyrostowego przesyłania danych do funkcji RAG.
  • Wdrożenie procesów obsługi zgłoszeń o nieścisłościach oraz korygowania lub usuwania niewłaściwych źródeł informacji w systemie RAG.

Przykłady zastosowania funkcji RAG

Przywołać można wiele przykładów generatywnej sztucznej inteligencji rozszerzonej o funkcję RAG.

Firma Cohere, lider w dziedzinie generatywnej sztucznej inteligencji i funkcji RAG, informuje o czatbocie, który może udzielać kontekstowych informacji na temat wynajmu wakacyjnego na Wyspach Kanaryjskich, w tym opartych na faktach odpowiedzi na temat dostępności plaży, ratowników na pobliskich plażach i boisk do siatkówki w odległości krótkiego spaceru.

Firma Oracle opisuje inne zastosowania funkcji RAG, takie jak analiza raportów finansowych, pomoc w odkrywaniu złóż gazu i ropy naftowej, przeglądanie transkrypcji z rozmów telefonicznych z klientami oraz przeszukiwanie medycznych baz danych w celu znalezienia odpowiednich prac badawczych.

Przyszłość funkcji RAG

Obecnie, na wczesnym etapie swojego rozwoju, funkcja RAG służy do udzielania terminowych, dokładnych i kontekstowych odpowiedzi na zapytania. Wspomniane zastosowania są odpowiednie dla czatbotów, poczty e-mail, komunikatorów tekstowych i innych aplikacji konwersacyjnych.

W przyszłości możliwym kierunkiem rozwoju funkcji RAG byłaby pomoc generatywnej sztucznej inteligencji w podejmowaniu odpowiednich działań na bazie informacji kontekstowych i promptów użytkownika. Na przykład, system sztucznej inteligencji z funkcją RAG mógłby zidentyfikować najwyżej ocenianą ofertę wynajmu wakacyjnego na Wyspach Kanaryjskich, a następnie zainicjować rezerwację domku z dwiema sypialniami w niewielkiej odległości od plaży podczas turnieju siatkówki.

Funkcja RAG mogłaby również pomagać w bardziej zaawansowanych zapytaniach. Obecnie generatywna sztuczna inteligencja może być zdolna do poinformowania pracownika o zasadach pracodawcy w zakresie zwrotu kosztów czesnego. Natomiast funkcja RAG mogłaby dodać do tego więcej danych kontekstowych, aby pracownik dowiedział się, które pobliskie szkoły oferują zajęcia pasujące do tych zasad i być może polecić programy dopasowane do godzin pracy pracownika i jego wcześniejszych szkoleń, a może nawet pomóc w ubieganiu się o uczestnictwo w tych programach i złożeniu wniosku o zwrot kosztów.

Generatywna sztuczna inteligencja w rozwiązaniach Oracle

Oracle oferuje szereg zaawansowanych usług sztucznej inteligencji opartych na chmurze, w tym usługę OCI Generative AI w ramach infrastruktury Oracle Cloud Infrastructure (OCI). Oferta Oracle obejmuje niezawodne modele bazujące na unikatowych danych i wiedzy branżowej danej organizacji. Dane klientów nie są udostępniane dostawcom LLM ani widoczne dla innych klientów, a niestandardowe modele trenowane na danych klientów mogą być używane tylko przez danego klienta.

Ponadto Oracle integruje generatywną sztuczną inteligencję z szeroką gamą swoich aplikacji chmurowych, a funkcje generatywnej sztucznej inteligencji są dostępne zarówno dla programistów korzystających z OCI, jak i w całym spektrum baz danych Oracle. Usługi Oracle w zakresie sztucznej inteligencji mają również przewidywalną wydajność i ceny oraz są oferowane do określonych zastosowań w ramach klastrów sztucznej inteligencji z pojedynczym dzierżawcą.

Moc obliczeniowa i potencjał modelu LLM oraz generatywnej sztucznej inteligencji są powszechnie znane i rozumiane, ponieważ kwestie te przez ostatni rok nie schodziły z nagłówków serwisów informacyjnych. Funkcja RAG opiera się na korzyściach płynących z modelu LLM, czyniąc go bardziej aktualnym, dokładnym i wrażliwym kontekstowo. Dla aplikacji biznesowych stosujących generatywną sztuczną inteligencję, funkcja RAG jest ważną technologią, którą należy obserwować, badać i pilotować.

Co sprawia, że rozwiązania Oracle najlepiej nadają się do zastosowania generatywnej sztucznej inteligencji?

Rozwiązania Oracle oferują nowoczesną platformę danych oraz niedrogą, ale wydajną infrastrukturę do obsługi rozwiązań korzystających ze sztucznej inteligencji. Dodatkowe czynniki, w tym zaawansowane, wydajne modele, doskonałe zabezpieczenia danych i wbudowane usługi sztucznej inteligencji pokazują, dlaczego oferta Oracle w zakresie sztucznej inteligencji została rzeczywiście stworzona z myślą o przedsiębiorstwach.

Funkcja RAG — często zadawane pytania

Czy funkcja RAG jest tym samym co generatywna sztuczna inteligencja?

Nie. Funkcja RAG może zapewnić dokładniejsze odpowiedzi na zapytania niż generatywna sztuczna inteligencja, ponieważ RAG wykorzystuje wiedzę zewnętrzną, której w generatywnym modelu LLM jeszcze nie ma.

Z jakiego rodzaju informacji korzysta funkcja RAG?

Funkcja RAG może korzystać z danych pochodzących z wielu źródeł, w tym z relacyjnych baz danych, repozytoriów nieuporządkowanych dokumentów, strumieni danych internetowych, kanałów informacyjnych, transkrypcji audio i dzienników transakcji.

Jak generatywna sztuczna inteligencja korzysta z funkcji RAG? .

Dane ze źródeł danych przedsiębiorstwa są przenoszone do repozytorium wiedzy, a następnie konwertowane na wektory przechowywane w bazie danych wektorowych. Gdy użytkownik końcowy wysyła zapytanie, baza danych wektorowych pobiera odpowiednie informacje kontekstowe. Te informacje kontekstowe, wraz z zapytaniem, są wysyłane do dużego modelu językowego, który wykorzystuje kontekst do generowania bardziej aktualnych, dokładnych i kontekstowych odpowiedzi.

Czy funkcja RAG może cytować odniesienia do danych, które pobiera?

Tak. Bazy danych wektorowych i repozytoria wiedzy używane przez funkcję RAG zawierają określone informacje o źródłach informacji. Oznacza to, że źródła te mogą być cytowane, a jeśli jedno z nich zawiera błąd, można go szybko poprawić lub usunąć, aby kolejne zapytania nie zwracały błędnych informacji.