Komme i gang med Amazon Titan Text Embeddings i Amazon Berggrunn | Amazon Web Services

Komme i gang med Amazon Titan Text Embeddings i Amazon Berggrunn | Amazon Web Services

Innebygging spiller en nøkkelrolle i naturlig språkbehandling (NLP) og maskinlæring (ML). Innbygging av tekst refererer til prosessen med å transformere tekst til numeriske representasjoner som ligger i et høydimensjonalt vektorrom. Denne teknikken oppnås gjennom bruk av ML-algoritmer som muliggjør forståelse av betydningen og konteksten til data (semantiske relasjoner) og læring av komplekse relasjoner og mønstre i dataene (syntaktiske relasjoner). Du kan bruke de resulterende vektorrepresentasjonene for et bredt spekter av applikasjoner, for eksempel informasjonsinnhenting, tekstklassifisering, naturlig språkbehandling og mange andre.

Amazon Titan-tekstinnbygging er en tekstinnbyggingsmodell som konverterer tekst på naturlig språk – som består av enkeltord, setninger eller til og med store dokumenter – til numeriske representasjoner som kan brukes til å styrke brukstilfeller som søk, personalisering og gruppering basert på semantisk likhet.

I dette innlegget diskuterer vi Amazon Titan Text Embeddings-modellen, dens funksjoner og eksempler på bruk.

Noen nøkkelbegreper inkluderer:

  • Numerisk representasjon av tekst (vektorer) fanger opp semantikk og relasjoner mellom ord
  • Rike innebygginger kan brukes til å sammenligne tekstlikhet
  • Flerspråklig tekstinnbygging kan identifisere betydning på forskjellige språk

Hvordan konverteres et stykke tekst til en vektor?

Det er flere teknikker for å konvertere en setning til en vektor. En populær metode er å bruke ordinnbyggingsalgoritmer, for eksempel Word2Vec, GloVe eller FastText, og deretter aggregere ordinnbyggingene for å danne en vektorrepresentasjon på setningsnivå.

En annen vanlig tilnærming er å bruke store språkmodeller (LLM), som BERT eller GPT, som kan gi kontekstualiserte innebygginger for hele setninger. Disse modellene er basert på dyplæringsarkitekturer som Transformers, som kan fange opp kontekstuell informasjon og relasjoner mellom ord i en setning mer effektivt.

Komme i gang med Amazon Titan Text Embeddings i Amazon Berggrunn | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Hvorfor trenger vi en innbyggingsmodell?

Vektorinnbygging er grunnleggende for at LLM-er skal forstå de semantiske gradene av språk, og gjør det også mulig for LLM-er å prestere godt på nedstrøms NLP-oppgaver som sentimentanalyse, navngitt enhetsgjenkjenning og tekstklassifisering.

I tillegg til semantisk søk, kan du bruke innebygginger for å øke forespørslene dine for mer nøyaktige resultater gjennom Retrieval Augmented Generation (RAG) – men for å bruke dem må du lagre dem i en database med vektorfunksjoner.

Komme i gang med Amazon Titan Text Embeddings i Amazon Berggrunn | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Amazon Titan Text Embeddings-modellen er optimalisert for tekstinnhenting for å muliggjøre RAG-bruk. Den lar deg først konvertere tekstdataene dine til numeriske representasjoner eller vektorer, og deretter bruke disse vektorene til å søke nøyaktig etter relevante passasjer fra en vektordatabase, slik at du kan få mest mulig ut av dine proprietære data i kombinasjon med andre grunnmodeller.

Fordi Amazon Titan Text Embeddings er en administrert modell på Amazonas grunnfjell, det tilbys som en helt serverløs opplevelse. Du kan bruke den enten via Amazon Bedrock REST API eller AWS SDK. De nødvendige parameterne er teksten du ønsker å generere innbygginger av og modelID parameter, som representerer navnet på Amazon Titan Text Embeddings-modellen. Følgende kode er et eksempel som bruker AWS SDK for 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)

Utgangen vil se omtrent slik ut:

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

Referere til Amazon Bedrock boto3-oppsett for mer informasjon om hvordan du installerer de nødvendige pakkene, koble til Amazon Bedrock og påkalle modeller.

Funksjoner av Amazon Titan Text Embeddings

Med Amazon Titan Text Embeddings kan du legge inn opptil 8,000 tokens, noe som gjør den godt egnet til å jobbe med enkeltord, setninger eller hele dokumenter basert på din brukssituasjon. Amazon Titan returnerer utdatavektorer med dimensjon 1536, og gir den en høy grad av nøyaktighet, samtidig som den optimaliserer for lav latens, kostnadseffektive resultater.

Amazon Titan Text Embeddings støtter oppretting og spørring av innebygginger for tekst på over 25 forskjellige språk. Dette betyr at du kan bruke modellen på brukstilfellene dine uten å måtte opprette og vedlikeholde separate modeller for hvert språk du ønsker å støtte.

