In Del 1 av denne serien presenterte vi en løsning som brukte Amazon Titan Multimodal Embeddings modell for å konvertere individuelle lysbilder fra et lysbildekort til innbygginger. Vi lagret innebyggingene i en vektordatabase og brukte deretter Stor språk- og synsassistent (LLaVA 1.5-7b) modell for å generere tekstsvar på brukerspørsmål basert på det mest like lysbildet hentet fra vektordatabasen. Vi brukte AWS-tjenester inkludert Amazonas grunnfjell, Amazon SageMakerog Amazon OpenSearch Serverless i denne løsningen.
I dette innlegget viser vi en annen tilnærming. Vi bruker Antropiske Claude 3 sonett modell for å generere tekstbeskrivelser for hvert lysbilde i lysbildestokken. Disse beskrivelsene blir deretter konvertert til tekstinnbygging ved hjelp av Amazon Titan-tekstinnbygging modell og lagret i en vektordatabase. Deretter bruker vi Claude 3 Sonnet-modellen til å generere svar på brukerspørsmål basert på den mest relevante tekstbeskrivelsen hentet fra vektordatabasen.
Du kan teste begge tilnærmingene for datasettet ditt og evaluere resultatene for å se hvilken tilnærming som gir deg de beste resultatene. I del 3 av denne serien vurderer vi resultatene av begge metodene.
Løsningsoversikt
Løsningen gir en implementering for å svare på spørsmål ved å bruke informasjon som finnes i tekst og visuelle elementer i en lysbildeserie. Designet er avhengig av konseptet Retrieval Augmented Generation (RAG). Tradisjonelt har RAG vært assosiert med tekstdata som kan behandles av store språkmodeller (LLM). I denne serien utvider vi RAG til også å inkludere bilder. Dette gir en kraftig søkefunksjon for å trekke ut kontekstuelt relevant innhold fra visuelle elementer som tabeller og grafer sammen med tekst.
Denne løsningen inkluderer følgende komponenter:
- Amazon Titan Text Embeddings er en tekstinnbyggingsmodell som konverterer naturlig språktekst, inkludert enkeltord, setninger eller til og med store dokumenter, til numeriske representasjoner som kan brukes til å styrke brukstilfeller som søk, personalisering og klynging basert på semantisk likhet.
- Claude 3 Sonnet er neste generasjon toppmoderne modeller fra Anthropic. Sonnet er et allsidig verktøy som kan håndtere et bredt spekter av oppgaver, fra komplekse resonnementer og analyser til raske utdata, samt effektivt søk og gjenfinning på tvers av enorme mengder informasjon.
- OpenSearch Serverless er en on-demand serverløs konfigurasjon for Amazon OpenSearch Service. Vi bruker OpenSearch Serverless som en vektordatabase for lagring av embeddings generert av Amazon Titan Text Embeddings-modellen. En indeks opprettet i OpenSearch Serverless-samlingen fungerer som vektorlageret for RAG-løsningen vår.
- Amazon OpenSearch-inntak (OSI) er en fullstendig administrert, serverløs datainnsamler som leverer data til OpenSearch Service-domener og OpenSearch Serverless-samlinger. I dette innlegget bruker vi en OSI pipeline API for å levere data til OpenSearch Serverless vektorlager.
Løsningsdesignet består av to deler: inntak og brukerinteraksjon. Under inntak behandler vi inngangslysbildestokken ved å konvertere hvert lysbilde til et bilde, generere beskrivelser og tekstinnbygging for hvert bilde. Vi fyller deretter vektordatalageret med innebyggingene og tekstbeskrivelsen for hvert lysbilde. Disse trinnene fullføres før trinnene for brukerinteraksjon.
I brukerinteraksjonsfasen konverteres et spørsmål fra brukeren til tekstinnbygging. Et likhetssøk kjøres på vektordatabasen for å finne en tekstbeskrivelse som tilsvarer et lysbilde som potensielt kan inneholde svar på brukerspørsmålet. Vi gir deretter lysbildebeskrivelsen og brukerspørsmålet til Claude 3 Sonnet-modellen for å generere et svar på spørringen. All koden for dette innlegget er tilgjengelig i GitHub hvile.
Følgende diagram illustrerer inntaksarkitekturen.
Arbeidsflyten består av følgende trinn:
- Lysbilder konverteres til bildefiler (én per lysbilde) i JPG-format og sendes til Claude 3 Sonnet-modellen for å generere tekstbeskrivelse.
- Dataene sendes til Amazon Titan Text Embeddings-modellen for å generere embeddings. I denne serien bruker vi glidebrettet Tren og distribuer stabil diffusjon ved hjelp av AWS Trainium og AWS Inferentia fra AWS Summit i Toronto, juni 2023 for å demonstrere løsningen. Prøvestokken har 31 lysbilder, derfor genererer vi 31 sett med vektorinnbygginger, hver med 1536 dimensjoner. Vi legger til flere metadatafelt for å utføre rike søk ved å bruke OpenSearchs kraftige søkefunksjoner.
- Innebyggingene tas inn i en OSI-pipeline ved hjelp av et API-kall.
- OSI-pipelinen inntar dataene som dokumenter til en OpenSearch Serverless-indeks. Indeksen er konfigurert som vasken for denne rørledningen og er opprettet som en del av OpenSearch Serverless-samlingen.
Følgende diagram illustrerer brukerinteraksjonsarkitekturen.
Arbeidsflyten består av følgende trinn:
- En bruker sender inn et spørsmål knyttet til lysbildestokken som har blitt inntatt.
- Brukerinndataene konverteres til innebygginger ved å bruke Amazon Titan Text Embeddings-modellen tilgjengelig ved hjelp av Amazon Bedrock. Et OpenSearch Service-vektorsøk utføres ved å bruke disse innebyggingene. Vi utfører et k-nearest neighbor (k-NN)-søk for å hente de mest relevante innebyggingene som samsvarer med brukersøket.
- Metadataene til svaret fra OpenSearch Serverless inneholder en bane til bildet og beskrivelse som tilsvarer det mest relevante lysbildet.
- En ledetekst opprettes ved å kombinere brukerspørsmålet og bildebeskrivelsen. Spørsmålet er gitt til Claude 3 Sonnet som er vert på Amazon Bedrock.
- Resultatet av denne slutningen returneres til brukeren.
Vi diskuterer trinnene for begge trinn i de følgende delene, og inkluderer detaljer om utdataene.
Forutsetninger
For å implementere løsningen som er gitt i dette innlegget, bør du ha en AWS-konto og kjennskap til FM-er, Amazon Bedrock, SageMaker og OpenSearch Service.
Denne løsningen bruker modellene Claude 3 Sonnet og Amazon Titan Text Embeddings som er vert på Amazon Bedrock. Sørg for at disse modellene er aktivert for bruk ved å navigere til Modelltilgang side på Amazon Bedrock-konsollen.
Hvis modellene er aktivert, vil Tilgangsstatus vil opplyse Tilgang godkjent.
Hvis modellene ikke er tilgjengelige, aktiver tilgang ved å velge Administrer modelltilgang, velge modeller og velge Be om modelltilgang. Modellene er aktivert for bruk umiddelbart.
Bruk AWS CloudFormation til å lage løsningsstabelen
Du kan bruke AWS CloudFormation til å lage løsningsstabelen. Hvis du har laget løsningen for del 1 i samme AWS-konto, sørg for å slette den før du oppretter denne stabelen.
AWS-regionen | link |
---|---|
us-east-1 |
|
us-west-2 |
Etter at stabelen er opprettet, naviger til stabelens Outputs-fane på AWS CloudFormation-konsollen og noter verdiene for MultimodalCollectionEndpoint
og OpenSearchPipelineEndpoint
. Du bruker disse i de påfølgende trinnene.
CloudFormation-malen oppretter følgende ressurser:
- IAM-roller - Følgende AWS identitets- og tilgangsadministrasjon (IAM)-roller opprettes. Oppdater disse rollene for å bruke tillatelser med minste privilegier, som diskutert i Beste praksis for sikkerhet.
SMExecutionRole
med Amazon enkel lagringstjeneste (Amazon S3), SageMaker, OpenSearch Service og Amazon Bedrock full tilgang.OSPipelineExecutionRole
med tilgang til S3-bøtte og OSI-handlinger.
- SageMaker-notatbok – All kode for dette innlegget kjøres ved hjelp av denne notatboken.
- OpenSearch Serverless-samling – Dette er vektordatabasen for lagring og henting av innebygginger.
- OSI rørledning – Dette er rørledningen for inntak av data til OpenSearch Serverless.
- S3 bøtte – Alle data for dette innlegget er lagret i denne bøtten.
CloudFormation-malen setter opp pipeline-konfigurasjonen som kreves for å konfigurere OSI-pipelinen med HTTP som kilde og OpenSearch Serverless-indeksen som sink. SageMaker-notisboken 2_data_ingestion.ipynb
viser hvordan du kan ta inn data i rørledningen ved hjelp av forespørsler HTTP-bibliotek.
CloudFormation-malen lager også nettverk, kryptering og data tilgang retningslinjer som kreves for din OpenSearch Serverless-samling. Oppdater disse retningslinjene for å bruke tillatelser med minste privilegier.
CloudFormation-malnavnet og OpenSearch Service-indeksnavnet refereres til i SageMaker-notisboken 3_rag_inference.ipynb
. Hvis du endrer standardnavnene, sørg for at du oppdaterer dem i notatboken.
Test løsningen
Etter at du har opprettet CloudFormation-stakken, kan du teste løsningen. Fullfør følgende trinn:
- Velg på SageMaker-konsollen Notatbøker i navigasjonsruten.
- Plukke ut
MultimodalNotebookInstance
Og velg Åpne JupyterLab. - In Fil utforsker, gå til notatbøker-mappen for å se notatbøker og støttefiler.
Notatbøkene er nummerert i rekkefølgen de kjøres i. Instruksjoner og kommentarer i hver notatbok beskriver handlingene som utføres av den notatboken. Vi kjører disse notatbøkene én etter én.
- Velg
1_data_prep.ipynb
for å åpne den i JupyterLab. - På Kjør meny, velg Kjør alle celler for å kjøre koden i denne notatboken.
Denne notatboken vil laste ned en offentlig tilgjengelig Lysbilde, konverter hvert lysbilde til JPG-filformatet, og last opp disse til S3-bøtta.
- Velg
2_data_ingestion.ipynb
for å åpne den i JupyterLab. - På Kjør meny, velg Kjør alle celler for å kjøre koden i denne notatboken.
I denne notatboken oppretter du en indeks i OpenSearch Serverless-samlingen. Denne indeksen lagrer innebyggingsdataene for lysbildet. Se følgende kode:
Du bruker modellene Claude 3 Sonnet og Amazon Titan Text Embeddings til å konvertere JPG-bildene som ble opprettet i den forrige notatboken, til vektorinnbygginger. Disse innebyggingene og tilleggsmetadataene (som S3-banen og beskrivelsen av bildefilen) lagres i indeksen sammen med innebyggingene. Følgende kodebit viser hvordan Claude 3 Sonnet genererer bildebeskrivelser:
Bildebeskrivelsene sendes til Amazon Titan Text Embeddings-modellen for å generere vektorinnbygginger. Disse innebyggingene og tilleggsmetadataene (som S3-banen og beskrivelsen av bildefilen) lagres i indeksen sammen med innebyggingene. Følgende kodebit viser kallet til Amazon Titan Text Embeddings-modellen:
Dataene tas inn i OpenSearch Serverless-indeksen ved å foreta et API-kall til OSI-rørledningen. Følgende kodebit viser anropet som ble utført ved hjelp av Requests HTTP-biblioteket:
- Velg
3_rag_inference.ipynb
for å åpne den i JupyterLab. - På Kjør meny, velg Kjør alle celler for å kjøre koden i denne notatboken.
Denne notatboken implementerer RAG-løsningen: du konverterer brukerspørsmålet til innebygging, finner en lignende bildebeskrivelse fra vektordatabasen og gir den hentede beskrivelsen til Claude 3 Sonnet for å generere et svar på brukerspørsmålet. Du bruker følgende forespørselsmal:
Følgende kodebit gir RAG-arbeidsflyten:
Resultater
Tabellen nedenfor inneholder noen brukerspørsmål og svar generert av implementeringen vår. De Spørsmål kolonnen fanger opp brukerspørsmålet, og Svar kolonne er tekstresponsen generert av Claude 3 Sonnet. De Bilde kolonnen viser k-NN lysbildetreffet returnert av OpenSearch Serverless vektorsøk.
Multimodale RAG-resultater
Spørr indeksen din
Du kan bruke OpenSearch Dashboards til å samhandle med OpenSearch API for å kjøre raske tester på indeksen og inntatte data.
Opprydding
Slett ressursene for å unngå fremtidige kostnader. Du kan gjøre dette ved å slette stabelen ved å bruke AWS CloudFormation-konsollen.
konklusjonen
Bedrifter genererer nytt innhold hele tiden, og lysbildestokker er en vanlig måte å dele og formidle informasjon internt i organisasjonen og eksternt med kunder eller på konferanser. Over tid kan rik informasjon forbli begravd og skjult i ikke-tekstmodaliteter som grafer og tabeller i disse lysbildestokkene.
Du kan bruke denne løsningen og kraften til multimodale FM-er som Amazon Titan Text Embeddings og Claude 3 Sonnet til å oppdage ny informasjon eller avdekke nye perspektiver på innhold i lysbildestokker. Du kan prøve forskjellige Claude-modeller tilgjengelig på Amazon Bedrock ved å oppdatere CLAUDE_MODEL_ID
i globals.py
filen.
Dette er del 2 av en tredelt serie. Vi brukte Amazon Titan Multimodal Embeddings og LLaVA-modellen i del 1. I del 3 skal vi sammenligne tilnærmingene fra del 1 og del 2.
Deler av denne koden er utgitt under Apache 2.0-lisens.
Om forfatterne
Amit Arora er en AI- og ML-spesialistarkitekt hos Amazon Web Services, og hjelper bedriftskunder å bruke skybaserte maskinlæringstjenester for raskt å skalere innovasjonene sine. Han er også adjunkt i MS data science and analytics-programmet ved Georgetown University i Washington DC
Manju Prasad er senior løsningsarkitekt hos Amazon Web Services. Hun fokuserer på å gi teknisk veiledning i en rekke tekniske domener, inkludert AI/ML. Før hun begynte i AWS, designet og bygde hun løsninger for selskaper i finanssektoren og også for en startup. Hun brenner for å dele kunnskap og fremme interessen for nye talenter.
Archana Inapudi er Senior Solutions Architect hos AWS, som støtter en strategisk kunde. Hun har over et tiår med kompetanse på tvers av bransje og leder strategiske tekniske initiativ. Archana er et aspirerende medlem av AI/ML tekniske feltfellesskap ved AWS. Før hun begynte i AWS, ledet Archana en migrering fra tradisjonelle siled datakilder til Hadoop hos et helseselskap. Hun brenner for å bruke teknologi for å akselerere vekst, gi verdi til kunder og oppnå forretningsresultater.
Antara Raisa er en AI og ML Solutions Architect hos Amazon Web Services, og støtter strategiske kunder basert fra Dallas, Texas. Hun har også tidligere erfaring med å jobbe med store bedriftspartnere hos AWS, hvor hun jobbet som Partner Success Solutions Architect for digitalsentrerte kunder.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- PlatoHelse. Bioteknologisk og klinisk etterretning. Tilgang her.
- kilde: https://aws.amazon.com/blogs/machine-learning/talk-to-your-slide-deck-using-multimodal-foundation-models-hosted-on-amazon-bedrock-and-amazon-sagemaker-part-2/
- : har
- :er
- :ikke
- :hvor
- $OPP
- 1
- 10
- 100
- 12
- 15%
- 17
- 173
- 175
- 20
- 2019
- 2020
- 2023
- 23
- 24
- 27
- 30
- 31
- 7
- 8
- 9
- a
- evner
- Om oss
- akselerere
- adgang
- aksesseres
- Logg inn
- Oppnå
- tvers
- handlinger
- legge til
- Ytterligere
- adjunkt
- Adopsjon
- fordeler
- AI
- AI-modeller
- AI / ML
- algoritmer
- Alle
- langs
- også
- Amazon
- Amazon EC2
- Amazon OpenSearch-tjeneste
- Amazon Web Services
- beløp
- an
- analyse
- analytics
- og
- og infrastruktur
- besvare
- besvare
- svar
- Antropisk
- noen
- hva som helst
- api
- Søknad
- Applikasjonutvikling
- søknader
- Påfør
- tilnærming
- tilnærminger
- ca
- arkitektur
- ER
- kunstig
- kunstig intelligens
- Kunstig intelligens og maskinlæring
- AS
- spør
- håper
- Assistent
- assosiert
- At
- augmented
- Auth
- tilgjengelig
- unngå
- AWS
- AWS skyformasjon
- basert
- BE
- vært
- før du
- BEST
- Bedre
- mellom
- Milliarder
- kroppen
- både
- bygget
- virksomhet
- men
- by
- ring
- CAN
- kan ikke
- evner
- evne
- fanger
- saker
- endring
- avgifter
- Velg
- velge
- kunde
- gruppering
- kode
- samling
- samlinger
- oppsamler
- Kolonne
- kombinere
- kommentarer
- Felles
- samfunnet
- Selskaper
- Selskapet
- sammenlign
- sammenligne
- sammenlignet
- sammenligne
- sammenligning
- fullføre
- Terminado
- komplekse
- komponenter
- konsept
- konsis
- konferanser
- Konfigurasjon
- konfigurert
- består
- Konsoll
- inneholde
- inneholdt
- inneholder
- innhold
- kontekst
- kontinuerlig
- konvertere
- konvertert
- konvertering
- Tilsvarende
- kunne
- skape
- opprettet
- skaper
- Opprette
- Credentials
- kunde
- Kunder
- syklus
- Dallas
- oversikter
- dato
- datavitenskap
- Database
- tiår
- dekk
- Misligholde
- leverer
- leverer
- Etterspørsel
- demonstrere
- utplassere
- beskrive
- beskriver
- beskrivelse
- utforming
- designet
- detaljer
- utvikle
- Utvikling
- diagram
- DIKT
- forskjell
- forskjellig
- kringkasting
- Dimensjon
- dimensjoner
- oppdage
- diskutere
- diskutert
- Vise
- skjermer
- do
- dokumenter
- gjør
- domener
- nedlasting
- stasjonen
- kjøring
- under
- e
- hver enkelt
- effektiv
- elementer
- embedding
- Emery
- muliggjøre
- aktivert
- muliggjør
- Motor
- Enterprise
- feil
- evaluere
- Selv
- Unntatt
- unntak
- erfaring
- ekspertise
- utvide
- eksternt
- trekke ut
- Familiær
- felt
- Felt
- filet
- Filer
- finansiell
- finansielle tjenester
- Finn
- fokuserer
- etter
- Til
- format
- fostre
- Fundament
- fra
- Brensel
- fullt
- fullt
- videre
- framtid
- generere
- generert
- genererer
- genererer
- generasjonen
- generative
- Generativ AI
- Georgetown
- GitHub
- gitt
- gir
- skal
- grafer
- Vekst
- veiledning
- HAD
- håndtere
- Ha
- he
- helsetjenester
- hjelpe
- skjult
- høyere
- striper
- Hits
- vert
- vert
- Vertskapet
- Hvordan
- Hvordan
- Men
- HTML
- http
- HTTPS
- menneskelig
- i
- Identitet
- if
- illustrerer
- bilde
- bilder
- umiddelbart
- iverksette
- gjennomføring
- redskaper
- forbedringer
- in
- inkludere
- inkluderer
- Inkludert
- indeks
- Indekser
- individuelt
- informasjon
- Infrastruktur
- initiativer
- Innovasjon
- innovasjoner
- inngang
- f.eks
- instruksjoner
- Intelligens
- samhandle
- interaksjon
- interesse
- internt
- inn
- investering
- IT
- sammenføyning
- jpg
- JSON
- juni
- nøkkel
- Vet
- kunnskap
- Språk
- stor
- Ventetid
- ledende
- Fører
- læring
- Led
- Bibliotek
- Tillatelse
- i likhet med
- lokal
- lavere
- maskin
- maskinlæring
- laget
- Hoved
- gjøre
- Making
- fikk til
- mange
- Match
- matchende
- max
- medlem
- nevner
- Meny
- meldinger
- metadata
- metode
- metoder
- migrasjon
- ML
- modell
- modeller
- mer
- mest
- MS
- navn
- navn
- Naturlig
- Natural Language Processing
- Naviger
- navigere
- Navigasjon
- Trenger
- Ny
- neste
- none
- note
- bærbare
- nummerert
- tall
- of
- tilby
- on
- På etterspørsel
- ONE
- åpen
- optimalisering
- or
- organisasjon
- OS
- Annen
- vår
- ut
- utfall
- produksjon
- utganger
- enn
- side
- brød
- parameter
- parametere
- del
- partner
- partnere
- deler
- bestått
- lidenskapelig
- banen
- for
- Utfør
- ytelse
- utført
- tillatelser
- Tilpassing
- prospektet
- fase
- setninger
- Fysikk
- rørledning
- plato
- Platon Data Intelligence
- PlatonData
- Politikk
- Post
- potensielt
- makt
- kraftig
- presentert
- forrige
- Før
- prosess
- Bearbeidet
- prosessering
- program
- progresjon
- egenskaper
- gi
- forutsatt
- gir
- gi
- offentlig
- kvarker
- spørsmål
- spørring
- spørsmål
- spørsmål
- Rask
- R
- fille
- område
- rask
- raskt
- Lese
- mottatt
- refererte
- i slekt
- utgitt
- relevant
- deretter monteres
- forbli
- forespørsler
- påkrevd
- forskning
- Ressurser
- svar
- svar
- resultere
- Resultater
- gjenfinning
- retur
- Rich
- Rolle
- roller
- Kjør
- rennende
- sagemaker
- samme
- sample
- sier
- Skala
- Vitenskap
- Søk
- seksjoner
- sektor
- se
- synes
- velge
- semantisk
- senior
- sendt
- Sequence
- Serien
- server~~POS=TRUNC
- serverer
- tjeneste
- Tjenester
- Session
- sett
- innstillinger
- Del
- deling
- hun
- bør
- Viser
- siled
- lignende
- Enkelt
- enkelt
- Størrelse
- Skyv
- Lysbilder
- tekstutdrag
- løsning
- Solutions
- noen
- kilde
- Kilder
- spesialist
- spesifikk
- stabil
- stable
- stadier
- oppstart
- Tilstand
- state-of-the-art
- Steps
- lagring
- oppbevare
- lagret
- butikker
- lagring
- Strategisk
- senere
- suksess
- vellykket
- slik
- SAMMENDRAG
- Summit
- støtte
- Støttes
- Støtte
- sikker
- bord
- Talent
- Snakk
- oppgaver
- Teknisk
- Technologies
- Teknologi
- mal
- test
- tester
- texas
- tekst
- tekstlig
- enn
- Det
- De
- informasjonen
- deres
- Dem
- deretter
- derfor
- Disse
- de
- denne
- gjennomstrømning
- tid
- ganger
- titan
- til
- verktøy
- verktøy
- toronto
- tradisjonelle
- tradisjonelt
- traversere
- sant
- prøve
- SVING
- to
- typen
- typer
- avdekke
- etter
- universitet
- Oppdater
- oppdatering
- bruke
- bruk-tilfeller
- brukt
- Bruker
- bruker
- ved hjelp av
- verdi
- Verdier
- variasjon
- enorme
- allsidig
- visuell
- washington
- Vei..
- we
- web
- webtjenester
- VI VIL
- Hva
- Hva er
- hvilken
- mens
- bred
- Bred rekkevidde
- bredere
- vil
- med
- innenfor
- ord
- arbeidet
- arbeidsflyt
- arbeid
- Du
- Din
- zephyrnet