Retrieval-Augmented Generation met LangChain, Amazon SageMaker JumpStart en MongoDB Atlas semantisch zoeken | Amazon-webservices

Retrieval-Augmented Generation met LangChain, Amazon SageMaker JumpStart en MongoDB Atlas semantisch zoeken | Amazon-webservices

generatieve AI Modellen hebben het potentieel om de bedrijfsactiviteiten radicaal te veranderen, maar bedrijven moeten zorgvuldig overwegen hoe ze hun macht kunnen benutten en tegelijkertijd uitdagingen kunnen overwinnen, zoals het beschermen van gegevens en het waarborgen van de kwaliteit van door AI gegenereerde inhoud.

Het Retrieval-Augmented Generation (RAG)-framework breidt aanwijzingen uit met externe gegevens uit meerdere bronnen, zoals documentopslagplaatsen, databases of API's, om basismodellen effectief te maken voor domeinspecifieke taken. Dit bericht presenteert de mogelijkheden van het RAG-model en benadrukt het transformatieve potentieel van MongoDB Atlas met zijn Vector Search-functie.

MongoDB-atlas is een geïntegreerde suite van datadiensten die de ontwikkeling van datagestuurde applicaties versnellen en vereenvoudigen. De vectorgegevensopslag kan naadloos worden geïntegreerd met operationele gegevensopslag, waardoor er geen aparte database meer nodig is. Deze integratie maakt krachtige semantische zoekmogelijkheden mogelijk Vector zoeken, een snelle manier om semantische zoek- en AI-aangedreven applicaties te bouwen.

Amazon Sage Maker stelt bedrijven in staat machine learning (ML)-modellen te bouwen, trainen en implementeren. Amazon SageMaker JumpStart biedt vooraf getrainde modellen en gegevens om u te helpen aan de slag te gaan met ML. U kunt vooraf getrainde modellen en gegevens openen, aanpassen en implementeren via de startpagina van SageMaker JumpStart in Amazon SageMaker Studio met slechts een paar klikken.

Amazon-Lex is een conversatie-interface waarmee bedrijven chatbots en stembots kunnen maken die natuurlijke, levensechte interacties aangaan. Door Amazon Lex te integreren met generatieve AI kunnen bedrijven een holistisch ecosysteem creëren waarin gebruikersinvoer naadloos overgaat in samenhangende en contextueel relevante antwoorden.

Overzicht oplossingen

Het volgende diagram illustreert de oplossingsarchitectuur.

Overzicht oplossingen

In de volgende secties doorlopen we de stappen om deze oplossing en de componenten ervan te implementeren.

Stel een MongoDB-cluster in

Volg de instructies in om een ​​gratis laag MongoDB Atlas-cluster te maken Maak een cluster. Stel de database in toegang en netwerk toegang.

Implementeer het SageMaker-insluitingsmodel

U kunt het inbeddingsmodel (ALL MiniLM L6 v2) kiezen op de SageMaker JumpStart-modellen, notebooks, oplossingen pagina.

SageMaker JumpStart-modellen, notebooks, oplossingen

Kies Implementeren om het model in te zetten.

Controleer of het model succesvol is geïmplementeerd en of het eindpunt is gemaakt.

model is succesvol geïmplementeerd

Vector inbedding

Vector inbedding is een proces waarbij een tekst of afbeelding wordt omgezet in een vectorrepresentatie. Met de volgende code kunnen we vectorinsluitingen genereren met SageMaker JumpStart en de verzameling bijwerken met de gemaakte vector voor elk document:

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)

De bovenstaande code laat zien hoe u één object in een verzameling kunt bijwerken. Om alle objecten bij te werken volgt u de instructies.

MongoDB vectorgegevensopslag

MongoDB Atlas Vector-zoekopdracht is een nieuwe functie waarmee u vectorgegevens in MongoDB kunt opslaan en doorzoeken. Vectorgegevens zijn een soort gegevens die een punt in een hoogdimensionale ruimte vertegenwoordigen. Dit soort gegevens wordt vaak gebruikt in ML- en kunstmatige intelligentie-toepassingen. MongoDB Atlas Vector Search maakt gebruik van een techniek genaamd k-dichtstbijzijnde buren (k-NN) om naar vergelijkbare vectoren te zoeken. k-NN werkt door de k te vinden die het meest op een bepaalde vector lijken. De meest vergelijkbare vectoren zijn degenen die het dichtst bij de gegeven vector liggen in termen van de Euclidische afstand.

Het opslaan van vectorgegevens naast operationele gegevens kan de prestaties verbeteren door de noodzaak om gegevens tussen verschillende opslagsystemen te verplaatsen te verminderen. Dit is vooral gunstig voor toepassingen die realtime toegang tot vectorgegevens vereisen.

Maak een Vector Search-index

De volgende stap is het maken van een MongoDB Vectorzoekindex op het vectorveld dat u in de vorige stap hebt gemaakt. MongoDB maakt gebruik van de knnVector type om vectorinbedding te indexeren. Het vectorveld moet worden weergegeven als een reeks getallen (alleen BSON int32, int64 of dubbele gegevenstypen).

Verwijzen naar Bekijk knnVector-typebeperkingen voor meer informatie over de beperkingen van de knnVector type.

De volgende code is een voorbeeld van een indexdefinitie:

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