Å ha én enkelt innebyggingsmodell trent på mange språk gir følgende hovedfordeler:

  • Bredere rekkevidde – Ved å støtte over 25 språk ut av esken, kan du utvide rekkevidden til applikasjonene dine til brukere og innhold i mange internasjonale markeder.
  • Konsekvent ytelse – Med en enhetlig modell som dekker flere språk, får du konsistente resultater på tvers av språk i stedet for å optimalisere separat per språk. Modellen er trent helhetlig slik at du får fordelen på tvers av språk.
  • Støtte for flerspråklig spørring – Amazon Titan Text Embeddings gjør det mulig å spørre om tekstinnbygging på alle de støttede språkene. Dette gir fleksibilitet til å hente semantisk lignende innhold på tvers av språk uten å være begrenset til ett enkelt språk. Du kan bygge applikasjoner som spør etter og analyserer flerspråklige data ved å bruke det samme enhetlige innebyggingsområdet.

Når dette skrives, støttes følgende språk:

  • Arabisk
  • Forenklet kinesisk)
  • Kinesisk (tradisjonell)
  • Tsjekkisk
  • Dutch
  • Engelsk
  • Fransk
  • Tysk
  • hebraisk
  • Hindi
  • Italiensk
  • Japansk
  • kannada
  • Koreansk
  • malayalam
  • marathi
  • polsk
  • Portugisisk
  • Russisk
  • Spansk
  • Svensk
  • Filippinsk tagalog
  • Tamilsk
  • telugu
  • tyrkisk

Bruke Amazon Titan Text Embeddings med LangChain

Langkjede er et populært rammeverk med åpen kildekode for å jobbe med generativ AI modeller og støtteteknologier. Det inkluderer en BedrockEmbeddings klient som praktisk pakker inn Boto3 SDK med et abstraksjonslag. De BedrockEmbeddings klient lar deg jobbe med tekst og innebygging direkte, uten å vite detaljene i JSON-forespørselen eller svarstrukturene. Følgende er et enkelt eksempel:

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 også bruke LangChain's BedrockEmbeddings klient sammen med Amazon Bedrock LLM-klienten for å forenkle implementering av RAG, semantisk søk ​​og andre innebyggingsrelaterte mønstre.

Bruk tilfeller for innstøping

Selv om RAG for tiden er den mest populære brukssaken for å jobbe med embeddings, er det mange andre use cases hvor embeddings kan brukes. Følgende er noen tilleggsscenarier der du kan bruke innebygginger for å løse spesifikke problemer, enten på egen hånd eller i samarbeid med en LLM:

  • Spørsmål og svar – Innebygginger kan hjelpe til med å støtte spørsmål og svar-grensesnitt gjennom RAG-mønsteret. Innebyggingsgenerering sammen med en vektordatabase lar deg finne nære samsvar mellom spørsmål og innhold i et kunnskapslager.
  • Personlige anbefalinger – I likhet med spørsmål og svar, kan du bruke innebygginger for å finne feriedestinasjoner, høyskoler, kjøretøy eller andre produkter basert på kriteriene oppgitt av brukeren. Dette kan ha form av en enkel liste over treff, eller du kan deretter bruke en LLM til å behandle hver anbefaling og forklare hvordan den tilfredsstiller brukerens kriterier. Du kan også bruke denne tilnærmingen til å generere tilpassede "10 beste" artikler for en bruker basert på deres spesifikke behov.
  • Dataledelse – Når du har datakilder som ikke er rene til hverandre, men du har tekstinnhold som beskriver dataposten, kan du bruke innebygginger for å identifisere potensielle dupliserte poster. Du kan for eksempel bruke innbygginger for å identifisere dupliserte kandidater som kan bruke annen formatering, forkortelser eller til og med ha oversatte navn.
  • Søknadsporteføljerasjonalisering – Når man ser etter å samordne applikasjonsporteføljer på tvers av et morselskap og et oppkjøp, er det ikke alltid åpenbart hvor man skal begynne å finne potensiell overlapping. Kvaliteten på konfigurasjonsadministrasjonsdata kan være en begrensende faktor, og det kan være vanskelig å koordinere på tvers av team for å forstå applikasjonslandskapet. Ved å bruke semantisk matching med innebygginger, kan vi gjøre en rask analyse på tvers av applikasjonsporteføljer for å identifisere høypotensiale kandidatsøknader for rasjonalisering.
  • Innholdsgruppering – Du kan bruke innebygginger for å gjøre det enklere å gruppere lignende innhold i kategorier som du kanskje ikke vet på forhånd. La oss for eksempel si at du hadde en samling av kunde-e-poster eller produktanmeldelser på nettet. Du kan opprette innbygginger for hvert element, og deretter kjøre disse innebyggingene k-betyr gruppering for å identifisere logiske grupperinger av kundehensyn, produktros eller klager, eller andre temaer. Du kan deretter generere fokuserte sammendrag fra disse grupperingenes innhold ved å bruke en LLM.

Eksempel på semantisk søk

