Komma igång med Amazon Titan Text Embeddings i Amazon Bedrock | Amazon webbtjänster

Komma igång med Amazon Titan Text Embeddings i Amazon Bedrock | Amazon webbtjänster

Inbäddningar spelar en nyckelroll i naturlig språkbehandling (NLP) och maskininlärning (ML). Textinbäddning hänvisar till processen att omvandla text till numeriska representationer som finns i ett högdimensionellt vektorrum. Denna teknik uppnås genom användning av ML-algoritmer som möjliggör förståelsen av datas betydelse och sammanhang (semantiska relationer) och inlärning av komplexa relationer och mönster inom data (syntaktiska relationer). Du kan använda de resulterande vektorrepresentationerna för ett brett spektrum av tillämpningar, såsom informationshämtning, textklassificering, naturlig språkbehandling och många andra.

Amazon Titan textinbäddningar är en textinbäddningsmodell som omvandlar text på naturligt språk – som består av enstaka ord, fraser eller till och med stora dokument – ​​till numeriska representationer som kan användas för att driva användningsfall som sökning, personalisering och klustring baserat på semantisk likhet.

I det här inlägget diskuterar vi Amazon Titan Text Embeddings-modellen, dess funktioner och exempel på användningsfall.

Några nyckelbegrepp inkluderar:

  • Numerisk representation av text (vektorer) fångar semantik och relationer mellan ord
  • Rich inbäddningar kan användas för att jämföra textlikhet
  • Flerspråkig textinbäddning kan identifiera betydelse på olika språk

Hur omvandlas ett stycke text till en vektor?

Det finns flera tekniker för att omvandla en mening till en vektor. En populär metod är att använda ordinbäddningsalgoritmer, som Word2Vec, GloVe eller FastText, och sedan aggregera ordinbäddningar för att bilda en vektorrepresentation på meningsnivå.

Ett annat vanligt tillvägagångssätt är att använda stora språkmodeller (LLM), som BERT eller GPT, som kan tillhandahålla kontextualiserade inbäddningar för hela meningar. Dessa modeller är baserade på djupinlärningsarkitekturer som Transformers, som kan fånga kontextuell information och relationer mellan ord i en mening mer effektivt.

Komma igång med Amazon Titan Text Embeddings i Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Varför behöver vi en inbäddningsmodell?

Vektorinbäddningar är grundläggande för att LLM:er ska förstå språkets semantiska grader, och gör det också möjligt för LLM:er att prestera bra på nedströms NLP-uppgifter som sentimentanalys, namngiven enhetsigenkänning och textklassificering.

Förutom semantisk sökning kan du använda inbäddningar för att utöka dina meddelanden för mer exakta resultat genom Retrieval Augmented Generation (RAG) – men för att kunna använda dem måste du lagra dem i en databas med vektorfunktioner.

Komma igång med Amazon Titan Text Embeddings i Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Amazon Titan Text Embeddings-modellen är optimerad för texthämtning för att möjliggöra RAG-användningsfall. Det gör det möjligt för dig att först konvertera din textdata till numeriska representationer eller vektorer och sedan använda dessa vektorer för att exakt söka efter relevanta passager från en vektordatabas, så att du kan få ut det mesta av din egen data i kombination med andra grundmodeller.

Eftersom Amazon Titan Text Embeddings är en hanterad modell på Amazonas berggrund, det erbjuds som en helt serverlös upplevelse. Du kan använda den antingen via Amazon Bedrock REST API eller AWS SDK. De nödvändiga parametrarna är texten som du vill generera inbäddningar av och modelID parameter, som representerar namnet på Amazon Titan Text Embeddings-modellen. Följande kod är ett exempel som använder AWS SDK för 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)

Utgången kommer att se ut ungefär som följande:

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

Hänvisa till Amazon Bedrock boto3-installation för mer information om hur du installerar de nödvändiga paketen, anslut till Amazon Bedrock och anropa modeller.

Funktioner hos Amazon Titan Text Inbäddningar

Med Amazon Titan Text Embeddings kan du mata in upp till 8,000 XNUMX tokens, vilket gör den väl lämpad att arbeta med enstaka ord, fraser eller hela dokument baserat på ditt användningsfall. Amazon Titan returnerar utdatavektorer med dimension 1536, vilket ger den en hög grad av noggrannhet, samtidigt som den optimerar för låg latens, kostnadseffektiva resultat.

Amazon Titan Text Embeddings stöder att skapa och fråga inbäddningar för text på över 25 olika språk. Det betyder att du kan tillämpa modellen på dina användningsfall utan att behöva skapa och underhålla separata modeller för varje språk du vill stödja.

