Lag et nettgrensesnitt for å samhandle med LLM-er ved å bruke Amazon SageMaker JumpStart | Amazon Web Services

Lag et nettgrensesnitt for å samhandle med LLM-er ved å bruke Amazon SageMaker JumpStart | Amazon Web Services

Lanseringen av ChatGPT og økningen i popularitet til generativ AI har fanget fantasien til kunder som er nysgjerrige på hvordan de kan bruke denne teknologien til å lage nye produkter og tjenester på AWS, for eksempel enterprise chatbots, som er mer samtalevennlige. Dette innlegget viser deg hvordan du kan lage et nettgrensesnitt, som vi kaller Chat Studio, for å starte en samtale og samhandle med grunnlagsmodeller som er tilgjengelige i Amazon SageMaker JumpStart som Llama 2, Stable Diffusion og andre modeller tilgjengelig på Amazon SageMaker. Etter at du har implementert denne løsningen, kan brukere komme raskt i gang og oppleve mulighetene til flere grunnmodeller i konversasjons-AI gjennom et nettgrensesnitt.

Chat Studio kan også valgfritt påkalle endepunktet Stable Diffusion-modellen for å returnere en collage av relevante bilder og videoer hvis brukeren ber om at media skal vises. Denne funksjonen kan bidra til å forbedre brukeropplevelsen med bruk av media som medfølgende aktiva til svaret. Dette er bare ett eksempel på hvordan du kan berike Chat Studio med flere integrasjoner for å nå dine mål.

Følgende skjermbilder viser eksempler på hvordan en brukerforespørsel og et svar ser ut.

Chat Studio spørringsgrensesnitt

Chat Studio responsgrensesnitt

Store språkmodeller

Generative AI chatbots som ChatGPT drives av store språkmodeller (LLM), som er basert på et dypt læringsnevralt nettverk som kan trenes på store mengder umerket tekst. Bruken av LLM gir en bedre samtaleopplevelse som ligner på interaksjoner med ekte mennesker, og fremmer en følelse av tilknytning og forbedret brukertilfredshet.

SageMaker foundation modeller

I 2021 betegnet Stanford Institute for Human-Centered Artificial Intelligence noen LLM-er som grunnmodeller. Grunnleggende modeller er forhåndsopplært på et stort og bredt sett med generelle data og er ment å tjene som grunnlaget for ytterligere optimaliseringer i et bredt spekter av brukstilfeller, fra generering av digital kunst til flerspråklig tekstklassifisering. Disse grunnmodellene er populære blant kundene fordi opplæring av en ny modell fra bunnen av tar tid og kan være dyrt. SageMaker JumpStart gir tilgang til hundrevis av grunnmodeller vedlikeholdt fra tredjeparts åpen kildekode og proprietære leverandører.

Løsningsoversikt

Dette innlegget går gjennom en arbeidsflyt med lav kode for å distribuere forhåndstrente og tilpassede LLM-er gjennom SageMaker, og lage et nettgrensesnitt for å koble til modellene som er distribuert. Vi dekker følgende trinn:

  1. Distribuer SageMaker-grunnmodeller.
  2. Distribuer AWS Lambda og AWS identitets- og tilgangsadministrasjon (IAM) tillatelser ved hjelp av AWS skyformasjon.
  3. Sett opp og kjør brukergrensesnittet.
  4. Eventuelt kan du legge til andre SageMaker foundation-modeller. Dette trinnet utvider Chat Studios evne til å samhandle med flere grunnmodeller.
  5. Du kan eventuelt distribuere applikasjonen ved å bruke AWS forsterke. Dette trinnet distribuerer Chat Studio til nettet.

Se følgende diagram for en oversikt over løsningsarkitekturen.

Chat Studio Solution Architecture

Forutsetninger

For å gå gjennom løsningen må du ha følgende forutsetninger:

  • An AWS-konto med tilstrekkelige IAM-brukerrettigheter.
  • npm installert i ditt lokale miljø. For instruksjoner om hvordan du installerer npm, referere til Laster ned og installerer Node.js og npm.
  • En tjenestekvote på 1 for de tilsvarende SageMaker-endepunktene. For Llama 2 13b Chat bruker vi en ml.g5.48xlarge instans og for Stable Diffusion 2.1 bruker vi en ml.p3.2xlarge instans.

For å be om en økning i tjenestekvoten, på AWS Service Quotas-konsoll, navigere til AWS tjenester, SageMaker, og be om en tjenestekvoteøkning til en verdi på 1 for ml.g5.48xlarge for endepunktsbruk og ml.p3.2xlarge for endepunktsbruk.

Det kan ta noen timer før forespørselen om tjenestekvote godkjennes, avhengig av tilgjengeligheten av forekomsttypen.

Distribuer SageMaker-grunnmodeller

SageMaker er en fullstendig administrert maskinlæringstjeneste (ML) for utviklere for raskt å bygge og trene ML-modeller med letthet. Fullfør følgende trinn for å distribuere Llama 2 13b Chat og Stable Diffusion 2.1-grunnmodellene ved å bruke Amazon SageMaker Studio:

  1. Opprett et SageMaker-domene. For instruksjoner, se Ombord på Amazon SageMaker Domain ved hjelp av hurtigoppsett.