I vår eksempel på GitHub, demonstrerer vi en enkel innbyggingssøkeapplikasjon med Amazon Titan Text Embeddings, LangChain og Streamlit.

Eksemplet matcher en brukers spørring med de nærmeste oppføringene i en vektordatabase i minnet. Vi viser deretter disse kampene direkte i brukergrensesnittet. Dette kan være nyttig hvis du ønsker å feilsøke en RAG-applikasjon, eller direkte evaluere en innbyggingsmodell.

For enkelhets skyld bruker vi in-memory FAISS database for å lagre og søke etter innebyggingsvektorer. I et virkelighetsscenario i stor skala, vil du sannsynligvis ønske å bruke et vedvarende datalager som vektormotor for Amazon OpenSearch Serverless eller pgvektor utvidelse for PostgreSQL.

Prøv noen få meldinger fra nettapplikasjonen på forskjellige språk, for eksempel følgende:

  • Hvordan kan jeg overvåke bruken min?
  • Hvordan kan jeg tilpasse modeller?
  • Hvilke programmeringsspråk kan jeg bruke?
  • Kommenter meg données sont-elles sécurisées ?
  • 私のデータはどのように保護されていますか?
  • Quais fornecedores de modelos estão disponíveis por meio do Berggrunn?
  • I velchen Regionen er Amazon Bedrock tilgjengelig?
  • 有哪些级别的支持?

Merk at selv om kildematerialet var på engelsk, ble forespørslene på andre språk matchet med relevante oppføringer.

konklusjonen

Tekstgenereringsmulighetene til grunnmodeller er veldig spennende, men det er viktig å huske at det å forstå tekst, finne relevant innhold fra en mengde kunnskap og lage forbindelser mellom passasjer er avgjørende for å oppnå den fulle verdien av generativ AI. Vi vil fortsette å se nye og interessante bruksområder for innebygginger dukke opp i løpet av de neste årene ettersom disse modellene fortsetter å forbedre seg.

Neste trinn

Du kan finne flere eksempler på innbygginger som notatblokker eller demoapplikasjoner i følgende verksteder:


Om forfatterne

Komme i gang med Amazon Titan Text Embeddings i Amazon Berggrunn | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Jason Stehle er Senior Solutions Architect hos AWS, basert i New England-området. Han jobber med kunder for å tilpasse AWS-kapasiteten til deres største forretningsutfordringer. Utenom jobben bruker han tiden på å bygge ting og se på tegneseriefilmer med familien.

Komme i gang med Amazon Titan Text Embeddings i Amazon Berggrunn | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Nitin Eusebius er senior Enterprise Solutions Architect ved AWS, erfaren innen programvareteknikk, Enterprise Architecture og AI/ML. Han er dypt lidenskapelig opptatt av å utforske mulighetene til generativ AI. Han samarbeider med kunder for å hjelpe dem med å bygge godt utformede applikasjoner på AWS-plattformen, og er dedikert til å løse teknologiutfordringer og bistå med deres skyreise.

Komme i gang med Amazon Titan Text Embeddings i Amazon Berggrunn | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Raj Pathak er en hovedløsningsarkitekt og teknisk rådgiver for store Fortune 50-selskaper og mellomstore finanstjenesteinstitusjoner (FSI) over hele Canada og USA. Han spesialiserer seg på maskinlæringsapplikasjoner som generativ AI, naturlig språkbehandling, intelligent dokumentbehandling og MLOps.

Komme i gang med Amazon Titan Text Embeddings i Amazon Berggrunn | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Mani Khanuja er en Tech Lead – Generative AI Specialists, forfatter av boken – Applied Machine Learning and High Performance Computing på AWS, og medlem av styret for Women in Manufacturing Education Foundation Board. Hun leder maskinlæringsprosjekter (ML) innen ulike domener som datasyn, naturlig språkbehandling og generativ AI. Hun hjelper kunder med å bygge, trene og distribuere store maskinlæringsmodeller i stor skala. Hun snakker på interne og eksterne konferanser som re:Invent, Women in Manufacturing West, YouTube webinarer og GHC 23. På fritiden liker hun å gå lange løpeturer langs stranden.

Komme i gang med Amazon Titan Text Embeddings i Amazon Berggrunn | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Mark Roy er en hovedmaskinlæringsarkitekt for AWS, og hjelper kunder med å designe og bygge AI/ML-løsninger. Marks arbeid dekker et bredt spekter av ML-brukstilfeller, med en primær interesse for datasyn, dyp læring og skalering av ML på tvers av bedriften. Han har hjulpet selskaper i mange bransjer, inkludert forsikring, finansielle tjenester, media og underholdning, helsevesen, verktøy og produksjon. Mark har seks AWS-sertifiseringer, inkludert ML Specialty Certification. Før han begynte i AWS, var Mark arkitekt, utvikler og teknologileder i over 25 år, inkludert 19 år innen finansielle tjenester.

Tidstempel:

Mer fra AWS maskinlæring