Att ha en enda inbäddningsmodell tränad på många språk ger följande viktiga fördelar:

  • Bredare räckvidd – Genom att stödja över 25 språk direkt kan du utöka räckvidden för dina applikationer till användare och innehåll på många internationella marknader.
  • Konsekvent prestanda – Med en enhetlig modell som täcker flera språk får du konsekventa resultat över språk istället för att optimera separat per språk. Modellen är holistiskt tränad så att du får fördelen över språken.
  • Flerspråkig frågestöd – Amazon Titan Text Inbäddningar gör det möjligt att fråga textinbäddningar på något av de språk som stöds. Detta ger flexibilitet att hämta semantiskt liknande innehåll på flera språk utan att vara begränsad till ett enda språk. Du kan bygga applikationer som frågar efter och analyserar flerspråkig data med samma enhetliga inbäddningsutrymme.

När detta skrivs stöds följande språk:

  • arabiska
  • Förenklad kinesiska)
  • kinesiska
  • tjeckiska
  • Dutch
  • Engelska
  • franska
  • tyska
  • Hebreiska
  • hindi
  • italienska
  • japanska
  • kannada
  • koreanska
  • malayalam
  • marathi
  • polska
  • portugisiska
  • ryska
  • spanska
  • svenska
  • Filippinsk tagalog
  • tamil
  • telugu
  • turkiska

Använda Amazon Titan Text Inbäddningar med LangChain

Langkedja är ett populärt ramverk med öppen källkod att arbeta med generativ AI modeller och stödjande tekniker. Den innehåller en BedrockEmbeddings klient som bekvämt omsluter Boto3 SDK med ett abstraktionslager. De BedrockEmbeddings klienten låter dig arbeta med text och inbäddningar direkt, utan att känna till detaljerna i JSON-förfrågan eller svarsstrukturer. Följande är ett enkelt exempel:

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)

Du kan också använda LangChain's BedrockEmbeddings klient tillsammans med Amazon Bedrock LLM-klienten för att förenkla implementering av RAG, semantisk sökning och andra inbäddningsrelaterade mönster.

Använd fodral för inbäddningar

Även om RAG för närvarande är det mest populära användningsfallet för att arbeta med inbäddningar, finns det många andra användningsfall där inbäddningar kan tillämpas. Följande är några ytterligare scenarier där du kan använda inbäddningar för att lösa specifika problem, antingen på egen hand eller i samarbete med en LLM:

  • Frågor och svar – Inbäddningar kan hjälpa till att stödja gränssnitt för frågor och svar genom RAG-mönstret. Generering av inbäddningar i kombination med en vektordatabas gör att du kan hitta nära matchningar mellan frågor och innehåll i ett kunskapsförråd.
  • Personliga rekommendationer – I likhet med frågor och svar kan du använda inbäddningar för att hitta semesterdestinationer, högskolor, fordon eller andra produkter baserat på de kriterier som användaren tillhandahåller. Detta kan ha formen av en enkel lista med matchningar, eller så kan du använda en LLM för att behandla varje rekommendation och förklara hur den uppfyller användarens kriterier. Du kan också använda detta tillvägagångssätt för att skapa anpassade "10 bästa" artiklar för en användare baserat på deras specifika behov.
  • Datahantering – När du har datakällor som inte mappar rent till varandra, men du har textinnehåll som beskriver dataposten, kan du använda inbäddningar för att identifiera potentiella dubbletter av poster. Du kan till exempel använda inbäddningar för att identifiera dubbletter av kandidater som kan använda olika formatering, förkortningar eller till och med ha översatta namn.
  • Rationalisering av applikationsportföljen – När man vill anpassa applikationsportföljer mellan ett moderbolag och ett förvärv är det inte alltid självklart var man ska börja hitta potentiell överlappning. Kvaliteten på konfigurationshanteringsdata kan vara en begränsande faktor, och det kan vara svårt att koordinera mellan team för att förstå applikationslandskapet. Genom att använda semantisk matchning med inbäddningar kan vi göra en snabb analys över applikationsportföljer för att identifiera högpotentiala kandidatansökningar för rationalisering.
  • Innehållsgruppering – Du kan använda inbäddningar för att underlätta gruppering av liknande innehåll i kategorier som du kanske inte känner till i förväg. Låt oss till exempel säga att du hade en samling av kundmeddelanden eller produktrecensioner online. Du kan skapa inbäddningar för varje objekt och sedan köra igenom dessa inbäddningar k- betyder klustring för att identifiera logiska grupperingar av kundproblem, produktberöm eller klagomål eller andra teman. Du kan sedan generera fokuserade sammanfattningar från dessa grupperingars innehåll med hjälp av en LLM.

Semantisk sökning exempel