Et domene setter opp all lagring og lar deg legge til brukere for å få tilgang til SageMaker.

  1. Velg på SageMaker-konsollen studie i navigasjonsruten, og velg deretter Åpne Studio.
  2. Ved lansering av Studio, under SageMaker JumpStart Velg navigasjonsruten Modeller, notatbøker, løsninger.
    SageMaker JumpStart-konsoll
  3. I søkefeltet, søk etter Llama 2 13b Chat.
  4. Under ImplementeringskonfigurasjonFor SageMaker vertsinstans, velg ml.g5.48xlarge og for Endepunktnavn, Tast inn meta-textgeneration-llama-2-13b-f.
  5. Velg Distribuere.

SageMaker JumpStart Deployment Configuration

Etter at distribusjonen er vellykket, bør du kunne se In Service status.

Lamamodellstatus

  1. Modeller, notatbøker, løsninger side, søk etter Stable Diffusion 2.1.
  2. Under ImplementeringskonfigurasjonFor SageMaker vertsinstans, velg ml.p3.2xlarge og for Endepunktnavn, Tast inn jumpstart-dft-stable-diffusion-v2-1-base.
  3. Velg Distribuer.

SageMaker JumpStart Deployment Configuration

Etter at distribusjonen er vellykket, bør du kunne se In Service status.

Stabil diffusjonsmodellstatus

Distribuer Lambda- og IAM-tillatelser ved å bruke AWS CloudFormation

Denne delen beskriver hvordan du kan starte en CloudFormation-stabel som distribuerer en Lambda-funksjon som behandler brukerforespørselen din og kaller SageMaker-endepunktet som du distribuerte, og distribuerer alle nødvendige IAM-tillatelser. Fullfør følgende trinn:

  1. Naviger til GitHub repository og last ned CloudFormation-malen (lambda.cfn.yaml) til din lokale maskin.
  2. På CloudFormation-konsollen velger du Lag stabel rullegardinmenyen og velg Med nye ressurser (standard).
  3. Angi mal side, velg Last opp en malfil og Velg Fil.
  4. Velg lambda.cfn.yaml filen du lastet ned, og velg deretter neste.
  5. Spesifiser stakkdetaljer side, skriv inn et stabelnavn og API-nøkkelen du fikk i forutsetningene, og velg deretter neste.
  6. Konfigurer stakkalternativer side, velg neste.
  7. Se gjennom og anerkjenne endringene og velg Send.

Sett opp nettgrensesnittet

Denne delen beskriver trinnene for å kjøre nettgrensesnittet (opprettet med Cloudscape designsystem) på din lokale maskin:

  1. Naviger til brukeren på IAM-konsollen functionUrl.
  2. Sikkerhetsinformasjon kategorien, velg Opprett tilgangsnøkkel.
  3. Få tilgang til viktige beste fremgangsmåter og alternativer side, velg Kommandolinjegrensesnitt (CLI) Og velg neste.
  4. Angi beskrivelsestagg side, velg Opprett tilgangsnøkkel.
  5. Kopier tilgangsnøkkelen og den hemmelige tilgangsnøkkelen.
  6. Velg Ferdig.
  7. Naviger til GitHub repository og last ned react-llm-chat-studio kode.
  8. Start mappen i din foretrukne IDE og åpne en terminal.
  9. naviger til src/configs/aws.json og skriv inn tilgangsnøkkelen og den hemmelige tilgangsnøkkelen du fikk.
  10. Skriv inn følgende kommandoer i terminalen:
    npm install npm start

  11. Åpen http://localhost:3000 i nettleseren din og begynn å samhandle med modellene dine!

For å bruke Chat Studio, velg en grunnleggende modell på rullegardinmenyen og skriv inn søket ditt i tekstboksen. For å få AI-genererte bilder sammen med svaret, legg til uttrykket "med bilder" på slutten av søket ditt.

Legg til andre SageMaker foundation-modeller

Du kan utvide muligheten til denne løsningen ytterligere til å inkludere flere SageMaker-fundamentmodeller. Fordi hver modell forventer forskjellige input- og output-formater når de påkaller SageMaker-endepunktet, må du skrive noe transformasjonskode i callSageMakerEndpoints Lambda-funksjonen for å kommunisere med modellen.

Denne delen beskriver de generelle trinnene og kodeendringene som kreves for å implementere en ekstra modell etter eget valg. Merk at grunnleggende kunnskap om Python-språket kreves for trinn 6–8.

  1. I SageMaker Studio, distribuer SageMaker-grunnmodellen du velger.
  2. Velg SageMaker JumpStart og Start JumpStart-ressurser.
  3. Velg ditt nylig utplasserte modellendepunkt og velg Åpne Notebook.
  4. Finn nyttelastparameterne på den bærbare konsollen.

Dette er feltene som den nye modellen forventer når den påkaller SageMaker-endepunktet. Følgende skjermbilde viser et eksempel.

