Noțiuni introductive cu Amazon Titan Text Embeddings în Amazon Bedrock | Amazon Web Services

Noțiuni introductive cu Amazon Titan Text Embeddings în Amazon Bedrock | Amazon Web Services

Embedding-urile joacă un rol cheie în procesarea limbajului natural (NLP) și învățarea automată (ML). Încorporarea textului se referă la procesul de transformare a textului în reprezentări numerice care locuiesc într-un spațiu vectorial cu dimensiuni mari. Această tehnică se realizează prin utilizarea algoritmilor ML care permit înțelegerea semnificației și contextului datelor (relații semantice) și învățarea relațiilor și modelelor complexe în cadrul datelor (relații sintactice). Puteți utiliza reprezentările vectoriale rezultate pentru o gamă largă de aplicații, cum ar fi regăsirea informațiilor, clasificarea textului, procesarea limbajului natural și multe altele.

Încorporare text Amazon Titan este un model de încorporare a textului care convertește textul în limbaj natural – format din cuvinte unice, fraze sau chiar documente mari – în reprezentări numerice care pot fi folosite pentru a alimenta cazuri de utilizare, cum ar fi căutarea, personalizarea și gruparea pe baza similitudinii semantice.

În această postare, discutăm despre modelul Amazon Titan Text Embeddings, caracteristicile acestuia și exemple de cazuri de utilizare.

Unele concepte cheie includ:

  • Reprezentarea numerică a textului (vectori) surprinde semantica și relațiile dintre cuvinte
  • Încorporarile bogate pot fi folosite pentru a compara similaritatea textului
  • Încorporarea textului multilingv poate identifica semnificația în diferite limbi

Cum se transformă o bucată de text într-un vector?

Există mai multe tehnici pentru a converti o propoziție într-un vector. O metodă populară este utilizarea algoritmilor de încorporare a cuvintelor, cum ar fi Word2Vec, GloVe sau FastText, și apoi agregarea înglobărilor de cuvinte pentru a forma o reprezentare vectorială la nivel de propoziție.

O altă abordare comună este utilizarea modelelor de limbaj mari (LLM), cum ar fi BERT sau GPT, care pot oferi încorporare contextualizate pentru propoziții întregi. Aceste modele se bazează pe arhitecturi de învățare profundă, cum ar fi Transformers, care pot capta mai eficient informațiile contextuale și relațiile dintre cuvintele dintr-o propoziție.

Getting started with Amazon Titan Text Embeddings in Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

De ce avem nevoie de un model de încorporare?

Încorporarea vectorială este fundamentală pentru ca LLM să înțeleagă gradele semantice ale limbajului și, de asemenea, să permită LLM-urilor să performeze bine în sarcinile NLP din aval, cum ar fi analiza sentimentelor, recunoașterea entităților numite și clasificarea textului.

Pe lângă căutarea semantică, puteți utiliza încorporarea pentru a vă spori solicitările pentru rezultate mai precise prin Retrieval Augmented Generation (RAG) - dar pentru a le utiliza, va trebui să le stocați într-o bază de date cu capabilități vectoriale.

Getting started with Amazon Titan Text Embeddings in Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Modelul Amazon Titan Text Embeddings este optimizat pentru preluarea textului pentru a permite cazuri de utilizare RAG. Vă permite să convertiți mai întâi datele text în reprezentări numerice sau vectori, apoi să utilizați acești vectori pentru a căuta cu precizie pasaje relevante dintr-o bază de date vectorială, permițându-vă să profitați la maximum de datele dvs. proprietare în combinație cu alte modele de bază.

Deoarece Amazon Titan Text Embeddings este un model gestionat Amazon Bedrock, este oferit ca o experiență complet fără server. Îl puteți folosi fie prin Amazon Bedrock REST API sau AWS SDK. Parametrii necesari sunt textul pe care doriți să îl generați înglobările și modelID parametru, care reprezintă numele modelului Amazon Titan Text Embeddings. Următorul cod este un exemplu de utilizare a SDK-ului AWS pentru 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)

Ieșirea va arăta cam așa:

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

A se referi la Configurare Amazon Bedrock boto3 pentru mai multe detalii despre cum să instalați pachetele necesare, conectați-vă la Amazon Bedrock și invocați modele.

Caracteristici ale Amazon Titan Text Embeddings

Cu Amazon Titan Text Embeddings, puteți introduce până la 8,000 de jetoane, făcându-l potrivit pentru a lucra cu cuvinte, expresii sau documente întregi, în funcție de cazul dvs. de utilizare. Amazon Titan returnează vectori de ieșire de dimensiunea 1536, oferindu-i un grad ridicat de acuratețe, optimizând în același timp pentru rezultate cu latență scăzută și rentabile.

Amazon Titan Text Embeddings acceptă crearea și interogarea înglobărilor pentru text în peste 25 de limbi diferite. Aceasta înseamnă că puteți aplica modelul cazurilor dvs. de utilizare fără a fi nevoie să creați și să mențineți modele separate pentru fiecare limbă pe care doriți să o acceptați.