Houd er rekening mee dat de dimensie moet overeenkomen met de dimensie van uw inbeddingsmodel.

Query uitvoeren in het vectorgegevensarchief

U kunt het vectorgegevensarchief opvragen met behulp van de Vector Zoekaggregatiepijplijn. Het maakt gebruik van de Vector Search-index en voert een semantisch zoeken op de vectorgegevensopslag.

De volgende code is een voorbeeld van een zoekdefinitie:

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

Implementeer het grote taalmodel van SageMaker

SageMaker JumpStart-basismodellen zijn vooraf getrainde grote taalmodellen (LLM's) die worden gebruikt om een ​​verscheidenheid aan taken op het gebied van natuurlijke taalverwerking (NLP) op te lossen, zoals het samenvatten van teksten, het beantwoorden van vragen en het infereren van natuurlijke taal. Ze zijn verkrijgbaar in verschillende maten en configuraties. In deze oplossing gebruiken we de Gezicht knuffelen FLAN-T5-XL-model.

Zoek naar het FLAN-T5-XL-model in SageMaker JumpStart.

Zoek naar de FLAN-T5-XL

Kies Implementeren om het FLAN-T5-XL-model in te stellen.

Implementeren

Controleer of het model succesvol is geïmplementeerd en het eindpunt actief is.

Retrieval-Augmented Generation met LangChain, Amazon SageMaker JumpStart en MongoDB Atlas semantisch zoeken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Een Amazon Lex-bot maken

Voer de volgende stappen uit om een ​​Amazon Lex-bot te maken:

  1. Kies op de Amazon Lex-console Bot maken.

Bot maken

  1. Voor Bot naam, voer een naam in.
  2. Voor Runtime-rolselecteer Een rol maken met basisrechten voor Amazon Lex.
    Retrieval-Augmented Generation met LangChain, Amazon SageMaker JumpStart en MongoDB Atlas semantisch zoeken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  3. Geef uw taalinstellingen op en kies vervolgens Klaar .
    Retrieval-Augmented Generation met LangChain, Amazon SageMaker JumpStart en MongoDB Atlas semantisch zoeken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  4. Voeg een voorbeelduiting toe in de NewIntent UI en kies Bewaar intentie.
    Retrieval-Augmented Generation met LangChain, Amazon SageMaker JumpStart en MongoDB Atlas semantisch zoeken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  5. Navigeer naar de FallbackIntent die standaard voor u is gemaakt en schakel Actief in de Vervulling pagina.
    schakel Actief
  6. Kies Bouw en nadat de build succesvol is, kiest u test.
    Bouwen en testen
  7. Kies vóór het testen het tandwielpictogram.
    Retrieval-Augmented Generation met LangChain, Amazon SageMaker JumpStart en MongoDB Atlas semantisch zoeken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  8. Geef het AWS Lambda functie die zal communiceren met MongoDB Atlas en de LLM om antwoorden te geven. Volg om de lambda-functie te maken deze stappen.
    9. Specificeer de AWS Lambda-functie
  9. U kunt nu communiceren met de LLM.

Opruimen

Voer de volgende stappen uit om uw bronnen op te schonen:

  1. Verwijder de Amazon Lex-bot.
  2. Verwijder de Lambda-functie.
  3. Verwijder het LLM SageMaker-eindpunt.
  4. Verwijder het SageMaker-eindpunt van het inbeddingsmodel.
  5. Verwijder het MongoDB Atlas-cluster.

Conclusie

In de post hebben we laten zien hoe je een eenvoudige bot kunt maken die de semantische zoekfunctie van MongoDB Atlas gebruikt en kan worden geïntegreerd met een model van SageMaker JumpStart. Met deze bot kunt u snel een prototype maken van gebruikersinteractie met verschillende LLM's in SageMaker Jumpstart, terwijl u ze koppelt aan de context afkomstig uit MongoDB Atlas.

Zoals altijd verwelkomt AWS feedback. Laat uw feedback en vragen achter in het opmerkingengedeelte.


Over de auteurs

Retrieval-Augmented Generation met LangChain, Amazon SageMaker JumpStart en MongoDB Atlas semantisch zoeken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Igor Aleksejev is een Senior Partner Solution Architect bij AWS in het domein Data en Analytics. In zijn rol werkt Igor samen met strategische partners die hen helpen bij het bouwen van complexe, voor AWS geoptimaliseerde architecturen. Voordat hij bij AWS kwam, implementeerde hij als Data/Solution Architect veel projecten in het Big Data-domein, waaronder verschillende datameren in het Hadoop-ecosysteem. Als Data Engineer was hij betrokken bij het toepassen van AI/ML op fraudedetectie en kantoorautomatisering.


Retrieval-Augmented Generation met LangChain, Amazon SageMaker JumpStart en MongoDB Atlas semantisch zoeken | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Baboe Srinivasan
is een Senior Partner Solutions Architect bij MongoDB. In zijn huidige rol werkt hij samen met AWS om de technische integraties en referentiearchitecturen voor de AWS- en MongoDB-oplossingen te bouwen. Hij heeft meer dan twee decennia ervaring in database- en cloudtechnologieën. Hij is gepassioneerd door het bieden van technische oplossingen aan klanten die werken met meerdere Global System Integrators (GSI's) in meerdere regio's.

Tijdstempel:

Meer van AWS-machine learning