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

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

Generativ AI Modeller har potensial til å revolusjonere bedriftsdrift, men bedrifter må nøye vurdere hvordan de kan utnytte kraften sin samtidig som de overvinner utfordringer som å sikre data og sikre kvaliteten på AI-generert innhold.

RAG-rammeverket (Retrieval-Augmented Generation) forsterker forespørsler med eksterne data fra flere kilder, for eksempel dokumentlager, databaser eller APIer, for å gjøre grunnlagsmodeller effektive for domenespesifikke oppgaver. Dette innlegget presenterer mulighetene til RAG-modellen og fremhever det transformative potensialet til MongoDB Atlas med sin Vector Search-funksjon.

MongoDB Atlas er en integrert pakke med datatjenester som akselererer og forenkler utviklingen av datadrevne applikasjoner. Vektordatalageret integreres sømløst med operativ datalagring, og eliminerer behovet for en separat database. Denne integrasjonen muliggjør kraftige semantiske søkefunksjoner gjennom Vektorsøk, en rask måte å bygge semantisk søk ​​og AI-drevne applikasjoner på.

Amazon SageMaker gjør det mulig for bedrifter å bygge, trene og distribuere modeller for maskinlæring (ML). Amazon SageMaker JumpStart gir forhåndsopplærte modeller og data for å hjelpe deg med å komme i gang med ML. Du kan få tilgang til, tilpasse og distribuere forhåndstrente modeller og data gjennom SageMaker JumpStart-landingssiden i Amazon SageMaker Studio med bare noen få klikk.

Amazon Lex er et samtalegrensesnitt som hjelper bedrifter med å lage chatboter og stemmeroboter som engasjerer seg i naturlige, naturtro interaksjoner. Ved å integrere Amazon Lex med generativ AI, kan bedrifter skape et helhetlig økosystem der brukerinnspill sømløst går over i sammenhengende og kontekstuelt relevante svar.

Løsningsoversikt

Følgende diagram illustrerer løsningsarkitekturen.

Løsningsoversikt

I de følgende delene går vi gjennom trinnene for å implementere denne løsningen og dens komponenter.

Sett opp en MongoDB-klynge

For å opprette en gratis MongoDB Atlas-klynge, følg instruksjonene i Opprett en klynge. Sett opp databasen adgang og nettverk adgang.

Implementer SageMaker-innbyggingsmodellen

Du kan velge innbyggingsmodellen (ALL MiniLM L6 v2) på SageMaker JumpStart-modeller, bærbare datamaskiner, løsninger side.

SageMaker JumpStart-modeller, bærbare datamaskiner, løsninger

Velg Distribuer å distribuere modellen.

Bekreft at modellen er vellykket distribuert, og bekreft at endepunktet er opprettet.

modellen er vellykket distribuert

Vektorinnbygging

Vektorinnbygging er en prosess for å konvertere en tekst eller et bilde til en vektorrepresentasjon. Med følgende kode kan vi generere vektorinnbygginger med SageMaker JumpStart og oppdatere samlingen med den opprettede vektoren 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 du oppdaterer et enkelt objekt i en samling. For å oppdatere alle objekter følg instruksjoner.

MongoDB vektordatalager

MongoDB Atlas vektorsøk er en ny funksjon som lar deg lagre og søke etter vektordata i MongoDB. Vektordata er en type data som representerer et punkt i et høydimensjonalt rom. Denne typen data brukes ofte i ML- og kunstig intelligens-applikasjoner. MongoDB Atlas Vector Search bruker en teknikk som kalles k-nærmeste naboer (k-NN) for å søke etter lignende vektorer. k-NN fungerer ved å finne de k mest like vektorene til en gitt vektor. De mest like vektorene er de som er nærmest den gitte vektoren når det gjelder den euklidiske avstanden.

Lagring av vektordata ved siden av driftsdata kan forbedre ytelsen ved å redusere behovet for å flytte data mellom ulike lagringssystemer. Dette er spesielt gunstig for applikasjoner som krever sanntidstilgang til vektordata.

Lag en vektorsøkindeks

Det neste trinnet er å lage en MongoDB Vector Search-indeks på vektorfeltet du opprettet i forrige trinn. MongoDB bruker knnVector skriv for å indeksere vektorinnbygginger. Vektorfeltet skal representeres som en rekke tall (bare BSON int32, int64 eller doble datatyper).

Referere til Gjennomgå knnVector Type begrensninger for mer informasjon om begrensningene til knnVector type.

Følgende kode er en eksempelindeksdefinisjon:

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

Vær oppmerksom på at dimensjonen må samsvare med dimensjonen for innbyggingsmodellen din.

Spørr vektordatalageret

Du kan spørre vektordatalageret ved å bruke Aggregeringsrørledning for vektorsøk. Den bruker Vector Search-indeksen og utfører en semantisk søk på vektordatalageret.

