Pomimo pozornie niepowstrzymanego stosowania LLM w różnych branżach, są one jednym z elementów szerszego ekosystemu technologicznego, który napędza nową falę sztucznej inteligencji. Wiele przypadków użycia sztucznej inteligencji do konwersacji wymaga, aby LLM, takie jak Llama 2, Flan T5 i Bloom, odpowiadały na zapytania użytkowników. Modele te opierają się na wiedzy parametrycznej, aby odpowiedzieć na pytania. Model uczy się tej wiedzy podczas uczenia i koduje ją w parametrach modelu. Aby zaktualizować tę wiedzę, musimy przekwalifikować LLM, co zajmuje dużo czasu i pieniędzy.
Na szczęście możemy również korzystać z wiedzy źródłowej, aby informować nasze LLM. Wiedza źródłowa to informacja wprowadzana do LLM poprzez zachętę do wprowadzania danych. Jednym z popularnych podejść do dostarczania wiedzy źródłowej jest generowanie rozszerzone wyszukiwania (RAG). Korzystając z RAG, pobieramy odpowiednie informacje z zewnętrznego źródła danych i wprowadzamy je do LLM.
W tym poście na blogu przyjrzymy się, jak wdrożyć LLM, takie jak Llama-2, za pomocą Amazon Sagemaker JumpStart i aktualizować nasze LLM za pomocą odpowiednich informacji za pomocą generowania rozszerzonego wyszukiwania (RAG) przy użyciu wektorowej bazy danych Pinecone, aby zapobiec halucynacji AI .
Odzyskiwanie Augmented Generation (RAG) w Amazon SageMaker
Pinecone obsłuży komponent pobierania RAG, ale potrzebne są jeszcze dwa krytyczne komponenty: miejsce, w którym można uruchomić wnioskowanie LLM, i miejsce, w którym można uruchomić model osadzania.
Amazon SageMaker Studio to zintegrowane środowisko programistyczne (IDE), które zapewnia pojedynczy internetowy interfejs wizualny, w którym można uzyskać dostęp do specjalnie zaprojektowanych narzędzi do wykonywania wszystkich prac programistycznych związanych z uczeniem maszynowym (ML). Zapewnia SageMaker JumpStart, który jest centrum modeli, w którym użytkownicy mogą zlokalizować, wyświetlić podgląd i uruchomić konkretny model na swoim własnym koncie SageMaker. Zapewnia wstępnie przeszkolone, publicznie dostępne i zastrzeżone modele dla szerokiego zakresu typów problemów, w tym modele podstawowe.
Amazon SageMaker Studio zapewnia idealne środowisko do tworzenia potoków LLM z obsługą RAG. Najpierw, korzystając z konsoli AWS, przejdź do Amazon SageMaker i utwórz domenę SageMaker Studio i otwórz notatnik Jupyter Studio.
Wymagania wstępne
Wykonaj następujące wymagane kroki:
- Skonfiguruj studio Amazon SageMaker.
- Dołącz do domeny Amazon SageMaker.
- Zarejestruj się, aby uzyskać bezpłatną bazę danych wektorów Pinecone.
- Wymagane biblioteki: SageMaker Python SDK, Pinecone Client
Przewodnik po rozwiązaniu
Korzystając z notatnika SageMaker Studio, najpierw musimy zainstalować wymagane biblioteki:
Wdrażanie LLM
W tym poście omawiamy dwa podejścia do wdrażania LLM. Pierwsza odbywa się przez HuggingFaceModel
obiekt. Możesz tego użyć podczas wdrażania LLM (i osadzania modeli) bezpośrednio z centrum modeli Hugging Face.
Można na przykład utworzyć konfigurację do wdrożenia dla pliku google/flan-t5-xl model jak pokazano na poniższym zrzucie ekranu:
Podczas wdrażania modeli bezpośrednio z Hugging Face zainicjuj plik my_model_configuration
z następującymi:
- An
env
config mówi nam, jakiego modelu chcemy użyć i do jakiego zadania. - Nasza realizacja SageMakera
role
daje nam uprawnienia do wdrożenia naszego modelu. - An
image_uri
to konfiguracja obrazu przeznaczona specjalnie do wdrażania LLM z Hugging Face.
Alternatywnie SageMaker ma zestaw modeli bezpośrednio kompatybilnych z prostszymi JumpStartModel
obiekt. Ten model obsługuje wiele popularnych LLM, takich jak Llama 2, które można zainicjować, jak pokazano na poniższym zrzucie ekranu:
Dla obu wersji my_model
, rozmieść je, jak pokazano na poniższym zrzucie ekranu:
Dzięki naszemu zainicjowanemu punktowi końcowemu LLM możesz rozpocząć wysyłanie zapytań. Format naszych zapytań może się różnić (szczególnie między konwersacyjnymi i niekonwersacyjnymi LLM), ale proces jest generalnie taki sam. W przypadku modelu Przytulona twarz wykonaj następujące czynności:
Rozwiązanie znajdziesz w Repozytorium GitHub.
Wygenerowana odpowiedź, którą tu otrzymujemy, nie ma większego sensu — to halucynacja.
Zapewnienie dodatkowego kontekstu dla LLM
Lama 2 próbuje odpowiedzieć na nasze pytanie bazując wyłącznie na wewnętrznej wiedzy parametrycznej. Jest oczywiste, że parametry modelu nie przechowują wiedzy o tym, które instancje możemy zastosować w przypadku zarządzanego szkolenia punktowego w SageMaker.
Aby poprawnie odpowiedzieć na to pytanie, musimy skorzystać z wiedzy źródłowej. Oznacza to, że przekazujemy LLM dodatkowe informacje za pośrednictwem podpowiedzi. Dodajmy te informacje bezpośrednio jako dodatkowy kontekst dla modelu.
Widzimy teraz poprawną odpowiedź na pytanie; to było łatwe! Jednak jest mało prawdopodobne, aby użytkownik wstawiał konteksty do swoich podpowiedzi, znałby już odpowiedź na swoje pytanie.
Zamiast ręcznie wstawiać pojedynczy kontekst, automatycznie identyfikuj istotne informacje z bardziej rozbudowanej bazy danych. W tym celu będziesz potrzebować generacji rozszerzonej pobierania.
Odzyskanie Augmented Generation
Dzięki funkcji Retrieval Augmented Generation można zakodować bazę danych informacji w przestrzeni wektorowej, gdzie bliskość wektorów reprezentuje ich znaczenie/podobieństwo semantyczne. Używając tej przestrzeni wektorowej jako bazy wiedzy, możesz przekonwertować nowe zapytanie użytkownika, zakodować je w tej samej przestrzeni wektorowej i pobrać najbardziej odpowiednie rekordy, które zostały wcześniej zaindeksowane.
Po pobraniu tych odpowiednich rekordów wybierz kilka z nich i uwzględnij je w monicie LLM jako dodatkowy kontekst, zapewniając LLM bardzo odpowiednią wiedzę źródłową. Jest to proces dwuetapowy, podczas którego:
- Indeksowanie wypełnia indeks wektorowy informacjami ze zbioru danych.
- Pobieranie odbywa się podczas zapytania i polega na pobieraniu odpowiednich informacji z indeksu wektorowego.
Obydwa etapy wymagają modelu osadzania w celu przetłumaczenia naszego czytelnego dla człowieka zwykłego tekstu na semantyczną przestrzeń wektorową. Użyj wysoce wydajnego transformatora zdań MiniLM firmy Hugging Face, jak pokazano na poniższym zrzucie ekranu. Ten model nie jest modelem LLM i dlatego nie jest inicjowany w taki sam sposób, jak nasz model Lamy 2.
W hub_config
, określ identyfikator modelu, jak pokazano na zrzucie ekranu powyżej, ale do tego zadania użyj wyodrębniania cech, ponieważ generujemy osadzanie wektorów, a nie tekst jak nasz LLM. Następnie zainicjuj konfigurację modelu za pomocą HuggingFaceModel
jak poprzednio, ale tym razem bez obrazu LLM i z pewnymi parametrami wersji.
Możesz ponownie wdrożyć model za pomocą deploy
, używając mniejszej (tylko CPU) instancji ml.t2.large
. Model MiniLM jest malutki, więc nie wymaga dużej ilości pamięci i nie potrzebuje procesora graficznego, ponieważ może szybko tworzyć osady nawet na procesorze. Jeśli wolisz, możesz uruchomić model szybciej na GPU.
Aby utworzyć osadzenie, użyj opcji predict
metodę i przekazać listę kontekstów do zakodowania za pomocą metody inputs
klucz jak pokazano:
Przekazywane są dwa konteksty wejściowe, zwracając dwa osadzania wektorów kontekstu, jak pokazano:
len(out)
2
Osadzająca wymiarowość modelu MiniLM jest 384
co oznacza, że każdy wektor osadzający wyjścia MiniLM powinien mieć wymiar 384
. Jednak patrząc na długość naszych osadów, zobaczysz, co następuje:
len(out[0]), len(out[1])
(8, 8)
Dwie listy zawierają po osiem pozycji każda. MiniLM najpierw przetwarza tekst w etapie tokenizacji. Ta tokenizacja przekształca nasz czytelny dla człowieka zwykły tekst w listę identyfikatorów tokenów czytelnych dla modelu. W cechach wyjściowych modelu można zobaczyć osadzenie na poziomie tokenu. jedno z tych osadzania pokazuje oczekiwaną wymiarowość 384
jak pokazano:
len(out[0][0])
384
Przekształć te osadzania na poziomie tokenu w osadzania na poziomie dokumentu, używając średnich wartości w każdym wymiarze wektorowym, jak pokazano na poniższej ilustracji.
Z dwoma 384-wymiarowymi osadzaniami wektorowymi, po jednym dla każdego tekstu wejściowego. Aby ułatwić nam życie, owiń proces kodowania w jedną funkcję, jak pokazano na poniższym zrzucie ekranu:
Pobieranie zbioru danych
Pobierz FAQ Amazon SageMaker jako bazę wiedzy, aby uzyskać dane zawierające zarówno kolumny pytań, jak i odpowiedzi.
Podczas wyszukiwania szukaj tylko odpowiedzi, aby móc usunąć kolumnę Pytanie. Szczegóły znajdziesz w notatniku.
Nasz zestaw danych i potok osadzania są gotowe. Teraz potrzebujemy tylko miejsca do przechowywania tych osadów.
Indeksowanie
Baza danych wektorów Pinecone przechowuje osadzenia wektorów i efektywnie je przeszukuje na dużą skalę. Do utworzenia bazy danych będziesz potrzebować darmowego klucza API firmy Pinecone.
Po połączeniu się z bazą wektorów Pinecone utwórz pojedynczy indeks wektorowy (podobnie jak tabela w tradycyjnych bazach danych). Nazwij indeks retrieval-augmentation-aws
i wyrównaj indeks dimension
i metric
parametry z wymaganymi przez model osadzania (w tym przypadku MiniLM).
Aby rozpocząć wstawianie danych, wykonaj następujące czynności:
Możesz rozpocząć wysyłanie zapytań do indeksu od pytania z wcześniejszej części tego postu.
Powyższe dane wyjściowe pokazują, że zwracamy odpowiednie konteksty, które pomogą nam odpowiedzieć na nasze pytanie. Odkiedy top_k = 1
, index.query
zwrócił najwyższy wynik wraz z metadanymi, które czytają Managed Spot Training can be used with all instances supported in Amazon
.
Rozszerzanie podpowiedzi
Użyj pobranych kontekstów, aby rozszerzyć podpowiedzi i zdecydować o maksymalnej ilości kontekstu, który ma zostać wprowadzony do LLM. Użyj 1000
limit znaków, aby iteracyjnie dodawać każdy zwrócony kontekst do zachęty, dopóki nie przekroczysz długości treści.
Karmić context_str
w wierszu polecenia LLM, jak pokazano na poniższym zrzucie ekranu:
[Wkład]: Z jakich instancji mogę korzystać w przypadku szkoleń zarządzanych w miejscu docelowym w SageMaker? [Wyniki]: W oparciu o podany kontekst możesz skorzystać ze szkolenia w miejscu zarządzanym ze wszystkimi instancjami obsługiwanymi w Amazon SageMaker. Dlatego odpowiedź brzmi: Wszystkie instancje obsługiwane w Amazon SageMaker.
Logika działa, więc zamknij ją w jedną funkcję, aby zachować porządek.
Możesz teraz zadawać pytania podobne do tych pokazanych poniżej:
Sprzątać
Aby przestać naliczać niechciane opłaty, usuń model i punkt końcowy.
Wnioski
W tym poście przedstawiliśmy Ci RAG z ogólnodostępnymi LLM w SageMaker. Pokazaliśmy także, jak wdrożyć modele Amazon SageMaker Jumpstart z Llama 2, Hugging Face LLM z Flan T5 i osadzanie modeli za pomocą MiniLM.
Wdrożyliśmy kompletny, kompleksowy potok RAG, korzystając z naszych modeli o otwartym dostępie i indeksu wektorowego Pinecone. Korzystając z tego, pokazaliśmy, jak zminimalizować halucynacje i aktualizować wiedzę LLM, a ostatecznie poprawić doświadczenie użytkownika i zaufanie do naszych systemów.
Aby samodzielnie uruchomić ten przykład, sklonuj to repozytorium GitHub i wykonaj poprzednie kroki, korzystając z narzędzia Notatnik z odpowiedziami na pytania w serwisie GitHub.
O autorach
Wedant Jain jest starszym specjalistą AI/ML, pracującym nad strategicznymi inicjatywami generatywnej AI. Przed dołączeniem do AWS Vedant zajmował stanowiska specjalizujące się w ML/Data Science w różnych firmach, takich jak Databricks, Hortonworks (obecnie Cloudera) i JP Morgan Chase. Poza pracą Vedant pasjonuje się tworzeniem muzyki, wspinaczką skałkową, wykorzystywaniem nauki do prowadzenia sensownego życia i odkrywaniem kuchni z całego świata.
Jamesa Briggsa jest rzecznikiem programistów w firmie Pinecone, specjalizującym się w wyszukiwaniu wektorowym i AI/ML. Pomaga programistom i firmom w opracowywaniu własnych rozwiązań GenAI poprzez edukację online. Przed Pinecone James pracował nad sztuczną inteligencją dla małych start-upów technologicznych i uznanych korporacji finansowych. Poza pracą James pasjonuje się podróżami i przeżywaniem nowych przygód, od surfingu i nurkowania po Muay Thai i BJJ.
Xin Huang jest starszym naukowcem zajmującym się wbudowanymi algorytmami Amazon SageMaker JumpStart i Amazon SageMaker. Koncentruje się na rozwijaniu skalowalnych algorytmów uczenia maszynowego. Jego zainteresowania badawcze obejmują obszar przetwarzania języka naturalnego, wyjaśnialne głębokie uczenie się na danych tabelarycznych oraz solidną analizę nieparametrycznego grupowania czasoprzestrzennego. Opublikował wiele artykułów na konferencjach ACL, ICDM, KDD i Royal Statistical Society: Series A.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/machine-learning/mitigate-hallucinations-through-retrieval-augmented-generation-using-pinecone-vector-database-llama-2-from-amazon-sagemaker-jumpstart/
- :ma
- :Jest
- :nie
- :Gdzie
- $W GÓRĘ
- 1
- 10
- 100
- 11
- 12
- 14
- 15%
- 16
- 17
- 19
- 23
- 32
- 7
- 8
- 9
- a
- O nas
- powyżej
- dostęp
- Stosownie
- Konto
- w poprzek
- Dodaj
- Dodatkowy
- Dodatkowe informacje
- Przyjęcie
- Przygody
- rzecznik
- ponownie
- AI
- przypadki użycia ai
- AI / ML
- Algorytmy
- wyrównać
- Wszystkie kategorie
- wzdłuż
- już
- również
- Amazonka
- Amazon Sage Maker
- Amazon SageMaker JumpStart
- Studio Amazon SageMaker
- Amazon Web Services
- ilość
- an
- analiza
- i
- odpowiedź
- odpowiedzi
- każdy
- api
- Aplikacja
- stosowany
- podejście
- awanse
- SĄ
- POWIERZCHNIA
- na około
- AS
- zapytać
- At
- Próby
- zwiększać
- zwiększona
- samochód
- automatycznie
- dostępny
- AWS
- baza
- na podstawie
- BE
- bo
- zanim
- rozpocząć
- pomiędzy
- Blog
- Kwitnąć
- obie
- szerszy
- budować
- wbudowany
- biznes
- ale
- by
- CAN
- zdobyć
- walizka
- Etui
- znaków
- Opłaty
- pościg
- kleń
- wyraźnie
- Wspinaczka
- Chmura
- klastrowanie
- Kolumna
- kolumny
- Firmy
- zgodny
- kompletny
- składnik
- składniki
- konferencje
- połączony
- Konsola
- zawierać
- zawiera
- zawartość
- kontekst
- konteksty
- konwersacyjny
- konwersacyjna sztuczna inteligencja
- konwertować
- Korporacje
- skorygowania
- prawidłowo
- Stwórz
- krytyczny
- Obecnie
- dane
- Baza danych
- Data
- DBS
- zdecydować
- głęboko
- głęboka nauka
- rozwijać
- wdrażanie
- Deweloper
- deweloperzy
- rozwijanie
- oprogramowania
- Wymiary
- bezpośrednio
- dyskutować
- do
- robi
- robi
- Nie
- domena
- darowizna
- Spadek
- podczas
- każdy
- Wcześniej
- łatwiej
- Ekosystem
- Edukacja
- wydajny
- skutecznie
- osadzanie
- ogarnięcie
- kodowanie
- zakończenia
- koniec końców
- Punkt końcowy
- wzmacniać
- Środowisko
- ustanowiony
- Parzyste
- przykład
- przekraczać
- egzekucja
- spodziewany
- doświadczenie
- odkryj
- Exploring
- rozległy
- zewnętrzny
- wyciąg
- Twarz
- szybciej
- Korzyści
- nakarmiony
- kilka
- finansować
- Znajdź
- koniec
- i terminów, a
- pływak
- koncentruje
- następujący
- W razie zamówieenia projektu
- format
- Fundacja
- Darmowy
- od
- funkcjonować
- ogólnie
- wygenerowane
- generujący
- generacja
- generatywny
- generatywna sztuczna inteligencja
- otrzymać
- GitHub
- Dać
- dany
- daje
- Go
- Goes
- GPU
- Przewodniki
- uchwyt
- dzieje
- Have
- he
- Trzymany
- pomoc
- tutaj
- wysoko
- jego
- W jaki sposób
- How To
- Jednak
- HTTPS
- Huang
- Piasta
- Przytulanie twarzy
- czytelne dla człowieka
- i
- ID
- idealny
- zidentyfikować
- ids
- if
- obraz
- realizowane
- importować
- in
- zawierać
- Włącznie z
- Zwiększać
- wskaźnik
- zindeksowane
- przemysłowa
- informować
- Informacja
- inicjatywy
- wkład
- Wejścia
- zainstalować
- przykład
- zintegrowany
- zainteresowania
- Interfejs
- wewnętrzny
- najnowszych
- wprowadzono
- IT
- szt
- james
- łączący
- jp
- jp morgan
- JP Morgan Chase
- jpg
- Trzymać
- Klawisz
- Wiedzieć
- wiedza
- język
- duży
- większe
- uruchomić
- prowadzić
- nauka
- uczy się
- Długość
- biblioteki
- życie
- lubić
- LIMIT
- Lista
- wykazy
- Zyje
- Lama
- LLM
- logika
- Popatrz
- poszukuje
- Partia
- maszyna
- uczenie maszynowe
- robić
- Dokonywanie
- zarządzane
- ręcznie
- wiele
- Mecz
- zapałki
- maksymalny
- maksymalna ilość
- Może..
- oznaczać
- wymowny
- znaczy
- Pamięć
- Metadane
- metoda
- Złagodzić
- ML
- model
- modele
- pieniądze
- jeszcze
- Morgan
- większość
- dużo
- wielokrotność
- Muzyka
- musi
- Nazwa
- Naturalny
- Przetwarzanie języka naturalnego
- Potrzebować
- wymagania
- Nowości
- Następny
- nlp
- notatnik
- już dziś
- tępy
- przedmiot
- of
- on
- ONE
- Online
- tylko
- koncepcja
- działanie
- or
- zamówienie
- OS
- Inaczej
- ludzkiej,
- na zewnątrz
- wydajność
- Wyjścia
- zewnętrzne
- własny
- Papiery
- parametry
- szczególny
- szczególnie
- przechodzić
- minęło
- pasja
- namiętny
- wykonać
- wykonywania
- uprawnienia
- obraz
- rurociąg
- Równina
- plato
- Analiza danych Platona
- PlatoDane
- Popularny
- Pozycje
- Post
- Zasilanie
- przepowiednia
- Przewidywania
- Urządzenie prognozujące
- Korzystny
- zapobiec
- Podgląd
- poprzedni
- poprzednio
- Wcześniejszy
- Problem
- wygląda tak
- procesów
- przetwarzanie
- Profil
- monity
- własność
- pod warunkiem,
- zapewnia
- że
- publicznie
- opublikowany
- Python
- płomień
- zapytania
- pytanie
- pytania
- szybko
- zasięg
- nośny
- gotowy
- odbieranie
- dokumentacja
- regiony
- polegać
- składnica
- reprezentuje
- wymagać
- wymagany
- Badania naukowe
- Odpowiadać
- dalsze
- Efekt
- powrót
- powrót
- krzepki
- skała
- Rola
- królewski
- run
- działa
- sagemaker
- taki sam
- powiedzieć
- skalowalny
- Skala
- nauka
- Naukowiec
- wynik
- Ekran
- Sdk
- Szukaj
- wyszukiwania
- widzieć
- pozornie
- wybierać
- senior
- rozsądek
- wyrok
- Serie
- Seria A
- Usługi
- zestaw
- powinien
- pokazać
- pokazał
- pokazane
- Targi
- bok
- podobny
- prostsze
- ponieważ
- pojedynczy
- Rozmiar
- mały
- mniejszy
- So
- Społeczeństwo
- Wyłącznie
- rozwiązanie
- Rozwiązania
- kilka
- gdzieś
- Źródło
- Typ przestrzeni
- specjalista
- specjalizujący się
- Specjalność
- swoiście
- Spot
- Personel
- Startups
- statystyczny
- Ewolucja krok po kroku
- Cel
- Stop
- sklep
- sklep
- Strategiczny
- sznur
- studio
- taki
- wsparcie
- Utrzymany
- podpory
- system
- systemy
- stół
- trwa
- Zadanie
- tech
- startupy technologiczne
- Technologia
- mówi
- XNUMX
- tajski
- niż
- że
- Połączenia
- Strefa
- świat
- ich
- Im
- w związku z tym
- Te
- one
- rzeczy
- to
- tych
- Przez
- czas
- do
- żeton
- tokenizacja
- także
- narzędzia
- Top
- tradycyjny
- Trening
- transformator
- Transformatory
- transformacje
- tłumaczyć
- Podróżowanie
- Zaufaj
- drugiej
- typy
- Ostatecznie
- mało prawdopodobne,
- nie do zatrzymania.
- aż do
- niepożądany
- Aktualizacja
- us
- posługiwać się
- używany
- Użytkownik
- Doświadczenie użytkownika
- Użytkownicy
- za pomocą
- Wartości
- różnorodny
- wersja
- Wersje
- przez
- wizualny
- czekać
- solucja
- chcieć
- była
- fala
- Droga..
- we
- sieć
- usługi internetowe
- Web-based
- Co
- jeśli chodzi o komunikację i motywację
- który
- Podczas
- szeroki
- Szeroki zasięg
- będzie
- w
- bez
- Praca
- pracował
- pracujący
- działa
- świat
- by
- owinąć
- X
- tak
- You
- Twój
- zefirnet