Iniziare con gli incorporamenti di testo di Amazon Titan in Amazon Bedrock | Servizi Web di Amazon

Iniziare con gli incorporamenti di testo di Amazon Titan in Amazon Bedrock | Servizi Web di Amazon

Gli incorporamenti svolgono un ruolo chiave nell'elaborazione del linguaggio naturale (NLP) e nell'apprendimento automatico (ML). Incorporamento del testo si riferisce al processo di trasformazione del testo in rappresentazioni numeriche che risiedono in uno spazio vettoriale ad alta dimensione. Questa tecnica si ottiene attraverso l'uso di algoritmi ML che consentono la comprensione del significato e del contesto dei dati (relazioni semantiche) e l'apprendimento di relazioni e modelli complessi all'interno dei dati (relazioni sintattiche). È possibile utilizzare le rappresentazioni vettoriali risultanti per un'ampia gamma di applicazioni, ad esempio il recupero di informazioni, la classificazione del testo, l'elaborazione del linguaggio naturale e molte altre.

Incorporamenti di testo di Amazon Titan è un modello di incorporamento del testo che converte il testo in linguaggio naturale, costituito da singole parole, frasi o anche documenti di grandi dimensioni, in rappresentazioni numeriche che possono essere utilizzate per alimentare casi d'uso come ricerca, personalizzazione e clustering basati sulla somiglianza semantica.

In questo post, discutiamo del modello Amazon Titan Text Embeddings, delle sue caratteristiche e di casi d'uso di esempio.

Alcuni concetti chiave includono:

  • La rappresentazione numerica del testo (vettori) cattura la semantica e le relazioni tra le parole
  • Gli incorporamenti ricchi possono essere utilizzati per confrontare la somiglianza del testo
  • Gli incorporamenti di testo multilingue possono identificare il significato in diverse lingue

Come viene convertito un pezzo di testo in un vettore?

Esistono più tecniche per convertire una frase in un vettore. Un metodo popolare consiste nell'utilizzare algoritmi di incorporamento di parole, come Word2Vec, GloVe o FastText, e quindi aggregare le incorporazioni di parole per formare una rappresentazione vettoriale a livello di frase.

Un altro approccio comune consiste nell’utilizzare modelli linguistici di grandi dimensioni (LLM), come BERT o GPT, che possono fornire incorporamenti contestualizzati per intere frasi. Questi modelli si basano su architetture di deep learning come Transformers, che possono catturare in modo più efficace le informazioni contestuali e le relazioni tra le parole in una frase.

Iniziare con gli incorporamenti di testo di Amazon Titan in Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Perché abbiamo bisogno di un modello di incorporamento?

Gli incorporamenti di vettori sono fondamentali affinché gli LLM comprendano i gradi semantici del linguaggio e consentono inoltre agli LLM di eseguire bene le attività di PNL a valle come l'analisi del sentiment, il riconoscimento delle entità denominate e la classificazione del testo.

Oltre alla ricerca semantica, puoi utilizzare gli incorporamenti per aumentare le tue richieste per risultati più accurati tramite Retrieval Augmented Generation (RAG), ma per utilizzarli dovrai archiviarli in un database con funzionalità vettoriali.

Iniziare con gli incorporamenti di testo di Amazon Titan in Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Il modello Amazon Titan Text Embeddings è ottimizzato per il recupero del testo per abilitare i casi d'uso RAG. Ti consente di convertire prima i tuoi dati di testo in rappresentazioni numeriche o vettori, quindi di utilizzare tali vettori per cercare accuratamente passaggi rilevanti da un database vettoriale, consentendoti di sfruttare al massimo i tuoi dati proprietari in combinazione con altri modelli di base.

Poiché Amazon Titan Text Embeddings è un modello gestito su Roccia Amazzonica, viene offerto come un'esperienza completamente serverless. Puoi usarlo tramite Amazon Bedrock REST API o l'SDK AWS. I parametri richiesti sono il testo di cui desideri generare gli incorporamenti e il file modelID parametro, che rappresenta il nome del modello Amazon Titan Text Embeddings. Il codice seguente è un esempio che utilizza l'SDK AWS per Python (Boto3):