SageMaker endepunktkonfigurasjon

  1. Naviger til på Lambda-konsollen callSageMakerEndpoints.
  2. Legg til en tilpasset inndatabehandler for din nye modell.

I det følgende skjermbildet transformerte vi inngangen for Falcon 40B Instruct BF16 og GPT NeoXT Chat Base 20B FP16. Du kan sette inn din egendefinerte parameterlogikk som angitt for å legge til inngangstransformasjonslogikken med referanse til nyttelastparameterne du kopierte.

Lambdakodebit

  1. Gå tilbake til den bærbare konsollen og finn query_endpoint.

Denne funksjonen gir deg en idé om hvordan du kan transformere utdataene til modellene for å trekke ut den endelige tekstresponsen.

SageMaker endepunktkonfigurasjon

  1. Med henvisning til koden i query_endpoint, legg til en tilpasset utdatabehandler for din nye modell.
    Lambdakode
  2. Velg Distribuere.
  3. Åpne IDE, start react-llm-chat-studio kode, og naviger til src/configs/models.json.
  4. Legg til modellnavn og modellendepunkt, og skriv inn nyttelastparameterne fra trinn 4 under payload i følgende format:
    "add_model_name": { "endpoint_name": "add_model_enpoint", "payload": { "add_payload_paramters_here"
    }
    },

  5. Oppdater nettleseren din for å begynne å samhandle med den nye modellen din!

Distribuer applikasjonen ved å bruke Amplify

Amplify er en komplett løsning som lar deg distribuere applikasjonen din raskt og effektivt. Denne delen beskriver trinnene for å distribuere Chat Studio til en Amazon CloudFront distribusjon ved hjelp av Amplify hvis du ønsker å dele applikasjonen din med andre brukere.

  1. Naviger til react-llm-chat-studio kodemappen du opprettet tidligere.
  2. Skriv inn følgende kommandoer i terminalen og følg oppsettinstruksjonene:
    npm install -g @aws-amplify/cli amplify configure

  3. Initialiser et nytt Amplify-prosjekt ved å bruke følgende kommando. Oppgi et prosjektnavn, godta standardkonfigurasjonene og velg AWS tilgangsnøkler når du blir bedt om å velge autentiseringsmetode.
    amplify init

  4. Vær vert for Amplify-prosjektet ved å bruke følgende kommando. Velge Amazon CloudFront og S3 når du blir bedt om å velge plugin-modus.
    amplify hosting add

  5. Til slutt, bygg og distribuer prosjektet med følgende kommando:
    amplify publish

  6. Etter at implementeringen er vellykket, åpne URL-en som er oppgitt i nettleseren din og begynn å samhandle med modellene dine!

Rydd opp

For å unngå fremtidige kostnader, fullfør følgende trinn:

  1. Slett CloudFormation-stabelen. For instruksjoner, se Sletter en stabel på AWS CloudFormation-konsollen.
  2. Slett SageMaker JumpStart-endepunktet. For instruksjoner, se Slett endepunkter og ressurser.
  3. Slett SageMaker-domenet. For instruksjoner, se Slett et Amazon SageMaker-domene.

konklusjonen

I dette innlegget forklarte vi hvordan du lager et nettgrensesnitt for grensesnitt med LLM-er distribuert på AWS.

Med denne løsningen kan du samhandle med din LLM og holde en samtale på en brukervennlig måte for å teste eller stille LLM-spørsmålene, og få en collage av bilder og videoer om nødvendig.

Du kan utvide denne løsningen på forskjellige måter, for eksempel ved å integrere flere fundamentmodeller, integrere med Amazon Kendra for å aktivere ML-drevet intelligent søk for å forstå bedriftsinnhold og mer!

Vi inviterer deg til å eksperimentere med forskjellige forhåndstrente LLM-er tilgjengelig på AWS, eller bygg på toppen av eller til og med lag dine egne LLM-er i SageMaker. Gi oss beskjed om dine spørsmål og funn i kommentarene, og ha det gøy!


Om forfatterne

Lag et nettgrensesnitt for å samhandle med LLM-er ved å bruke Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Jarrett Yeo Shan Wei er en Associate Cloud Architect i AWS Professional Services som dekker offentlig sektor på tvers av ASEAN og er en talsmann for å hjelpe kunder med å modernisere og migrere inn i skyen. Han har oppnådd fem AWS-sertifiseringer, og har også publisert en forskningsartikkel om gradientforsterkende maskinensembler i den åttende internasjonale konferansen om AI. På fritiden fokuserer Jarrett på og bidrar til den generative AI-scenen hos AWS.

Lag et nettgrensesnitt for å samhandle med LLM-er ved å bruke Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Tammy Lim Lee Xin er Associate Cloud Architect hos AWS. Hun bruker teknologi for å hjelpe kundene med å levere de ønskede resultatene i deres skyadopsjonsreise og brenner for AI/ML. Utenom jobben elsker hun å reise, gå tur og tilbringe tid med familie og venner.

Tidstempel:

Mer fra AWS maskinlæring