I vår exempel på GitHub, visar vi ett enkelt sökprogram för inbäddningar med Amazon Titan Text Embeddings, LangChain och Streamlit.

Exemplet matchar en användares fråga med de närmaste posterna i en vektordatabas i minnet. Vi visar sedan dessa matchningar direkt i användargränssnittet. Detta kan vara användbart om du vill felsöka en RAG-applikation eller direkt utvärdera en inbäddningsmodell.

För enkelhetens skull använder vi in-memory FAISS databas för att lagra och söka efter inbäddningsvektorer. I ett verkligt scenario i stor skala, kommer du sannolikt att vilja använda ett beständigt datalager som vektormotor för Amazon OpenSearch Serverless eller pgvektor tillägg för PostgreSQL.

Prova några uppmaningar från webbapplikationen på olika språk, till exempel följande:

  • Hur kan jag övervaka min användning?
  • Hur kan jag anpassa modeller?
  • Vilka programmeringsspråk kan jag använda?
  • Kommentera mes données sont-elles sécurisées ?
  • 私のデータはどのように保護されていますか?
  • Quais fornecedores de modelos estão disponíveis por meio do Berggrund?
  • I welchen Regionen är Amazon Bedrock tillgänglig?
  • 有哪些级别的支持?

Observera att även om källmaterialet var på engelska, matchades frågorna på andra språk med relevanta poster.

Slutsats

Textgenereringsförmågan hos grundmodeller är mycket spännande, men det är viktigt att komma ihåg att förståelse av text, att hitta relevant innehåll från en mängd kunskap och att skapa kopplingar mellan passager är avgörande för att uppnå det fulla värdet av generativ AI. Vi kommer att fortsätta att se nya och intressanta användningsfall för inbäddningar dyka upp under de kommande åren när dessa modeller fortsätter att förbättras.

Nästa steg

Du kan hitta ytterligare exempel på inbäddningar som bärbara datorer eller demoapplikationer i följande workshops:


Om författarna

Komma igång med Amazon Titan Text Embeddings i Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Jason Stehle är Senior Solutions Architect på AWS, baserad i New England-området. Han arbetar med kunder för att anpassa AWS-kapaciteten till deras största affärsutmaningar. Utanför jobbet ägnar han tid åt att bygga saker och titta på serietidningsfilmer med sin familj.

Komma igång med Amazon Titan Text Embeddings i Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Nitin Eusebius är Sr. Enterprise Solutions Architect på AWS, erfaren inom mjukvaruteknik, Enterprise Architecture och AI/ML. Han brinner djupt för att utforska möjligheterna med generativ AI. Han samarbetar med kunder för att hjälpa dem att bygga väldesignade applikationer på AWS-plattformen och är dedikerad till att lösa tekniska utmaningar och hjälpa till med deras molnresa.

Komma igång med Amazon Titan Text Embeddings i Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Raj Pathak är en huvudlösningsarkitekt och teknisk rådgivare till stora Fortune 50-företag och medelstora finansiella tjänster (FSI) i Kanada och USA. Han är specialiserad på maskininlärningsapplikationer som generativ AI, naturlig språkbehandling, intelligent dokumentbearbetning och MLOps.

Komma igång med Amazon Titan Text Embeddings i Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Mani Khanuja är en teknisk ledare – Generativa AI-specialister, författare till boken – Applied Machine Learning and High Performance Computing on AWS, och medlem i styrelsen för Women in Manufacturing Education Foundation Board. Hon leder maskininlärningsprojekt (ML) inom olika domäner som datorseende, naturlig språkbehandling och generativ AI. Hon hjälper kunder att bygga, träna och implementera stora maskininlärningsmodeller i stor skala. Hon talar i interna och externa konferenser som re:Invent, Women in Manufacturing West, YouTube webinars och GHC 23. På fritiden gillar hon att gå långa löpturer längs stranden.

Komma igång med Amazon Titan Text Embeddings i Amazon Bedrock | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Mark Roy är en huvudarkitekt för maskininlärning för AWS, som hjälper kunder att designa och bygga AI/ML-lösningar. Marks arbete täcker ett brett spektrum av ML-användningsfall, med ett primärt intresse för datorseende, djupinlärning och skalning av ML över hela företaget. Han har hjälpt företag inom många branscher, inklusive försäkring, finansiella tjänster, media och underhållning, hälsovård, allmännyttiga företag och tillverkning. Mark innehar sex AWS-certifieringar, inklusive ML Specialty Certification. Innan han började på AWS var Mark arkitekt, utvecklare och teknikledare i över 25 år, inklusive 19 år inom finansiella tjänster.

Tidsstämpel:

Mer från AWS maskininlärning