Generowanie rozszerzone przy pobieraniu za pomocą LangChain, Amazon SageMaker JumpStart i wyszukiwania semantycznego MongoDB Atlas | Usługi internetowe Amazona

Generowanie rozszerzone przy pobieraniu za pomocą LangChain, Amazon SageMaker JumpStart i wyszukiwania semantycznego MongoDB Atlas | Usługi internetowe Amazona

generatywna sztuczna inteligencja modele mają potencjał, aby zrewolucjonizować działalność przedsiębiorstw, ale firmy muszą dokładnie rozważyć, w jaki sposób wykorzystać swoją moc, jednocześnie pokonując wyzwania, takie jak ochrona danych i zapewnianie jakości treści generowanych przez sztuczną inteligencję.

Struktura generowania rozszerzonego wyszukiwania (RAG) uzupełnia monity o dane zewnętrzne z wielu źródeł, takich jak repozytoria dokumentów, bazy danych lub interfejsy API, aby uczynić podstawowe modele skutecznymi w przypadku zadań specyficznych dla domeny. W tym poście przedstawiono możliwości modelu RAG i podkreślono potencjał transformacyjny MongoDB Atlas z funkcją wyszukiwania wektorowego.

Atlas MongoDB to zintegrowany pakiet usług danych, który przyspiesza i upraszcza tworzenie aplikacji opartych na danych. Magazyn danych wektorowych płynnie integruje się z magazynem danych operacyjnych, eliminując potrzebę tworzenia oddzielnej bazy danych. Integracja ta umożliwia zaawansowane możliwości wyszukiwania semantycznego Wyszukiwanie wektorowe, szybki sposób tworzenia aplikacji wykorzystujących wyszukiwanie semantyczne i sztuczną inteligencję.

Amazon Sage Maker umożliwia przedsiębiorstwom budowanie, trenowanie i wdrażanie modeli uczenia maszynowego (ML). Amazon SageMaker JumpStart udostępnia wstępnie przeszkolone modele i dane, które pomogą Ci rozpocząć korzystanie z uczenia maszynowego. Możesz uzyskać dostęp, dostosować i wdrożyć wstępnie wyszkolone modele i dane za pośrednictwem strony docelowej SageMaker JumpStart w Studio Amazon SageMaker za pomocą kilku kliknięć.

Amazonka Lex to interfejs konwersacyjny, który pomaga firmom tworzyć chatboty i boty głosowe, które angażują się w naturalne, realistyczne interakcje. Integrując Amazon Lex z generatywną sztuczną inteligencją, firmy mogą stworzyć holistyczny ekosystem, w którym wkład użytkowników płynnie przechodzi w spójne i kontekstowo odpowiednie odpowiedzi.

Omówienie rozwiązania

Poniższy schemat ilustruje architekturę rozwiązania.

Omówienie rozwiązania

W poniższych sekcjach omówimy etapy wdrożenia tego rozwiązania i jego komponentów.

Skonfiguruj klaster MongoDB

Aby utworzyć klaster MongoDB Atlas z bezpłatną warstwą, postępuj zgodnie z instrukcjami w Utwórz klaster. Skonfiguruj bazę danych dostęp i sieć dostęp.

Wdróż model osadzania SageMaker

Możesz wybrać model osadzania (ALL MiniLM L6 v2) na SageMaker JumpStart Modele, notebooki, rozwiązania strona.

SageMaker JumpStart Modele, notebooki, rozwiązania

Dodaj Rozmieścić aby wdrożyć model.

Sprawdź, czy model został pomyślnie wdrożony i czy utworzono punkt końcowy.

model został pomyślnie wdrożony

Osadzanie wektorów

Osadzanie wektorów to proces przekształcania tekstu lub obrazu w reprezentację wektorową. Za pomocą poniższego kodu możemy wygenerować osadzanie wektorów za pomocą SageMaker JumpStart i zaktualizować kolekcję o utworzony wektor dla każdego dokumentu:

payload = {"text_inputs": [document[field_name_to_be_vectorized]]}
query_response = query_endpoint_with_json_payload(json.dumps(payload).encode('utf-8'))
embeddings = parse_response_multiple_texts(query_response) # update the document
update = {'$set': {vector_field_name :  embeddings[0]}}
collection.update_one(query, update)

Powyższy kod pokazuje, jak zaktualizować pojedynczy obiekt w kolekcji. Aby zaktualizować wszystkie obiekty, wykonaj polecenie instrukcje.

Magazyn danych wektorowych MongoDB

Wyszukiwanie wektorów w Atlasie MongoDB to nowa funkcja, która pozwala przechowywać i przeszukiwać dane wektorowe w MongoDB. Dane wektorowe to rodzaj danych reprezentujących punkt w przestrzeni wielowymiarowej. Tego typu dane są często wykorzystywane w zastosowaniach ML i sztucznej inteligencji. Wyszukiwanie wektorowe Atlasu MongoDB wykorzystuje technikę zwaną k-najbliżsi sąsiedzi (k-NN), aby wyszukać podobne wektory. k-NN działa poprzez znalezienie k wektorów najbardziej podobnych do danego wektora. Najbardziej podobne wektory to te, które są najbliżej danego wektora pod względem odległości euklidesowej.

Przechowywanie danych wektorowych obok danych operacyjnych może poprawić wydajność, zmniejszając potrzebę przenoszenia danych między różnymi systemami przechowywania. Jest to szczególnie korzystne w przypadku aplikacji wymagających dostępu w czasie rzeczywistym do danych wektorowych.

Utwórz indeks wyszukiwania wektorowego

Następnym krokiem jest utworzenie pliku Indeks wyszukiwania wektorowego MongoDB na polu wektorowym utworzonym w poprzednim kroku. MongoDB używa knnVector wpisz, aby indeksować osadzone wektory. Pole wektorowe powinno być reprezentowane jako tablica liczb (tylko typy danych BSON int32, int64 lub double).

Odnosić się do Przejrzyj ograniczenia typu knnVector aby uzyskać więcej informacji na temat ograniczeń knnVector rodzaj.

Poniższy kod jest przykładową definicją indeksu:

{ "mappings": { "dynamic": true, "fields": { "egVector": { "dimensions": 384, "similarity": "euclidean", "type": "knnVector" } } }
}

Pamiętaj, że wymiar musi odpowiadać wymiarowi modelu osadzania.

Zapytanie dotyczące magazynu danych wektorowych

Możesz wysłać zapytanie do magazynu danych wektorowych za pomocą Potok agregacji wyszukiwania wektorowego. Korzysta z indeksu wyszukiwania wektorowego i wykonuje: wyszukiwanie semantyczne w magazynie danych wektorowych.

Poniższy kod jest przykładową definicją wyszukiwania:

{ $search: { "index": "<index name>", // optional, defaults to "default" "knnBeta": { "vector": [<array-of-numbers>], "path": "<field-to-search>", "filter": {<filter-specification>}, "k": <number>, "score": {<options>} } }
}

Wdróż model dużego języka SageMaker

Modele fundamentów SageMaker JumpStart to wstępnie wytrenowane modele języka dużego (LLM), które są używane do rozwiązywania różnych zadań przetwarzania języka naturalnego (NLP), takich jak podsumowywanie tekstu, odpowiadanie na pytania i wnioskowanie w języku naturalnym. Są dostępne w różnych rozmiarach i konfiguracjach. W tym rozwiązaniu używamy Przytulanie Twarzy Model FLAN-T5-XL.

Wyszukaj model FLAN-T5-XL w SageMaker JumpStart.

Wyszukaj FLAN-T5-XL

Dodaj Rozmieścić aby skonfigurować model FLAN-T5-XL.

Rozmieścić

Sprawdź, czy model został pomyślnie wdrożony, a punkt końcowy jest aktywny.

Retrieval-Augmented Generation with LangChain, Amazon SageMaker JumpStart, and MongoDB Atlas semantic search | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Utwórz bota Amazon Lex

Aby utworzyć bota Amazon Lex, wykonaj następujące kroki:

  1. Na konsoli Amazon Lex wybierz Utwórz bota.

Utwórz bota

  1. W razie zamówieenia projektu Nazwa bota, Wpisz imię.
  2. W razie zamówieenia projektu Rola środowiska wykonawczego, Wybierz Utwórz rolę z podstawowymi uprawnieniami Amazon Lex.
    Retrieval-Augmented Generation with LangChain, Amazon SageMaker JumpStart, and MongoDB Atlas semantic search | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  3. Określ ustawienia języka, a następnie wybierz Gotowe .
    Retrieval-Augmented Generation with LangChain, Amazon SageMaker JumpStart, and MongoDB Atlas semantic search | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  4. Dodaj przykładową wypowiedź w pliku NewIntent Interfejs użytkownika i wybierz Zapisz zamiar.
    Retrieval-Augmented Generation with LangChain, Amazon SageMaker JumpStart, and MongoDB Atlas semantic search | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  5. Nawiguj do FallbackIntent który został domyślnie stworzony dla Ciebie i przełącz Aktywna Spełnienie
    przełącz Aktywne
  6. Dodaj Budować i po pomyślnym zakończeniu kompilacji wybierz Testowanie.
    Buduj i testuj
  7. Przed testowaniem wybierz ikonę koła zębatego.
    Retrieval-Augmented Generation with LangChain, Amazon SageMaker JumpStart, and MongoDB Atlas semantic search | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  8. Określ AWS Lambda funkcja, która będzie współdziałać z Atlasem MongoDB i LLM w celu zapewnienia odpowiedzi. Aby utworzyć funkcję lambda, wykonaj następujące czynności te kroki.
    9. Określ funkcję AWS Lambda
  9. Możesz teraz wejść w interakcję z LLM.

Sprzątać

Aby wyczyścić zasoby, wykonaj następujące kroki:

  1. Usuń bota Amazon Lex.
  2. Usuń funkcję Lambda.
  3. Usuń punkt końcowy LLM SageMaker.
  4. Usuń punkt końcowy modelu osadzania SageMaker.
  5. Usuń klaster Atlas MongoDB.

Wnioski

W poście pokazaliśmy jak stworzyć prostego bota korzystającego z wyszukiwania semantycznego MongoDB Atlas i integrującego się z modelem z SageMaker JumpStart. Ten bot pozwala szybko prototypować interakcję użytkownika z różnymi LLM w SageMaker Jumpstart, jednocześnie łącząc je z kontekstem pochodzącym z Atlasu MongoDB.

Jak zawsze, AWS chętnie przyjmuje opinie. Zostaw swoją opinię i pytania w sekcji komentarzy.


O autorach

Retrieval-Augmented Generation with LangChain, Amazon SageMaker JumpStart, and MongoDB Atlas semantic search | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Igor Aleksiejew jest starszym architektem rozwiązań partnerskich w AWS w domenie Data and Analytics. W swojej roli Igor współpracuje ze strategicznymi partnerami, pomagając im budować złożone architektury zoptymalizowane pod kątem AWS. Przed dołączeniem do AWS jako Data/Solution Architect zrealizował wiele projektów w domenie Big Data, w tym kilka jezior danych w ekosystemie Hadoop. Jako Data Engineer był zaangażowany w zastosowanie AI/ML do wykrywania nadużyć i automatyzacji biura.


Retrieval-Augmented Generation with LangChain, Amazon SageMaker JumpStart, and MongoDB Atlas semantic search | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Babu Srinivasana
jest starszym architektem rozwiązań partnerskich w MongoDB. W swojej obecnej roli współpracuje z AWS przy tworzeniu integracji technicznych i architektur referencyjnych dla rozwiązań AWS i MongoDB. Ma ponad dwudziestoletnie doświadczenie w technologiach baz danych i chmur. Pasjonuje się dostarczaniem rozwiązań technicznych klientom współpracującym z wieloma globalnymi integratorami systemów (GSI) w różnych regionach.

Znak czasu:

Więcej z Uczenie maszynowe AWS