Retrieval-Augmented Generation med LangChain, Amazon SageMaker JumpStart og MongoDB Atlas semantisk søgning | Amazon Web Services

Retrieval-Augmented Generation med LangChain, Amazon SageMaker JumpStart og MongoDB Atlas semantisk søgning | Amazon Web Services

Generativ AI modeller har potentialet til at revolutionere virksomhedens drift, men virksomheder skal nøje overveje, hvordan de kan udnytte deres magt, mens de overvinder udfordringer som at beskytte data og sikre kvaliteten af ​​AI-genereret indhold.

RAG-rammen (Retrieval-Augmented Generation) udvider prompter med eksterne data fra flere kilder, såsom dokumentlagre, databaser eller API'er, for at gøre fundamentmodeller effektive til domænespecifikke opgaver. Dette indlæg præsenterer RAG-modellens muligheder og fremhæver det transformative potentiale i MongoDB Atlas med dens Vector Search-funktion.

MongoDB Atlas er en integreret suite af datatjenester, der accelererer og forenkler udviklingen af ​​datadrevne applikationer. Dens vektordatalager integreres problemfrit med operationel datalagring, hvilket eliminerer behovet for en separat database. Denne integration muliggør kraftfulde semantiske søgefunktioner igennem Vektorsøgning, en hurtig måde at bygge semantisk søgning og AI-drevne applikationer på.

Amazon SageMaker gør det muligt for virksomheder at bygge, træne og implementere maskinlæringsmodeller (ML). Amazon SageMaker JumpStart leverer præ-trænede modeller og data til at hjælpe dig i gang med ML. Du kan få adgang til, tilpasse og implementere forudtrænede modeller og data via SageMaker JumpStart-landingssiden i Amazon SageMaker Studio med blot et par klik.

Amazon Lex er en samtalegrænseflade, der hjælper virksomheder med at skabe chatbots og stemmebots, der engagerer sig i naturlige, naturtro interaktioner. Ved at integrere Amazon Lex med generativ AI kan virksomheder skabe et holistisk økosystem, hvor brugerinput problemfrit går over i sammenhængende og kontekstuelt relevante svar.

Løsningsoversigt

Følgende diagram illustrerer løsningsarkitekturen.

Løsningsoversigt

I de følgende afsnit gennemgår vi trinene for at implementere denne løsning og dens komponenter.

Opsæt en MongoDB-klynge

For at oprette en gratis MongoDB Atlas-klynge skal du følge instruktionerne i Opret en klynge. Opsæt databasen adgang og netværk adgang.

Implementer SageMaker-indlejringsmodellen

Du kan vælge indlejringsmodellen (ALL MiniLM L6 v2) på SageMaker JumpStart-modeller, notebooks, løsninger .

SageMaker JumpStart-modeller, notebooks, løsninger

Vælg Implementer at implementere modellen.

Bekræft, at modellen er implementeret korrekt, og bekræft, at slutpunktet er oprettet.

modellen er implementeret med succes

Vektor indlejring

Vektor indlejring er en proces med at konvertere en tekst eller et billede til en vektorrepræsentation. Med følgende kode kan vi generere vektorindlejringer med SageMaker JumpStart og opdatere samlingen med den oprettede vektor for hvert dokument:

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)

Koden ovenfor viser, hvordan man opdaterer et enkelt objekt i en samling. For at opdatere alle objekter skal du følge anvisninger.

MongoDB vektordatalager

MongoDB Atlas vektorsøgning er en ny funktion, der giver dig mulighed for at gemme og søge vektordata i MongoDB. Vektordata er en type data, der repræsenterer et punkt i et højdimensionelt rum. Denne type data bruges ofte i ML- og kunstig intelligens-applikationer. MongoDB Atlas Vector Search bruger en teknik kaldet k-nærmeste naboer (k-NN) for at søge efter lignende vektorer. k-NN virker ved at finde de k mest lignende vektorer til en given vektor. De mest lignende vektorer er dem, der er tættest på den givne vektor med hensyn til den euklidiske afstand.

Lagring af vektordata ved siden af ​​driftsdata kan forbedre ydeevnen ved at reducere behovet for at flytte data mellem forskellige lagersystemer. Dette er især fordelagtigt for applikationer, der kræver realtidsadgang til vektordata.

Opret et vektorsøgningsindeks

Det næste skridt er at oprette en MongoDB vektorsøgningsindeks på vektorfeltet, du oprettede i det forrige trin. MongoDB bruger knnVector type for at indeksere vektorindlejringer. Vektorfeltet skal repræsenteres som en matrix af tal (kun BSON int32, int64 eller dobbelt datatyper).

Der henvises til Gennemgå knnVector Type Begrænsninger for mere information om begrænsningerne af knnVector type.

Følgende kode er et eksempel på en indeksdefinition:

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

