Wykorzystanie LLM w swojej bazie wiedzy specyficznej dla Twojej domeny
Zadaj ChatGPT pytanie o pochodzenie słowa „maraton”, a dokładnie powie ci, jak Herodot opisał legendarny 42-kilometrowy bieg, który Pheidippides pokonał z Maratonu do Aten, zanim upadł z wyczerpania.
Ale co z listą przepisów mojej babci? Jasne, mogę zdigitalizować te przepisy, nie ma problemu. Ale co, jeśli chcę uzyskać poradę, jaki posiłek przygotować na podstawie składników w mojej lodówce, mojego ulubionego koloru i nastroju na dany dzień?
Zobaczmy, czy da się to zrobić bez załamania ze zmęczenia.
LLM, pokonuj swoje ograniczenia… i przekraczaj je
LLM to model dużego języka. GPT-4 OpenAI to jeden przykład, a LLamA Meta to kolejny. Dokonujemy tutaj świadomego wyboru, aby trzymać się ogólnego terminu LLM w odniesieniu do tych modeli. Pamiętaj: każdy z tych modeli został przeszkolony na gigantycznym zbiorze (publicznie dostępnych) danych.
Do tej pory wyraźnie wykazano, że te LLM mają znaczące zrozumienie języka ogólnego i że są w stanie (od)tworzyć informacje istotne dla informacji, które były obecne w ich danych szkoleniowych. Właśnie dlatego narzędzia generatywne, takie jak ChatGPT, zaskakująco dobrze radzą sobie z odpowiadaniem na pytania dotyczące tematów, z którymi spotkał się LLM podczas szkolenia.
Ale to, co pozostaje poza bezpośrednim zasięgiem tych ogromnych LLM, to dane, które są tak cenne w każdej organizacji: wewnętrzna baza wiedzy. Pytanie, które masowo się pojawia, brzmi:
Jak możemy wykorzystać moc tych LLM do odblokowywania informacji przechowywanych w określonej bazie wiedzy, na której pierwotnie nie były one szkolone?
Och, dobrze, więc aby to zrobić, czy nie możemy po prostu wprowadzić naszej wewnętrznej bazy wiedzy jako dodatkowych danych, na których należy szkolić LLM? Lub, jeśli chcesz, możemy dostroić LLM w oparciu o naszą specyficzną bazę wiedzy.
Tak, najprawdopodobniej możesz. Ale aby uzyskać wiarygodne odpowiedzi na pytania, może to nie być droga.
Dlaczego dostrajanie nie zawsze wystarcza
Poznaj Billy'ego mola książkowego. Billy jest dużym modelem językowym i pochłonął gigantyczną ilość informacji online, wzmacniając ogromną wiedzę. Jednak Bily, choć mądry, nie przeczytał książek z twojej bardzo specyficznej domowej biblioteki.
Dostrajanie polega na tym, że przedstawiasz Billy'emu Mólowi Książkowemu wszystkie książki z Twojej bardzo konkretnej bazy wiedzy i pozwalasz mu pożreć wszystkie te smakowite dodatkowe informacje. W ten sposób mol książkowy LLM, Billy, nie tylko zna wszystkie te ogólne informacje, ale także „wie” dużo o zawartości Twojej konkretnej bazy wiedzy.
Gratulacje, dzięki temu procesowi dostrajania zmieniłeś Billy'ego w bardzo specyficznego Billy'ego, który tak dużo wie o Twojej konkretnej domenie! Poniżej pokazujemy, jak możesz zacząć wprowadzać Billy'ego do pracy. Zadając pytania swojemu ulepszonemu molowi książkowemu, możesz oczekiwać odpowiedzi, które wykorzystują zarówno informacje z jego gigantycznego ogólnego zbioru treningowego, jak i informacje przechowywane w Twojej konkretnej bazie wiedzy.
Choć z pewnością potężne, kluczowym problemem związanym z tym podejściem do rozwiązania jest to, że wciąż nie masz wglądu w to, w jaki sposób Twój mól książkowy znalazł odpowiedzi. Co więcej, dostrajanie LLM ma swoje (kosztowne) konsekwencje.
Wymieniamy główne powody, dla których dostrajanie Billy'ego jest krótkie:
- Brak klarowności źródła . Trudno jest zapobiec halucynacjom, a twój LLM nie ma wyraźnego rozróżnienia między wiedzą „ogólną” i „specyficzną”.
- Brak ograniczeń dostępu. Wyobraź sobie przypadek, w którym niektórzy użytkownicy powinni mieć możliwość wyszukiwania informacji w dokumentach strategicznych, a inni nie. Jak byś sobie z tym poradził? Twój dobrze dostrojony Billy po prostu wie wszystko, nie może zrezygnować z wiedzy w czasie wnioskowania.
- Hosting LLM jest kosztowny. Gdy masz już dostrojony LLM, musisz go kręcić. Duży model językowy jest… duży. Koszty utrzymania i działania będą rosły. Czy korzyści przewyższają te koszty?
- Precyzyjne powtórzenia. Ponowne szkolenie modelu jest wymagane, gdy chcesz, aby model odzwierciedlał zmiany w bazie wiedzy.
Z RAG do bogactwa
Idea stojąca za Retrieval-Augmented Generation (RAG) jest dość prosta. Pamiętaj, celem jest odblokowanie informacji w naszej bazie wiedzy. Zamiast wypuszczać na niego (tj. dostrajać) naszego mola książkowego, kompleksowo indeksujemy informacje z naszej bazy wiedzy.
Na powyższym schemacie ilustrujemy, jak Smart Retriever działa jak bibliotekarz. Idealnie byłoby, gdyby bibliotekarz miał doskonałą wiedzę o tym, co znajduje się w jego bibliotece. Dla gościa zadającego określone pytanie wiedziałby, który rozdział jakiej książki polecić.
Na bardziej technicznym poziomie opisuje to semantyczną wyszukiwarkę . W tym przypadku osadzenia są wektorowymi reprezentacjami sekcji dokumentu i umożliwiają matematyczny opis rzeczywistego znaczenia zapisanego w każdej sekcji. Porównując osadzenie, możemy określić, które sekcje tekstu mają podobne znaczenie do których innych sekcji tekstu. Ma to kluczowe znaczenie dla procesu odzyskiwania pokazanego poniżej.
W grze są dwa kluczowe elementy:
- Smart Retriever (czyli bibliotekarz)
- Generator (czyli mól książkowy)
Najważniejsze cechy tej konfiguracji opartej na RAG
- Wyraźne wskazanie źródła , na którym oparto odpowiedź. Umożliwienie walidacji odpowiedzi zwracanej przez generator.
- Bardzo mało prawdopodobne , aby miał halucynacje, ograniczając nasz komponent generatora do korpusu naszej bazy wiedzy, przyzna, że nie może sformułować odpowiedzi, gdy retriever nie znajdzie odpowiednich źródeł.
- Utrzymywalny indeks wyszukiwania. Baza wiedzy to żywa istota, kiedy się zmienia, możemy dostosować nasz indeks wyszukiwania, aby odzwierciedlić te zmiany.
Dostrajanie ponownie
Zwróć uwagę, że w powyższej sekcji odrzuciliśmy precyzyjne dostrajanie jako cenną opcję, ponieważ mieliśmy niewielką kontrolę nad klarownością źródła , co zwiększało ryzyko halucynacji.
Należy zauważyć, że podejście RAG, oparte na ogólnym LLM, działa dobrze tylko tak długo, jak długo konkretna baza wiedzy nie zawiera superspecyficznego żargonu, którego LLM nie może zrozumieć na podstawie ogólnego szkolenia.
Wyobraź sobie, że potrzebujesz, aby odpowiedzi Twojego rozwiązania były zgodne z „tonem i żargonem” obecnym w Twojej bazie wiedzy. W tym przypadku precyzyjne dostrojenie twojego LLM wydaje się mniej możliwe do uniknięcia.
Dobrym podejściem może być umiejętność obsługi określonego żargonu, a następnie włączenie precyzyjnie dostrojonego LLM do architektury RAG w celu uzyskania połączonych korzyści. Zamiast pracować z zwykłym molem książkowym, użyłbyś wtedy specjalnie wyszkolonego Billy'ego do zasilania Generatora i / lub komponentów Smart Retriever.
Dlaczego teraz? Co nowego?
Doskonałe pytanie.
Wyszukiwanie semantyczne (inteligentne wyszukiwanie) istnieje już od dłuższego czasu, podobnie jak generatywna sztuczna inteligencja (niektóre prymitywne formy istnieją od dziesięcioleci).
Jednak w ciągu ostatnich miesięcy zaobserwowaliśmy kluczowe postępy.
Na poziomie technologicznym byliśmy ostatnio świadkami dużych postępów w wydajności LLM. Mają one pozytywny wpływ na rozwiązanie RAG na dwóch poziomach:
- Osadzanie (np. Osadzanie API przez OpenAI lub PaLM Google )
- Możliwości generatywne (np. rozwiązanie ChatGPT firmy OpenAI )
Tak więc, chociaż prawdopodobnie przeciętne wersje RAG mogły być możliwe od dłuższego czasu, ulepszenia technologiczne i zwiększona przyczepność skutkują owocną szansą rynkową.
Wyzwania na drodze do sukcesu
W tej sekcji chcemy przedstawić niektóre z głównych wyzwań związanych z konfiguracją udanego rozwiązania RAG.
- Silna zależność od wydajności Smart Retrievera.
Jakość odpowiedzi udzielanych przez Twój Komponent Generacyjny będzie bezpośrednio zależeć od trafności informacji przekazywanych mu przez Smart Retriever. Jak wspomniano powyżej, możemy podziękować postępowi LLM za zapewnienie nam bogatych i potężnych osadzeń tekstu. Jednak pobieranie tych elementów osadzonych wyłącznie za pośrednictwem interfejsów API może nie być najlepszą opcją. Powinieneś być bardzo świadomy podczas projektowania swojego komponentu Wyszukiwania Semantycznego, być może twoja baza wiedzy zawiera specyficzny żargon i możesz potrzebować niestandardowego dopasowanego (tj. precyzyjnie dostrojonego) komponentu do obsługi tego. Bardziej dogłębny praktyczny przewodnik po wyszukiwaniu semantycznym można znaleźć w tym poście na blogu [1] . - Kompromis, którego należy dokonać, ograniczając się do trzymania się informacji w bazie wiedzy.
Jak wyjaśniono w architekturze RAG, możemy wymusić na naszym generatywnym komponencie LLM ograniczenie się do informacji znajdujących się w odpowiednich dokumentach. Chociaż gwarantuje to, że halucynacje (tj. bezsensowne odpowiedzi) mają niewielkie szanse, oznacza to również, że ledwo wykorzystujesz informacje, które posiada Twój LLM. Możesz chcieć, aby Twoje rozwiązanie również korzystało z tej wiedzy, ale może tylko na żądanie użytkownika. - Projekt konwersacyjny, aby umożliwić złożony dialog.
Chociaż nasze powyższe obrazy przedstawiają zachowanie użytkownika jako zadawanie jedynie „jednorazowego pytania”, często użytkownik może chcieć przybliżyć odpowiedź udzieloną przez Twoje rozwiązanie (w rozmowie w stylu ChatGPT ) . Na szczęście istnieją narzędzia, które pomogą ci w tej bitwie. Ramylangchain
oferują pomocną dłoń w uzyskaniu tego we właściwy sposób. - Szybka inżynieria jako sposób na pokierowanie pokolenia ku sukcesowi.
Aby uzyskać prawidłową odpowiedź komponentu generatywnego, musisz dokładnie powiedzieć, jakiego rodzaju danych wyjściowych oczekujesz. Ogólnie rzecz biorąc, jest to dalekie od nauki o rakietach. Jednak odpowiednie skonfigurowanie szybkiej konfiguracji dla danego przypadku użycia wymaga czasu i zasługuje na wystarczającą uwagę. Warto przyjrzeć się systemom zarządzania monitami, aby upewnić się, że możesz śledzić, które podpowiedzi sprawdzają się najlepiej w jakich sytuacjach. - Wybór odpowiedniego LLM: ile to kosztuje i gdzie trafiają moje dane?
W całym tym tekście nie dokonaliśmy żadnego wyraźnego wyboru dotyczącego tego, jakie LLM mają być używane w twoim rozwiązaniu. Wybierając LLM (API), którego chcesz użyć, pamiętaj o uwzględnieniu ograniczeń związanych z prywatnością i kosztami. Istnieje już kilka przyzwoitych opcji. Mamy GPT OpenAI, LLaMA Meta , PaLM Google i Elon Musk, który twierdzi, że dołącza do sceny LLM, kto wie, dokąd się potoczy. Ekscytująca wiadomość jest taka: pojawi się więcej opcji, a konkurencja powinna zwiększyć wydajność LLM i obniżyć ceny. - Uzyskiwanie i utrzymywanie rozwiązania LLM w środowisku produkcyjnym (LLMOps).
Podobnie jak w przypadku wszystkich dojrzałych rozwiązań AI: budowanie ich to jedno, uzyskiwanie/utrzymywanie ich w produkcji to drugie. Dziedzina LLMOps koncentruje się na operacjonalizacji LLM. Monitorowanie wydajności rozwiązania opartego na LLM, dbanie o aktualność bazy wiedzy i indeksu wyszukiwania, przetwarzanie historii konwersacji…
Przed wdrożeniem rozwiązania LLM do produkcji pomyśl mądrze o tym, jak go utrzymać i jak sprawić, by był owocny w długi bieg.
Ubrudzić sobie ręce RAG
Jeśli zainteresowała Cię koncepcja Retrieval-Augmented Generation, możesz zadać sobie pytanie:
Czy mam to, czego potrzeba, aby wypróbować rozwiązanie oparte na RAG?
Cóż, jeśli masz:
- wiedza specjalistyczna: umiarkowana (najlepiej zorganizowana) baza danych „artykułów wiedzy”, które zawierają przydatne informacje, których nie można łatwo znaleźć w sieci (np. dokumenty techniczne, wytyczne dotyczące wdrażania, obsługiwane zgłoszenia do pomocy technicznej…)
- wartość biznesowa : jasna definicja wartości biznesowej, jeśli informacje te można odblokować dla zamierzonych użytkowników
W ramach eksperymentu stworzyliśmy niedawno małą demonstrację, aby pokazać, w jaki sposób można wykorzystać tę technologię do wspierania personelu rządowego w łatwiejszym odpowiadaniu na pytania parlamentarne .
W tym przypadku na wiedzę szczegółową składają się:
- zbiór flamandzkich dokumentów legislacyjnych
- zestaw pytań parlamentarnych z przeszłości
- poprawa efektywności poprzez automatyczne sugerowanie odpowiedzi na pytania poselskie w oparciu o flamandzką bazę wiedzy
- poprawa przejrzystości i adopcji przez użytkowników dzięki wyraźnym cytowaniom
Bibliografia
- Mathias Leys (9 maja 2022 r.) Wyszukiwanie semantyczne: przegląd praktycznyhttps://blog.ml6.eu/semantic-search-a-practical-overview-bf2515e7be76