Recupero potenziato della generazione con LangChain, Amazon SageMaker JumpStart e ricerca semantica di MongoDB Atlas

Miglioramento avanzato del recupero della generazione con LangChain, Amazon SageMaker JumpStart e ricerca semantica di MongoDB Atlas

I modelli di IA generativa hanno il potenziale per rivoluzionare le operazioni aziendali, ma le imprese devono considerare attentamente come sfruttarne il potere superando sfide come la tutela dei dati e la garanzia della qualità dei contenuti generati da IA.

Il framework Retrieval-Augmented Generation (RAG) potenzia le istruzioni con dati esterni provenienti da più fonti, come repository di documenti, database o API, per rendere i modelli di base efficaci per compiti specifici del settore. Questo articolo presenta le capacità del modello RAG e evidenzia il potenziale trasformativo di MongoDB Atlas con la sua funzione di ricerca vettoriale.

MongoDB Atlas è una suite integrata di servizi di dati che accelerano e semplificano lo sviluppo di applicazioni basate sui dati. Il suo archivio dati vettoriale si integra perfettamente con l’archiviazione dei dati operativi, eliminando la necessità di un database separato. Questa integrazione consente potenti capacità di ricerca semantica attraverso la ricerca vettoriale, un modo rapido per costruire ricerche semantiche e applicazioni alimentate da IA.

Amazon SageMaker consente alle aziende di creare, allenare e implementare modelli di apprendimento automatico (ML). Amazon SageMaker JumpStart fornisce modelli preallenati e dati per aiutarti a iniziare con l’ML. Puoi accedere, personalizzare e implementare modelli e dati preallenati tramite la pagina di accesso a SageMaker JumpStart in Amazon SageMaker Studio con pochi clic.

Amazon Lex è un’interfaccia conversazionale che aiuta le aziende a creare chatbot e assistenti vocali che si impegnano in interazioni naturali e realistiche. Integrando Amazon Lex con l’IA generativa, le aziende possono creare un ecosistema olistico in cui l’input dell’utente si trasforma senza soluzione di continuità in risposte coerenti e pertinenti dal punto di vista contestuale.

Panoramica della soluzione

Il seguente diagramma illustra l’architettura della soluzione.

Panoramica della soluzione

Nelle sezioni seguenti, descriveremo i passaggi per implementare questa soluzione e i suoi componenti.

Configurazione di un cluster MongoDB

Per creare un cluster MongoDB Atlas di livello gratuito, seguire le istruzioni in Crea un cluster. Configurare l’accesso al database e l’accesso alla rete.

Implementazione del modello di incorporamento di SageMaker

Puoi scegliere il modello di incorporamento (ALL MiniLM L6 v2) nella pagina Modelli, notebook, soluzioni SageMaker JumpStart.

Modelli, notebook, soluzioni SageMaker JumpStart

Scegli Deploy per distribuire il modello.

Verifica che il modello sia distribuito con successo e verifica che sia stato creato il punto finale.

il modello è stato distribuito con successo

Vettore di incorporamento

Il vettore di incorporamento è un processo di conversione di un testo o immagine in una rappresentazione vettoriale. Con il codice seguente, possiamo generare vettori di incorporamento con SageMaker JumpStart e aggiornare la collezione con il vettore creato per ogni documento:

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)# aggiorna il documentoupdate = {'$set': {vector_field_name :  embeddings[0]}}collection.update_one(query, update)

Il codice sopra mostra come aggiornare un singolo oggetto in una collezione. Per aggiornare tutti gli oggetti seguire le istruzioni.

Archivio dati vettoriale di MongoDB

MongoDB Atlas Vector Search è una nuova funzionalità che consente di archiviare e cercare dati vettoriali in MongoDB. I dati vettoriali sono un tipo di dati che rappresenta un punto in uno spazio ad alta dimensionalità. Questo tipo di dati viene spesso utilizzato in applicazioni di intelligenza artificiale e machine learning. MongoDB Atlas Vector Search utilizza una tecnica chiamata k-nearest neighbors (k-NN) per cercare vettori simili. k-NN funziona trovando i k vettori più simili a un dato vettore. I vettori più simili sono quelli che sono più vicini al dato vettore in termini di distanza euclidea.