import boto3
import json #Create the connection to Bedrock
bedrock = boto3.client( service_name='bedrock', region_name='us-west-2', ) bedrock_runtime = boto3.client( service_name='bedrock-runtime', region_name='us-west-2', ) # Let's see all available Amazon Models
available_models = bedrock.list_foundation_models() for model in available_models['modelSummaries']: if 'amazon' in model['modelId']: print(model) # Define prompt and model parameters
prompt_data = """Write me a poem about apples""" body = json.dumps({ "inputText": prompt_data,
}) model_id = 'amazon.titan-embed-text-v1' #look for embeddings in the modelID
accept = 'application/json' content_type = 'application/json' # Invoke model response = bedrock_runtime.invoke_model( body=body, modelId=model_id, accept=accept, contentType=content_type
) # Print response
response_body = json.loads(response['body'].read())
embedding = response_body.get('embedding') #Print the Embedding print(embedding)

L'output sarà simile al seguente:

[-0.057861328, -0.15039062, -0.4296875, 0.31054688, ..., -0.15625]

Fare riferimento a Configurazione di Amazon Bedrock boto3 per ulteriori dettagli su come installare i pacchetti richiesti, connettersi ad Amazon Bedrock e richiamare i modelli.

Funzionalità degli incorporamenti di testo di Amazon Titan

Con Amazon Titan Text Embeddings, puoi inserire fino a 8,000 token, rendendolo particolarmente adatto a lavorare con singole parole, frasi o interi documenti in base al tuo caso d'uso. Titano Amazzonico restituisce vettori di output di dimensione 1536, conferendogli un elevato grado di precisione, ottimizzando al contempo risultati economici a bassa latenza.

Amazon Titan Text Embeddings supporta la creazione e l'esecuzione di query di incorporamenti di testo in oltre 25 lingue diverse. Ciò significa che puoi applicare il modello ai tuoi casi d'uso senza dover creare e mantenere modelli separati per ogni lingua che desideri supportare.

Avere un unico modello di incorporamento addestrato su più lingue offre i seguenti vantaggi principali:

  • Portata più ampia – Supportando oltre 25 lingue immediatamente, puoi espandere la portata delle tue applicazioni a utenti e contenuti in molti mercati internazionali.
  • Prestazioni costanti – Con un modello unificato che copre più lingue, ottieni risultati coerenti tra le lingue invece di ottimizzare separatamente per lingua. Il modello viene addestrato in modo olistico in modo da ottenere il vantaggio tra le lingue.
  • Supporto per query multilingue – Amazon Titan Text Embeddings consente di eseguire query sugli incorporamenti di testo in una qualsiasi delle lingue supportate. Ciò fornisce flessibilità per recuperare contenuti semanticamente simili tra lingue senza essere limitati a una singola lingua. Puoi creare applicazioni che eseguono query e analizzano dati multilingue utilizzando lo stesso spazio di incorporamento unificato.

Al momento della stesura di questo documento sono supportate le seguenti lingue:

  • Arabo
  • Cinese (semplificato)
  • Cinese (tradizionale)
  • Ceco
  • Olandese
  • Inglese
  • Francese
  • Tedesco
  • ebraico
  • Hindi
  • Italiano
  • Giapponese
  • kannada
  • Coreano
  • Malayalam
  • marathi
  • Polacco
  • Portoghese
  • Russo
  • Spagnolo
  • svedese
  • Tagalog filippino
  • tamil
  • telugu
  • Turco

Utilizzo degli incorporamenti di testo di Amazon Titan con LangChain

LangChain è un popolare framework open source con cui lavorare IA generativa modelli e tecnologie di supporto. Include a Cliente BedrockEmbeddings che avvolge comodamente l'SDK Boto3 con un livello di astrazione. IL BedrockEmbeddings client ti consente di lavorare direttamente con testo e incorporamenti, senza conoscere i dettagli della richiesta JSON o delle strutture di risposta. Quello che segue è un semplice esempio:

from langchain.embeddings import BedrockEmbeddings #create an Amazon Titan Text Embeddings client
embeddings_client = BedrockEmbeddings() #Define the text from which to create embeddings
text = "Can you please tell me how to get to the bakery?" #Invoke the model
embedding = embeddings_client.embed_query(text) #Print response
print(embedding)