Având un singur model de încorporare antrenat în mai multe limbi, oferă următoarele beneficii cheie:

  • Rază mai largă – Prin acceptarea a peste 25 de limbi din fabricație, puteți extinde acoperirea aplicațiilor dvs. la utilizatori și conținut pe multe piețe internaționale.
  • Performanță consecventă – Cu un model unificat care acoperă mai multe limbi, obțineți rezultate consecvente între limbi, în loc să optimizați separat pentru fiecare limbă. Modelul este antrenat holistic, astfel încât să beneficiați de avantaje în diferite limbi.
  • Suport pentru interogări multilingve – Amazon Titan Text Embeddings permite interogarea înglobărilor de text în oricare dintre limbile acceptate. Acest lucru oferă flexibilitate pentru a prelua conținut similar din punct de vedere semantic în diferite limbi, fără a fi limitat la o singură limbă. Puteți crea aplicații care interogează și analizează date multilingve folosind același spațiu de încorporare unificat.

În momentul scrierii acestui articol, sunt acceptate următoarele limbi:

  • Arabă
  • Chineză (simplificată)
  • Chineză (tradițională)
  • cehă
  • Olandeză
  • Engleză
  • Franceză
  • Germană
  • ebraică
  • hindi
  • Italiană
  • Japonez
  • kannada
  • Coreeană
  • malayalam
  • marathi
  • Poloneză
  • Portugheză
  • Rusă
  • Spaniolă
  • Suedeză
  • Tagalog filipinez
  • tamil
  • telugu
  • Turcă

Utilizarea Amazon Titan Text Embeddings cu LangChain

LangChain este un cadru open source popular pentru a lucra AI generativă modele și tehnologii suport. Include a Client BedrockEmbeddings care înglobează în mod convenabil SDK-ul Boto3 cu un strat de abstractizare. The BedrockEmbeddings client vă permite să lucrați direct cu text și înglobări, fără a cunoaște detaliile cererii JSON sau structurilor de răspuns. Următorul este un exemplu simplu:

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)

De asemenea, puteți folosi LangChain BedrockEmbeddings client alături de clientul Amazon Bedrock LLM pentru a simplifica implementarea RAG, a căutării semantice și a altor modele legate de încorporare.

Cazuri de utilizare pentru înglobare

Deși RAG este în prezent cel mai popular caz de utilizare pentru lucrul cu înglobări, există multe alte cazuri de utilizare în care pot fi aplicate înglobările. Următoarele sunt câteva scenarii suplimentare în care puteți utiliza înglobările pentru a rezolva probleme specifice, fie pe cont propriu, fie în cooperare cu un LLM:

  • Intrebare si raspuns – Încorporarile pot ajuta la sprijinirea interfețelor de întrebări și răspunsuri prin modelul RAG. Generarea de înglobare asociată cu o bază de date vectorială vă permite să găsiți potriviri apropiate între întrebări și conținut într-un depozit de cunoștințe.
  • Recomandări personalizate – Similar cu întrebarea și răspunsul, puteți utiliza încorporarea pentru a găsi destinații de vacanță, colegii, vehicule sau alte produse pe baza criteriilor furnizate de utilizator. Acest lucru ar putea lua forma unei simple liste de potriviri sau puteți utiliza apoi un LLM pentru a procesa fiecare recomandare și a explica modul în care aceasta satisface criteriile utilizatorului. De asemenea, puteți utiliza această abordare pentru a genera articole personalizate „10 cele mai bune” pentru un utilizator, în funcție de nevoile sale specifice.
  • Management de date – Când aveți surse de date care nu se mapează clar între ele, dar aveți conținut text care descrie înregistrarea de date, puteți utiliza încorporarea pentru a identifica potențialele înregistrări duplicate. De exemplu, puteți utiliza înglobări pentru a identifica candidați duplicați care ar putea folosi diferite formatări, abrevieri sau chiar au nume traduse.
  • Raționalizarea portofoliului de aplicații – Când căutați să aliniați portofoliile de aplicații între o companie-mamă și o achiziție, nu este întotdeauna evident de unde să începeți să găsiți o potențială suprapunere. Calitatea datelor de gestionare a configurației poate fi un factor limitativ și poate fi dificilă coordonarea între echipe pentru a înțelege peisajul aplicațiilor. Utilizând potrivirea semantică cu înglobări, putem face o analiză rapidă în portofoliile de aplicații pentru a identifica aplicațiile candidate cu potențial ridicat pentru raționalizare.
  • Gruparea conținutului – Puteți utiliza încorporarea pentru a facilita gruparea conținutului similar în categorii pe care este posibil să nu le cunoașteți dinainte. De exemplu, să presupunem că aveți o colecție de e-mailuri ale clienților sau recenzii online despre produse. Puteți crea înglobări pentru fiecare articol, apoi rulați acele înglobări k-înseamnă grupare pentru a identifica grupări logice de preocupări ale clienților, laude sau reclamații despre produse sau alte teme. Puteți genera apoi rezumate concentrate din conținutul acestor grupări folosind un LLM.