Følgende kode er en eksempelsøkedefinisjon:

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

Distribuer den store språkmodellen SageMaker

SageMaker JumpStart foundation-modeller er forhåndstrente store språkmodeller (LLMs) som brukes til å løse en rekke naturlige språkbehandlingsoppgaver (NLP), for eksempel tekstoppsummering, spørsmålssvar og naturlig språkslutning. De er tilgjengelige i en rekke størrelser og konfigurasjoner. I denne løsningen bruker vi Klemme ansiktet FLAN-T5-XL modell.

Søk etter FLAN-T5-XL-modellen i SageMaker JumpStart.

Søk etter FLAN-T5-XL

Velg Distribuer for å sette opp FLAN-T5-XL-modellen.

Distribuer

Bekreft at modellen er implementert og at endepunktet er aktivt.

Retrieval-Augmented Generation med LangChain, Amazon SageMaker JumpStart og MongoDB Atlas semantisk søk ​​| Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Lag en Amazon Lex-bot

For å lage en Amazon Lex-bot, fullfør følgende trinn:

  1. Velg på Amazon Lex-konsollen Opprett bot.

Opprett bot

  1. Til Botnavn, skriv inn et navn.
  2. Til Runtime rolle, plukke ut Lag en rolle med grunnleggende Amazon Lex -tillatelser.
    Retrieval-Augmented Generation med LangChain, Amazon SageMaker JumpStart og MongoDB Atlas semantisk søk ​​| Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  3. Angi språkinnstillingene dine, og velg deretter Ferdig.
    Retrieval-Augmented Generation med LangChain, Amazon SageMaker JumpStart og MongoDB Atlas semantisk søk ​​| Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  4. Legg til et eksempel på ytring i NewIntent UI og velg Lagre intensjon.
    Retrieval-Augmented Generation med LangChain, Amazon SageMaker JumpStart og MongoDB Atlas semantisk søk ​​| Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  5. Naviger til FallbackIntent som ble opprettet for deg som standard og veksle Aktiv i Oppfyllelse seksjon.
    veksle Aktiv
  6. Velg Bygge og etter at byggingen er vellykket, velg Test.
    Bygg og test
  7. Før du tester, velg tannhjulikonet.
    Retrieval-Augmented Generation med LangChain, Amazon SageMaker JumpStart og MongoDB Atlas semantisk søk ​​| Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  8. Spesifiser AWS Lambda funksjon som vil samhandle med MongoDB Atlas og LLM for å gi svar. Følg for å lage lambda-funksjonen disse trinnene.
    9. Spesifiser AWS Lambda-funksjonen
  9. Du kan nå samhandle med LLM.

Rydd opp

Gjør følgende for å rydde opp i ressursene dine:

  1. Slett Amazon Lex-boten.
  2. Slett Lambda-funksjonen.
  3. Slett LLM SageMaker-endepunktet.
  4. Slett innbyggingsmodellen SageMaker-endepunkt.
  5. Slett MongoDB Atlas-klyngen.

konklusjonen

I innlegget viste vi hvordan du lager en enkel bot som bruker MongoDB Atlas semantisk søk ​​og integreres med en modell fra SageMaker JumpStart. Denne boten lar deg raskt prototype brukerinteraksjon med forskjellige LLM-er i SageMaker Jumpstart mens du parer dem med konteksten som kommer fra MongoDB Atlas.

Som alltid tar AWS gjerne tilbakemeldinger. Gi tilbakemelding og spørsmål i kommentarfeltet.


Om forfatterne

Retrieval-Augmented Generation med LangChain, Amazon SageMaker JumpStart og MongoDB Atlas semantisk søk ​​| Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Igor Alekseev er Senior Partner Solution Architect hos AWS i data- og analysedomene. I sin rolle jobber Igor med strategiske partnere som hjelper dem med å bygge komplekse, AWS-optimaliserte arkitekturer. Før han begynte i AWS, implementerte han som Data/Solution Architect mange prosjekter i Big Data-domenet, inkludert flere datainnsjøer i Hadoop-økosystemet. Som dataingeniør var han involvert i å bruke AI/ML til svindeldeteksjon og kontorautomatisering.


Retrieval-Augmented Generation med LangChain, Amazon SageMaker JumpStart og MongoDB Atlas semantisk søk ​​| Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Babu Srinivasan
er Senior Partner Solutions Architect hos MongoDB. I sin nåværende rolle jobber han med AWS for å bygge de tekniske integrasjonene og referansearkitekturene for AWS- og MongoDB-løsningene. Han har mer enn to tiår med erfaring innen database- og skyteknologier. Han brenner for å tilby tekniske løsninger til kunder som arbeider med flere globale systemintegratorer (GSI) på tvers av flere geografier.

Tidstempel:

Mer fra AWS maskinlæring