Puoi anche usare LangChain BedrockEmbeddings client insieme al client Amazon Bedrock LLM per semplificare l'implementazione di RAG, ricerca semantica e altri modelli relativi all'incorporamento.

Casi d'uso per gli incorporamenti

Sebbene RAG sia attualmente il caso d'uso più popolare per lavorare con gli incorporamenti, esistono molti altri casi d'uso in cui è possibile applicare gli incorporamenti. Di seguito sono riportati alcuni scenari aggiuntivi in ​​cui è possibile utilizzare gli incorporamenti per risolvere problemi specifici, da soli o in collaborazione con un LLM:

  • Domanda e risposta – Gli incorporamenti possono aiutare a supportare le interfacce di domande e risposte attraverso il modello RAG. La generazione di incorporamenti abbinata a un database vettoriale consente di trovare corrispondenze strette tra domande e contenuti in un repository di conoscenza.
  • Raccomandazioni personalizzate – Analogamente a domanda e risposta, puoi utilizzare gli incorporamenti per trovare destinazioni di vacanza, università, veicoli o altri prodotti in base ai criteri forniti dall'utente. Ciò potrebbe assumere la forma di un semplice elenco di corrispondenze oppure è possibile utilizzare un LLM per elaborare ciascuna raccomandazione e spiegare come soddisfa i criteri dell'utente. Potresti anche utilizzare questo approccio per generare articoli personalizzati "10 migliori" per un utente in base alle sue esigenze specifiche.
  • Gestione dati – Quando si hanno origini dati che non si associano in modo chiaro tra loro, ma è presente contenuto di testo che descrive il record di dati, è possibile utilizzare gli incorporamenti per identificare potenziali record duplicati. Ad esempio, potresti utilizzare gli incorporamenti per identificare candidati duplicati che potrebbero utilizzare formattazioni e abbreviazioni diverse o persino avere nomi tradotti.
  • Razionalizzazione del portafoglio applicativo – Quando si cerca di allineare i portafogli di applicazioni tra una società madre e un'acquisizione, non è sempre ovvio da dove iniziare per individuare potenziali sovrapposizioni. La qualità dei dati di gestione della configurazione può rappresentare un fattore limitante e può essere difficile coordinare i team per comprendere il panorama dell'applicazione. Utilizzando la corrispondenza semantica con gli incorporamenti, possiamo eseguire una rapida analisi tra i portafogli di applicazioni per identificare applicazioni candidate ad alto potenziale per la razionalizzazione.
  • Raggruppamento dei contenuti – Puoi utilizzare gli incorporamenti per facilitare il raggruppamento di contenuti simili in categorie che potresti non conoscere in anticipo. Ad esempio, supponiamo che tu abbia una raccolta di e-mail di clienti o recensioni di prodotti online. È possibile creare incorporamenti per ciascun elemento, quindi eseguire tali incorporamenti k-significa raggruppamento per identificare raggruppamenti logici di preoccupazioni dei clienti, elogi o reclami sui prodotti o altri temi. È quindi possibile generare riepiloghi mirati dal contenuto di tali raggruppamenti utilizzando un LLM.

Esempio di ricerca semantica

Nei nostri esempio su GitHub, dimostriamo una semplice applicazione di ricerca di incorporamenti con Amazon Titan Text Embeddings, LangChain e Streamlit.

L'esempio abbina la query di un utente alle voci più vicine in un database vettoriale in memoria. Quindi visualizziamo tali corrispondenze direttamente nell'interfaccia utente. Ciò può essere utile se desideri risolvere i problemi di un'applicazione RAG o valutare direttamente un modello di incorporamento.

Per semplicità, utilizziamo il file in-memory FAISS database per archiviare e cercare vettori di incorporamento. In uno scenario reale su larga scala, probabilmente vorrai utilizzare un archivio dati persistente come motore vettoriale per Amazon OpenSearch Serverless oppure pgvettore estensione per PostgreSQL.