Exemplu de căutare semantică

În nostru exemplu pe GitHub, demonstrăm o aplicație simplă de căutare a înglobărilor cu Amazon Titan Text Embeddings, LangChain și Streamlit.

Exemplul potrivește interogarea unui utilizator cu cele mai apropiate intrări dintr-o bază de date vectorială în memorie. Apoi afișăm acele potriviri direct în interfața cu utilizatorul. Acest lucru poate fi util dacă doriți să depanați o aplicație RAG sau să evaluați direct un model de încorporare.

Pentru simplitate, folosim in-memory FAISS bază de date pentru a stoca și a căuta vectori de încorporare. Într-un scenariu din lumea reală la scară, probabil că veți dori să utilizați un depozit de date persistent ca motor vectorial pentru Amazon OpenSearch Serverless sau pgvector extensie pentru PostgreSQL.

Încercați câteva solicitări din aplicația web în diferite limbi, cum ar fi următoarele:

  • Cum îmi pot monitoriza utilizarea?
  • Cum pot personaliza modelele?
  • Ce limbaje de programare pot folosi?
  • Comment mes données sont-elles securisées ?
  • 私のデータはどのように保護されていますか?
  • Quais fornecedores de modeles sunt disponibile pentru mine do Bedrock?
  • În welchen Regionen este Amazon Bedrock verfügbar?
  • 有哪些级别的支持?

Rețineți că, deși materialul sursă era în limba engleză, interogările în alte limbi au fost corelate cu intrări relevante.

Concluzie

Capacitățile de generare de text ale modelelor de bază sunt foarte interesante, dar este important să ne amintim că înțelegerea textului, găsirea conținutului relevant dintr-un corp de cunoștințe și realizarea de conexiuni între pasaje sunt esențiale pentru atingerea valorii întregi a IA generativă. Vom continua să vedem cazuri de utilizare noi și interesante pentru încorporare în următorii ani, pe măsură ce aceste modele continuă să se îmbunătățească.

Pasii urmatori

Puteți găsi exemple suplimentare de încorporare ca notebook-uri sau aplicații demonstrative în următoarele ateliere:


Despre Autori

Getting started with Amazon Titan Text Embeddings in Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Jason Stehle este arhitect senior de soluții la AWS, cu sediul în zona New England. El lucrează cu clienții pentru a alinia capacitățile AWS cu cele mai mari provocări de afaceri ale acestora. În afara serviciului, își petrece timpul construind lucruri și urmărind filme cu benzi desenate împreună cu familia.

Getting started with Amazon Titan Text Embeddings in Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Nitin Eusebiu este arhitect senior de soluții de întreprindere la AWS, cu experiență în inginerie software, arhitectură întreprindere și AI/ML. El este profund pasionat de explorarea posibilităților AI generative. El colaborează cu clienții pentru a-i ajuta să construiască aplicații bine arhitecturate pe platforma AWS și este dedicat rezolvării provocărilor tehnologice și asistenței în călătoria lor în cloud.

Getting started with Amazon Titan Text Embeddings in Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Raj Pathak este arhitect principal de soluții și consilier tehnic al marilor companii Fortune 50 și al instituțiilor mijlocii de servicii financiare (FSI) din Canada și Statele Unite. El este specializat în aplicații de învățare automată, cum ar fi AI generativă, procesarea limbajului natural, procesarea inteligentă a documentelor și MLOps.

Getting started with Amazon Titan Text Embeddings in Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Mani Khanuja este Tehnic Lead – Generative AI Specialists, autoarea cărții – Applied Machine Learning and High Performance Computing on AWS și membru al Consiliului de Administrație pentru Women in Manufacturing Education Foundation Board. Ea conduce proiecte de învățare automată (ML) în diverse domenii, cum ar fi viziunea computerizată, procesarea limbajului natural și AI generativă. Ea îi ajută pe clienți să construiască, să antreneze și să implementeze modele mari de învățare automată la scară. Vorbește în cadrul conferințelor interne și externe precum re:Invent, Women in Manufacturing West, webinarii YouTube și GHC 23. În timpul liber, îi place să meargă la alergări lungi de-a lungul plajei.

Getting started with Amazon Titan Text Embeddings in Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Mark Roy este arhitect principal de învățare automată pentru AWS, ajutând clienții să proiecteze și să construiască soluții AI/ML. Lucrarea lui Mark acoperă o gamă largă de cazuri de utilizare ML, cu un interes principal în viziunea computerizată, învățarea profundă și scalarea ML în întreaga întreprindere. El a ajutat companii din multe industrii, inclusiv asigurări, servicii financiare, mass-media și divertisment, asistență medicală, utilități și producție. Mark deține șase certificări AWS, inclusiv certificarea de specialitate ML. Înainte de a se alătura AWS, Mark a fost arhitect, dezvoltator și lider tehnologic timp de peste 25 de ani, inclusiv 19 ani în servicii financiare.

Timestamp-ul:

Mai mult de la Învățare automată AWS