AI-landskabet bliver omformet af fremkomsten af generative modeller, der er i stand til at syntetisere data af høj kvalitet, såsom tekst, billeder, musik og videoer. Kurset mod demokratisering af kunstig intelligens bidrog til yderligere at popularisere generativ kunstig intelligens efter open source-udgivelserne til basismodelfamilier som BERT, T5, GPT, CLIP og senest, Stabil diffusion. Hundredvis af software as a service (SaaS) applikationer udvikles omkring disse præ-trænede modeller, som enten serveres direkte til slutkunder eller finjusteres først på kundebasis for at generere personligt og unikt indhold (som f.eks. avatarer, stiliserede fotoredigeringer, videospilaktiver, domænespecifik tekst og mere). Med tempoet i teknologisk innovation og udbredelsen af nye use cases for generativ AI, skal kommende AI-native SaaS-udbydere og startups i B2C-segmentet forberede sig på skala fra dag ét og sigte mod at forkorte deres time-to-market ved at reducere operationelle overhead så meget som muligt.
I dette indlæg gennemgår vi de tekniske krav og applikationsdesignovervejelser for finjustering og visning af hyperpersonaliserede AI-modeller i stor skala på AWS. Vi foreslår en arkitektur baseret på det fuldt administrerede Amazon SageMaker trænings- og serveringsfunktioner, der gør det muligt for SaaS-udbydere at udvikle deres applikationer hurtigere, levere servicekvalitet og øge omkostningseffektiviteten.
Løsningens omfang og krav
Lad os først definere omfanget af personaliserede generative AI SaaS-applikationer:
Lad os derefter gennemgå de tekniske krav og arbejdsgange for en applikation, der understøtter finjustering og visning af potentielt tusindvis af personlige modeller. Arbejdsgangen består generelt af to dele:
- Generer en personlig model via letvægts finjustering af den fortrænede basismodel
- Vær vært for den personlige model for on-demand inferensanmodninger, når brugeren vender tilbage
En af overvejelserne til den første del af arbejdsgangen er, at vi skal være forberedte på uforudsigelig og spids brugertrafik. Toppene i brugen kan for eksempel opstå på grund af nye foundation-modeludgivelser eller nye SaaS-funktioner. Dette vil pålægge store intermitterende GPU-kapacitetsbehov, såvel som et behov for asynkrone finjusteringsjoblanceringer for at absorbere trafikstigningen.
Med hensyn til modelhosting, da markedet oversvømmes med AI-baserede SaaS-applikationer, bliver servicehastigheden en kendetegnende faktor. En hurtig, smidig brugeroplevelse kan blive forringet af koldstarter i infrastrukturen eller høj slutningsforsinkelse. Selvom krav til slutningsforsinkelse vil afhænge af brugssituationen og brugernes forventninger, fører denne overvejelse generelt til en præference for realtidsmodelhosting på GPU'er (i modsætning til langsommere hostingmuligheder, der kun er CPU). Real-time GPU-modelhosting kan dog hurtigt føre til høje driftsomkostninger. Derfor er det afgørende for os at definere en hostingstrategi, der forhindrer omkostningerne i at vokse lineært med antallet af installerede modeller (aktive brugere).
Løsningsarkitektur
Før vi beskriver den foreslåede arkitektur, lad os diskutere, hvorfor SageMaker passer godt til vores applikationskrav ved at se på nogle af dens funktioner.
First, SageMaker uddannelse , Hosting API'er giver produktivitetsfordelen ved fuldt administrerede træningsjob og modelimplementeringer, så hurtigt bevægende teams kan fokusere mere tid på produktfunktioner og differentiering. Desuden passer lancerings-og-glem-paradigmet for SageMaker Training-job perfekt til den forbigående karakter af de samtidige modelfinjusteringsjob i bruger-onboarding-fasen. Vi diskuterer flere overvejelser om samtidighed i næste afsnit.
For det andet understøtter SageMaker unikke GPU-aktiverede hostingmuligheder til implementering af deep learning-modeller i stor skala. For eksempel blev NVIDIA Triton Inference Server, en højtydende open source-inferenssoftware, indbygget integreret i SageMaker-økosystemet i 2022. Dette blev efterfulgt af lanceringen af GPU-understøttelse af SageMaker multi-model slutpunkter, som giver en skalerbar, lav -forsinkelse og omkostningseffektiv måde at implementere tusindvis af deep learning-modeller bag et enkelt endepunkt.
Endelig, når vi kommer ned til infrastrukturniveauet, understøttes disse funktioner af de bedste beregningsmuligheder i klassen. For eksempel tilbyder G5-instanstypen, som er udstyret med NVIDIA A10g GPU'er (unik for AWS), et stærkt pris-ydelsesforhold, både til modeltræning og hosting. Det giver den laveste pris pr. FP32 FLOP (et vigtigt mål for, hvor meget regnekraft du får pr. dollar) på tværs af GPU-instanspaletten på AWS og forbedrer i høj grad i forhold til den tidligere laveste GPU-instanstype (G4dn). For mere information, se Opnå fire gange højere ML-inferensgennemløb til tre gange lavere pris pr. slutning med Amazon EC2 G5-instanser til NLP- og CV PyTorch-modeller.
Selvom følgende arkitektur generelt gælder for forskellige generative AI-brugstilfælde, lad os bruge tekst-til-billede-generering som et eksempel. I dette scenarie vil en billedgenereringsapp skabe en eller flere tilpassede, finjusterede modeller til hver af dens brugere, og disse modeller vil være tilgængelige for realtidsbilledegenerering efter behov fra slutbrugeren. Løsningens arbejdsgang kan derefter opdeles i to hovedfaser, som det fremgår af arkitekturen. Den første fase (A) svarer til brugerens onboarding-proces – det er, når en model finjusteres til den nye bruger. I anden fase (B) bruges den finjusterede model til on-demand inferens.
Lad os gennemgå trinene i arkitekturen mere detaljeret, som nummereret i diagrammet.
1. Kontrol af modelstatus
Når en bruger interagerer med tjenesten, tjekker vi først, om det er en tilbagevendende bruger, der allerede er blevet ombord på tjenesten og har tilpassede modeller klar til betjening. En enkelt bruger kan have mere end én personlig model. Kortlægningen mellem bruger og tilsvarende modeller gemmes i Amazon DynamoDB, der fungerer som et fuldt administreret, serverløst, ikke-relationelt metadatalager, som er nemt at forespørge på, billigt og skalerbart. Vi anbefaler som minimum at have to borde:
- En til at gemme kortlægningen mellem brugere og modeller. Dette inkluderer bruger-id og modelartefakt Amazon Simple Storage Service (Amazon S3) URI.
- En anden til at fungere som en kø, der gemmer anmodningerne om modeloprettelse og deres færdiggørelsesstatus. Dette inkluderer bruger-id, modeltræningsjob-id og status sammen med hyperparametre og metadata forbundet med træning.
2. Bruger onboarding og model finjustering.
Hvis ingen model er blevet finjusteret til brugeren før, uploader applikationen finjusteringsbilleder til Amazon S3, hvilket udløser en AWS Lambda funktion til at registrere et nyt job til en DynamoDB-tabel.
En anden Lambda-funktion spørger tabellen efter et nyt job og lancerer det med SageMaker Training. Den kan udløses for hver post ved hjælp af Amazon DynamoDB-streams, eller på en tidsplan ved hjælp af Amazon Eventbridge (et mønster, der er afprøvet og testet af AWS-kunder, herunder internt hos Amazon). Eventuelt kan billeder eller prompter videregives til slutning og behandles direkte i SageMaker Training-jobbet lige efter, at modellen er trænet. Dette kan hjælpe med at forkorte tiden til at levere de første billeder tilbage til applikationen. Efterhånden som billeder genereres, kan du udnytte checkpoint synkroniseringsmekanisme i SageMaker for at uploade mellemresultater til Amazon S3. Med hensyn til joblancering samtidighed, SageMaker CreateTrainingJob API understøtter en anmodningshastighed på én pr. sekund, med større bursthastigheder tilgængelige i perioder med høj trafik. Hvis du har brug for bæredygtigt at starte mere end én finjusteringsopgave pr. sekund (TPS), har du følgende kontroller og muligheder:
- Brug SageMaker administrerede varme pools, som lader dig beholde og genbruge klargjort infrastruktur efter afslutningen af et træningsjob for at reducere koldstartsforsinkelse for gentagne arbejdsbelastninger.
- Implementer genforsøg i din lambda-funktion for startjob (vist i arkitekturdiagrammet).
- I sidste ende, hvis finjusteringsanmodningsfrekvensen konsekvent vil være over 1 TPS, kan du starte N finjusteringer parallelt med et enkelt SageMaker Training-job ved at anmode om et job med
num_instances=K
, og sprede arbejdet over de forskellige instanser. Et eksempel på, hvordan du kan opnå dette, er at sende en liste over opgaver, der skal køres som en inputfil til træningsjobbet, og hver instans behandler en anden opgave eller del af denne fil, differentieret af instansens numeriske identifikator (findes i resourceconfig.json). Husk på, at individuelle opgaver ikke bør variere meget i træningsvarighed, for at undgå den situation, hvor en enkelt opgave holder hele klyngen kørende i længere tid end nødvendigt.
Til sidst gemmes den finjusterede model, hvilket udløser en Lambda-funktion, der forbereder artefakten til visning på et SageMaker multi-model slutpunkt. På dette tidspunkt kunne brugeren få besked om, at træningen er afsluttet, og at modellen er klar til brug. Henvise til Håndtering af backend-anmodninger og frontend-meddelelser i serverløse webapps for bedste praksis på dette.
3. On-demand betjening af brugeranmodninger
Hvis en model tidligere er blevet finjusteret til brugeren, er vejen meget enklere. Applikationen påberåber multi-model-slutpunktet og videregiver nyttelasten og brugerens model-id. Den valgte model indlæses dynamisk fra Amazon S3 til endpoint-instansens disk og GPU-hukommelse (hvis den ikke er blevet brugt for nylig; for mere information, se Sådan fungerer multimodel-endepunkter), og bruges til slutninger. Modeloutputtet (personligt indhold) returneres endelig til applikationen.
Anmodningsinput og -output skal gemmes i S3 til brugerens fremtidige reference. For at undgå at påvirke anmodningsforsinkelsen (tiden målt fra det øjeblik, en bruger fremsætter en anmodning, indtil et svar returneres), kan du uploade direkte fra klientapplikationen eller alternativt inden for dit slutpunkts slutningskode.
Denne arkitektur giver den asynkroni og samtidighed, som var en del af løsningskravene.
Konklusion
I dette indlæg gennemgik vi overvejelser om at finjustere og betjene hyper-personaliserede AI-modeller i stor skala og foreslog en fleksibel, omkostningseffektiv løsning på AWS ved hjælp af SageMaker.
Vi dækkede ikke brugen af fortræning af store modeller. For mere information, se Distribueret træning i Amazon SageMaker , Delte dataparallelisme, samt historier om, hvordan AWS-kunder har trænet massive modeller på SageMaker, som f.eks AI21 , Stabilitet AI.
Om forfatterne
João Moura er AI/ML Specialist Solutions Architect hos AWS, baseret i Spanien. Han hjælper kunder med dyb læringsmodeltræning og inferensoptimering og mere bredt opbygning af store ML-platforme på AWS. Han er også en aktiv fortaler for ML-specialiseret hardware og lavkode ML-løsninger.
Dr. Alexander Arzhanov er en AI/ML Specialist Solutions Architect baseret i Frankfurt, Tyskland. Han hjælper AWS-kunder med at designe og implementere deres ML-løsninger på tværs af EMEA-regionen. Før han kom til AWS, forskede Alexander i oprindelsen af tunge grundstoffer i vores univers og voksede passioneret omkring ML efter at have brugt det i sine store videnskabelige beregninger.
Olivier Cruchant er en Machine Learning Specialist Solutions Architect hos AWS, baseret i Frankrig. Olivier hjælper AWS-kunder – fra små startups til store virksomheder – med at udvikle og implementere maskinlæringsapplikationer i produktionskvalitet. I sin fritid nyder han at læse forskningsartikler og udforske vildmarken med venner og familie.
Heiko Hotz er en Senior Solutions Architect for AI & Machine Learning med særligt fokus på naturlig sprogbehandling (NLP), store sprogmodeller (LLM'er) og generativ AI. Før denne rolle var han chef for datavidenskab for Amazons EU-kundeservice. Heiko hjælper vores kunder med at få succes i deres AI/ML-rejse på AWS og har arbejdet med organisationer i mange brancher, herunder forsikring, finansielle tjenester, medier og underholdning, sundhedspleje, forsyningsselskaber og fremstilling. I sin fritid rejser Heiko så meget som muligt.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/architect-personalized-generative-ai-saas-applications-on-amazon-sagemaker/
- :er
- $OP
- 1
- 100
- 2022
- 7
- a
- Om
- over
- opnå
- tværs
- aktiv
- Efter
- AI
- AI og maskinindlæring
- ai use cases
- AI / ML
- Alexander
- allerede
- Skønt
- Amazon
- Amazon EC2
- Amazon SageMaker
- ,
- API'er
- app
- Anvendelse
- applikationer
- arkitektur
- ER
- omkring
- AS
- Aktiver
- forbundet
- asynkron
- At
- til rådighed
- avatars
- AWS
- B2C
- tilbage
- Backed
- Bagende
- bund
- baseret
- grundlag
- BE
- bliver
- før
- bag
- være
- gavner det dig
- BEDSTE
- bedste praksis
- mellem
- bredt
- Bygning
- by
- beregninger
- CAN
- stand
- Kapacitet
- tilfælde
- tilfælde
- kontrollere
- kunde
- Cluster
- kode
- fuldføre
- færdiggørelse
- Compute
- konkurrent
- overvejelse
- overvejelser
- indhold
- kontrol
- Tilsvarende
- svarer
- Koste
- omkostningseffektiv
- Omkostninger
- kunne
- Kursus
- dæksel
- skabe
- skabelse
- skik
- kunde
- Kundeservice
- Kunder
- data
- datalogi
- dag
- dyb
- dyb læring
- levere
- Efterspørgsel
- indsætte
- indsat
- implementering
- implementeringer
- beskrive
- Design
- detail
- udvikle
- udviklet
- afvige
- forskellige
- differentieret
- Differentiering
- direkte
- diskutere
- Divided
- Dollar
- ned
- i løbet af
- dynamisk
- hver
- økosystem
- enten
- elementer
- EMEA
- muliggør
- Endpoint
- virksomheder
- Underholdning
- udstyret
- EU
- eksempel
- forventninger
- erfaring
- Exploit
- Udforskning
- familier
- familie
- hurtigt bevægende
- hurtigere
- Feature
- Funktionalitet
- File (Felt)
- Endelig
- finansielle
- finansielle tjenesteydelser
- Fornavn
- passer
- fleksibel
- Fokus
- efterfulgt
- efter
- Til
- fundet
- Foundation
- Fransk vin
- frisk
- venner
- fra
- frontend
- fuldt ud
- funktion
- yderligere
- fremtiden
- spil
- Generelt
- generelt
- generere
- genereret
- generation
- generative
- Generativ AI
- Tyskland
- få
- Go
- GPU
- GPU'er
- stor
- stærkt
- Dyrkning
- Hardware
- Have
- have
- hoved
- sundhedspleje
- tunge
- hjælpe
- hjulpet
- hjælper
- Høj
- Høj ydeevne
- høj kvalitet
- højere
- Hosting
- Hvordan
- Men
- HTML
- http
- HTTPS
- Hundreder
- ID
- identifikator
- billede
- billeder
- vigtigt
- pålægge
- in
- omfatter
- Herunder
- Forøg
- individuel
- industrier
- oplysninger
- Infrastruktur
- Innovation
- indgang
- instans
- forsikring
- integreret
- interagerer
- internt
- påberåber sig
- IT
- ITS
- Job
- Karriere
- sammenføjning
- rejse
- Holde
- landskab
- Sprog
- stor
- storstilet
- større
- Latency
- lancere
- lanceringer
- føre
- Leads
- læring
- Niveau
- letvægt
- Liste
- længere
- leder
- maskine
- machine learning
- større
- maerker
- lykkedes
- Produktion
- mange
- kortlægning
- Marked
- massive
- måle
- Medier
- Hukommelse
- Metadata
- måske
- tankerne
- minimum
- ML
- model
- modeller
- øjeblik
- mere
- Desuden
- mest
- Multi-model slutpunkt
- flere
- Musik
- Natural
- Natural Language Processing
- Natur
- Behov
- behov
- Ny
- næste
- NLP
- meddelelser
- roman
- nummer
- nummererede
- Nvidia
- of
- Tilbud
- Olive
- on
- On-Demand
- onboarding
- ONE
- open source
- operationelle
- modsætning
- optimering
- Indstillinger
- organisationer
- output
- Tempo
- papirer
- paradigme
- Parallel
- del
- dele
- Bestået
- Passing
- lidenskabelige
- sti
- Mønster
- perioder
- personale
- Personlig
- fase
- Platforme
- plato
- Platon Data Intelligence
- PlatoData
- Punkt
- mulig
- Indlæg
- potentielt
- magt
- praksis
- Forbered
- forberedt
- Forbereder
- forhindre
- tidligere
- tidligere
- Forud
- Behandlet
- Processer
- forarbejdning
- Produkt
- produktivitet
- fortaler
- foreslå
- foreslog
- give
- udbydere
- giver
- pytorch
- kvalitet
- hurtigt
- Sats
- priser
- forholdet
- Læsning
- klar
- realtid
- for nylig
- anbefaler
- optage
- reducere
- reducere
- om
- region
- register
- Udgivelser
- repetitiv
- anmode
- anmodninger
- Krav
- forskning
- svar
- Resultater
- tilbageholde
- vender tilbage
- gennemgå
- Rise
- roller
- Kør
- kører
- SaaS
- sagemaker
- skalerbar
- Scale
- scenarie
- planlægge
- Videnskab
- videnskabelig
- rækkevidde
- Anden
- Sektion
- segment
- valgt
- senior
- tjener
- Serverless
- tjener
- tjeneste
- Tjenester
- servering
- bør
- vist
- Simpelt
- enkelt
- Situationen
- lille
- So
- Software
- software som en tjeneste
- løsninger
- Løsninger
- nogle
- Spanien
- særligt
- specialist
- hastighed
- spike
- Spredning
- starte
- starter
- Nystartede
- Status
- Steps
- opbevaring
- butik
- Historier
- Strategi
- stærk
- vellykket
- sådan
- support
- Understøtter
- bord
- Opgaver
- opgaver
- hold
- Teknisk
- teknologisk
- at
- deres
- derfor
- Disse
- tusinder
- tre
- Gennem
- kapacitet
- tid
- gange
- til
- mod
- TPS
- Trafik
- uddannet
- Kurser
- rejser
- udløst
- udløsning
- Triton
- enestående
- Universe
- uforudsigelige
- kommende
- us
- Brug
- brug
- brug tilfælde
- Bruger
- Brugererfaring
- brugere
- forsyningsselskaber
- forskellige
- via
- video
- video game
- Videoer
- afgørende
- gik
- varm
- Vej..
- web
- GODT
- som
- Hele
- vilje
- med
- inden for
- Arbejde
- arbejdede
- udbytter
- Du
- Din
- youtube
- zephyrnet