Prova alcune istruzioni dall'applicazione Web in diverse lingue, come le seguenti:

  • Come posso monitorare il mio utilizzo?
  • Come posso personalizzare i modelli?
  • Quali linguaggi di programmazione posso utilizzare?
  • Comment mes données sont-elles sécurisées ?
  • 私のデータはどのように保護されていますか?
  • Quali fornitori di modelli sono disponibili tramite Bedrock?
  • In quale regione è disponibile Amazon Bedrock?
  • 有哪些级别的支持?

Tieni presente che anche se il materiale originale era in inglese, le query in altre lingue venivano abbinate a voci pertinenti.

Conclusione

Le capacità di generazione del testo dei modelli di base sono molto interessanti, ma è importante ricordare che comprendere il testo, trovare contenuti rilevanti da un insieme di conoscenze e creare connessioni tra i passaggi sono cruciali per ottenere il pieno valore dell'intelligenza artificiale generativa. Continueremo a vedere emergere nuovi e interessanti casi d'uso per gli incorporamenti nei prossimi anni man mano che questi modelli continuano a migliorare.

Prossimi passi

Puoi trovare ulteriori esempi di incorporamenti come notebook o applicazioni demo nei seguenti workshop:


Informazioni sugli autori

Iniziare con gli incorporamenti di testo di Amazon Titan in Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Jason Stehle è un Senior Solutions Architect presso AWS, con sede nell'area del New England. Collabora con i clienti per allineare le capacità di AWS alle loro maggiori sfide aziendali. Fuori dal lavoro, passa il tempo costruendo oggetti e guardando film a fumetti con la sua famiglia.

Iniziare con gli incorporamenti di testo di Amazon Titan in Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Nitin Eusebio è un Senior Enterprise Solutions Architect presso AWS, esperto in ingegneria del software, architettura aziendale e AI/ML. È profondamente appassionato nell’esplorare le possibilità dell’intelligenza artificiale generativa. Collabora con i clienti per aiutarli a creare applicazioni ben architettate sulla piattaforma AWS e si dedica alla risoluzione delle sfide tecnologiche e all'assistenza nel loro percorso verso il cloud.

Iniziare con gli incorporamenti di testo di Amazon Titan in Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Raja Pathak è Principal Solutions Architect e consulente tecnico per grandi aziende Fortune 50 e istituti di servizi finanziari di medie dimensioni (FSI) in Canada e negli Stati Uniti. È specializzato in applicazioni di machine learning come l'intelligenza artificiale generativa, l'elaborazione del linguaggio naturale, l'elaborazione intelligente dei documenti e MLOps.

Iniziare con gli incorporamenti di testo di Amazon Titan in Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Mani Khanuja è un Tech Lead – Generative AI Specialists, autore del libro – Applied Machine Learning and High Performance Computing on AWS e membro del Consiglio di amministrazione della Women in Manufacturing Education Foundation. Conduce progetti di machine learning (ML) in vari settori come la visione artificiale, l'elaborazione del linguaggio naturale e l'intelligenza artificiale generativa. Aiuta i clienti a creare, addestrare e distribuire modelli di machine learning di grandi dimensioni su larga scala. Partecipa a conferenze interne ed esterne come re:Invent, Women in Manufacturing West, webinar su YouTube e GHC 23. Nel tempo libero le piace fare lunghe corse lungo la spiaggia.

Iniziare con gli incorporamenti di testo di Amazon Titan in Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Marco Roy è Principal Machine Learning Architect per AWS e aiuta i clienti a progettare e creare soluzioni AI/ML. Il lavoro di Mark copre un'ampia gamma di casi d'uso del machine learning, con un interesse primario per la visione artificiale, il deep learning e la scalabilità del machine learning in tutta l'azienda. Ha aiutato aziende in molti settori, tra cui assicurazioni, servizi finanziari, media e intrattenimento, sanità, servizi pubblici e produzione. Mark detiene sei certificazioni AWS, inclusa la certificazione di specialità ML. Prima di entrare in AWS, Mark è stato architetto, sviluppatore e leader tecnologico per oltre 25 anni, di cui 19 nei servizi finanziari.

Timestamp:

Di più da Apprendimento automatico di AWS