Bemærk, at dimensionen skal matche din indlejringsmodeldimension.

Forespørg på vektordatalageret

Du kan forespørge vektordatalageret ved hjælp af Vector Search aggregeringspipeline. Den bruger vektorsøgningsindekset og udfører en semantisk søgning på vektordatalageret.

Følgende kode er et eksempel på en søgedefinition:

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

Implementer SageMaker store sprogmodel

SageMaker JumpStart foundation modeller er præ-trænede store sprogmodeller (LLM'er), der bruges til at løse en række forskellige naturlige sprogbehandlingsopgaver (NLP), såsom tekstresumé, besvarelse af spørgsmål og naturlig sproglig inferens. De fås i en række forskellige størrelser og konfigurationer. I denne løsning bruger vi Knusende ansigt FLAN-T5-XL model.

Søg efter FLAN-T5-XL-modellen i SageMaker JumpStart.

Søg efter FLAN-T5-XL

Vælg Implementer for at opsætte FLAN-T5-XL-modellen.

Implementer

Bekræft, at modellen er implementeret korrekt, og at slutpunktet er aktivt.

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

Opret en Amazon Lex-bot

For at oprette en Amazon Lex-bot skal du udføre følgende trin:

  1. På Amazon Lex-konsollen skal du vælge Opret bot.

Opret bot

  1. Til Bot navn, indtast et navn.
  2. Til Runtime rolle, Vælg Opret en rolle med grundlæggende Amazon Lex-tilladelser.
    Retrieval-Augmented Generation with LangChain, Amazon SageMaker JumpStart, and MongoDB Atlas semantic search | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  3. Angiv dine sprogindstillinger, og vælg derefter Udført.
    Retrieval-Augmented Generation with LangChain, Amazon SageMaker JumpStart, and MongoDB Atlas semantic search | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  4. Tilføj et eksempel på en ytring i NewIntent UI og vælg Gem hensigten.
    Retrieval-Augmented Generation with LangChain, Amazon SageMaker JumpStart, and MongoDB Atlas semantic search | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  5. Naviger til FallbackIntent som blev oprettet til dig som standard og skifte Aktiv i Opfyldelse sektion.
    skifte til Aktiv
  6. Vælg Byg og når opbygningen er vellykket, skal du vælge Test.
    Byg og test
  7. Inden du tester, skal du vælge tandhjulsikonet.
    Retrieval-Augmented Generation with LangChain, Amazon SageMaker JumpStart, and MongoDB Atlas semantic search | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  8. Angiv AWS Lambda funktion, der vil interagere med MongoDB Atlas og LLM for at give svar. Følg for at oprette lambda-funktionen disse trin.
    9. Angiv AWS Lambda-funktionen
  9. Du kan nu interagere med LLM.

Ryd op

For at rydde op i dine ressourcer skal du udføre følgende trin:

  1. Slet Amazon Lex-bot.
  2. Slet Lambda-funktionen.
  3. Slet LLM SageMaker-slutpunktet.
  4. Slet indlejringsmodellen SageMaker-slutpunktet.
  5. Slet MongoDB Atlas-klyngen.

Konklusion

I indlægget viste vi, hvordan man laver en simpel bot, der bruger MongoDB Atlas semantisk søgning og integrerer med en model fra SageMaker JumpStart. Denne bot giver dig mulighed for hurtigt at prototype brugerinteraktion med forskellige LLM'er i SageMaker Jumpstart, mens du parrer dem med konteksten, der stammer fra MongoDB Atlas.

Som altid modtager AWS gerne feedback. Giv venligst din feedback og spørgsmål i kommentarfeltet.


Om forfatterne

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

Igor Alekseev er Senior Partner Solution Architect hos AWS i data- og analysedomæne. I sin rolle arbejder Igor med strategiske partnere, der hjælper dem med at bygge komplekse, AWS-optimerede arkitekturer. Før han kom til AWS, implementerede han som Data/Solution Architect mange projekter i Big Data-domænet, herunder flere datasøer i Hadoop-økosystemet. Som dataingeniør var han involveret i at anvende AI/ML til svindeldetektion og kontorautomatisering.


Retrieval-Augmented Generation with LangChain, Amazon SageMaker JumpStart, and MongoDB Atlas semantic search | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Babu Srinivasan
er Senior Partner Solutions Architect hos MongoDB. I sin nuværende rolle arbejder han sammen med AWS for at bygge de tekniske integrationer og referencearkitekturer til AWS- og MongoDB-løsningerne. Han har mere end to årtiers erfaring med database- og cloud-teknologier. Han brænder for at levere tekniske løsninger til kunder, der arbejder med flere globale systemintegratorer (GSI'er) på tværs af flere geografiske områder.

Tidsstempel:

Mere fra AWS maskinindlæring