Archiviare i dati vettoriali accanto ai dati operativi può migliorare le prestazioni riducendo la necessità di spostare i dati tra diversi sistemi di archiviazione. Questo è particolarmente vantaggioso per le applicazioni che richiedono l’accesso in tempo reale ai dati vettoriali.

Crea un indice di ricerca vettoriale

Il passo successivo è creare un indice di ricerca vettoriale di MongoDB sul campo vettoriale creato nel passaggio precedente. MongoDB utilizza il tipo knnVector per indicizzare gli incorporamenti vettoriali. Il campo vettoriale deve essere rappresentato come un array di numeri (solo tipi di dati BSON int32, int64 o double).

Fai riferimento a Review knnVector Limitazioni di tipo per ulteriori informazioni sulle limitazioni del tipo knnVector.

Il codice seguente è una definizione di indice di esempio:

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

Nota che la dimensione deve corrispondere alla dimensione del modello di incorporamento.

Interroga l’archivio dati vettoriale

Puoi interrogare l’archivio dati vettoriale utilizzando l’pipeline di aggregazione di ricerca vettoriale. Utilizza l’indice di ricerca vettoriale e esegue una ricerca semantica sull’archivio dati vettoriale.

Il seguente codice è una definizione di ricerca di esempio:

{  $search: {    "index": "<nome indice>", // opzionale, predefinito a "default"    "knnBeta": {      "vector": [<array-di-numeri>],      "path": "<campo-da-cercare>",      "filter": {<specifiche-filtro>},      "k": <numero>,      "score": {<opzioni>}    }  }}

Implementare il grande modello linguistico di SageMaker

I modelli di base di SageMaker JumpStart sono modelli linguistici pre-addestrati di grandi dimensioni (LLMs) utilizzati per risolvere una varietà di compiti di elaborazione del linguaggio naturale (NLP), come il riassunto del testo, le risposte alle domande e l’inferenza del linguaggio naturale. Sono disponibili in una varietà di dimensioni e configurazioni. In questa soluzione, utilizziamo il modello FLAN-T5-XL di Hugging Face.

Cerca il modello FLAN-T5-XL in SageMaker JumpStart.

Cerca il modello FLAN-T5-XL

Scegli Implementa per configurare il modello FLAN-T5-XL.

Implementa

Verifica che il modello sia implementato correttamente e che il punto di accesso sia attivo.

Crea un bot Amazon Lex

Per creare un bot Amazon Lex, segui i seguenti passaggi:

  1. Sulla console di Amazon Lex, scegli Crea bot.
Crea bot
  1. Per Nome del bot, inserisci un nome.
  2. Per Ruolo dell’ambiente di esecuzione, seleziona Crea un ruolo con le autorizzazioni di base di Amazon Lex.
  3. Specifica le impostazioni di lingua, quindi scegli Fatto.
  4. Aggiungi un’espressione campione nell’interfaccia NewIntent e scegli Salva intento.
  5. Vai all’IntentoFallback creato automaticamente per te e attiva Attivo nella sezione Adempimento. Attiva
  6. Scegli Genera e dopo che la generazione è avvenuta con successo, scegli Prova. Genera e Prova
  7. Prima di effettuare la prova, scegli l’icona delle impostazioni.
  8. Specifica la funzione AWS Lambda che interagirà con MongoDB Atlas e LLM per fornire risposte. Per creare la funzione lambda, segui questi passaggi. 9. Specifica la funzione AWS Lambda
  9. Ora puoi interagire con LLM.

Pulizia

Per pulire le risorse, seguire i seguenti passaggi:

  1. Eliminare il bot Amazon Lex.
  2. Eliminare la funzione Lambda.
  3. Eliminare il punto finale LLM di SageMaker.
  4. Eliminare il punto finale del modello delle incapsulazioni di SageMaker.
  5. Eliminare il cluster di MongoDB Atlas.

Conclusioni

Nel post, abbiamo mostrato come creare un semplice bot che utilizza la ricerca semantica di MongoDB Atlas e si integra con un modello di SageMaker JumpStart. Questo bot consente di prototipare rapidamente l’interazione dell’utente con diversi LLM in SageMaker Jumpstart abbinandoli al contesto che proviene da MongoDB Atlas.

Come sempre, AWS accoglie i feedback. Si prega di lasciare i vostri commenti e domande nella sezione commenti.