Mantium er en global cloud platform udbyder til at bygge AI applikationer og administrere dem i stor skala. Mantiums end-to-end udviklingsplatform gør det muligt for virksomheder og virksomheder i alle størrelser at bygge AI-applikationer og automatisering hurtigere og nemmere end hvad der traditionelt har været muligt. Med Mantium kan tekniske og ikke-tekniske teams prototype, udvikle, teste og implementere AI-applikationer, alt sammen med en low-code tilgang. Gennem automatisk logning, overvågning og sikkerhedsfunktioner frigiver Mantium også software og DevOps-ingeniører fra at bruge deres tid på at genopfinde hjulet. På et højt niveau leverer Mantium:
- State-of-the-art AI – Eksperimenter og udvikler med et omfattende udvalg af open source og private store sprogmodeller med en simpel UI eller API.
- AI procesautomatisering – Byg nemt AI-drevne applikationer med et voksende bibliotek af integrationer og Mantiums grafiske AI Builder.
- Hurtig implementering – Forkort produktionstidslinjen fra måneder til uger eller endda dage med implementering med et enkelt klik. Denne funktion gør AI-applikationer til delbare webapps med et enkelt klik.
- Sikkerhed og regulering – Sikre sikkerhed og overholdelse af styringspolitikker og støtte til menneskelige processer.
Med Mantium AI Builder kan du udvikle sofistikerede arbejdsgange, der integrerer eksterne API'er, logiske operationer og AI-modeller. Følgende skærmbillede viser et eksempel på Mantium AI-appen, som kæder et Twilio-input, en styringspolitik, AI-blok (som kan stole på en open source-model som GPT-J) og Twilio-output sammen.
For at understøtte denne app giver Mantium omfattende og ensartet adgang til ikke kun model-API'er fra AI-udbydere som Open AI, Co:here og AI21, men også state-of-the-art open source-modeller. Hos Mantium mener vi, at enhver skal være i stand til at bygge moderne AI-applikationer, som de ejer, end-to-end, og vi understøtter dette ved at give adgang uden kode og lav kode til ydeevneoptimerede open source-modeller.
For eksempel er en af Mantiums kerne open source-modeller GPT-J, en state-of-the-art naturlig sprogbehandling (NLP) model udviklet af Eleuther AI. Med 6 milliarder parametre er GPT-J en af de største og bedst ydende open source-tekstgenereringsmodeller. Mantium-brugere kan integrere GPT-J i deres AI-applikationer via Mantiums AI Builder. I tilfælde af GPT-J indebærer dette specificering af en prompt (en naturlig sproglig repræsentation af, hvad modellen skal gøre) og konfigurere nogle valgfrie parametre.
For eksempel viser følgende skærmbillede en forkortet demonstration af en stemningsanalyseprompt, der producerer forklaringer og stemningsforudsigelser. I dette eksempel skrev forfatteren, at "maden var vidunderlig", og at deres "service var ekstraordinær." Derfor udtrykker denne tekst positiv stemning.
En udfordring med open source-modeller er imidlertid, at de sjældent er designet til produktionskvalitet. I tilfælde af store modeller som GPT-J kan dette gøre produktionsimplementering upraktisk og endda umulig, afhængigt af brugssituationen.
For at sikre, at vores brugere har adgang til klassens bedste ydeevne, leder vi altid efter måder, hvorpå vi kan mindske ventetiden for vores kernemodeller. I dette indlæg beskriver vi resultaterne af et inferensoptimeringseksperiment, hvor vi bruger DeepSpeeds inferensmotor til at øge GPT-Js inferenshastighed med cirka 116%. Vi beskriver også, hvordan vi har implementeret Hugging Face Transformers-implementeringen af GPT-J med DeepSpeed i vores Amazon SageMaker slutningspunkter.
Oversigt over GPT-J modellen
GPT-J er en generativ fortrænet (GPT) sprogmodel, og med hensyn til dens arkitektur kan den sammenlignes med populære, private, store sprogmodeller som Open AI's GPT-3. Som tidligere nævnt består den af cirka 6 milliarder parametre og 28 lag, som består af en feedforward-blok og en selvopmærksomhedsblok. Da det først blev udgivet, var GPT-J en af de første store sprogmodeller, der blev brugt roterende indstøbninger, en ny positionsindkodningsstrategi, der forener absolutte og relative positionskodere. Den anvender også en innovativ paralleliseringsstrategi, hvor tætte og feedforward-lag kombineres i et enkelt lag, hvilket minimerer kommunikationsoverhead.
Selvom GPT-J måske ikke helt kvalificerer sig som stor efter nutidens standarder – store modeller består typisk af mere end 100 milliarder parametre – er den stadig imponerende effektiv, og med en vis hurtig konstruktion eller minimal finjustering kan du bruge den til at løse mange problemer. Desuden betyder dens relativt beskedne størrelse, at du kan implementere den hurtigere og til en meget lavere pris end større modeller.
Når det er sagt, er GPT-J stadig ret stor. For eksempel kræver træning af GPT-J i FP32 med fuldvægtsopdateringer og Adam optimizer over 200 GB hukommelse: 24 GB til modelparametrene, 24 GB til gradienterne, 24 GB til Adams kvadratiske gradienter, 24 GB til optimeringstilstandene, og de yderligere hukommelseskrav til indlæsning af træningsbatches og lagring af aktiveringer. Selvfølgelig reducerer træning i FP16 disse hukommelseskrav næsten til det halve, men et hukommelsesfodaftryk på over 100 GB kræver stadig innovative træningsstrategier. For eksempel udviklede Mantiums NLP-team i samarbejde med SageMaker en workflow til træning (finjustering) af GPT-J ved hjælp af SageMaker distribuerede model parallelbibliotek.
I modsætning hertil har visning af GPT-J til inferens meget lavere hukommelseskrav - i FP16 fylder modelvægte mindre end 13 GB, hvilket betyder, at inferens nemt kan udføres på en enkelt 16 GB GPU. Men slutninger med out-of-the-box implementeringer af GPT-J, såsom Hugging Face Transformers implementering som vi bruger, er relativt langsom. For at understøtte use cases, der kræver meget responsiv tekstgenerering, har vi fokuseret på at reducere GPT-J's inferensforsinkelse.
GPT-Js svarlatensudfordringer
Responsforsinkelse er en kernehindring for de generative fortrænede transformere (GPT'er) såsom GPT-J, der driver moderne tekstgenerering. GPT-modeller genererer tekst gennem sekvenser af slutningstrin. Ved hvert inferenstrin får modellen tekst som input, og betinget af dette input sampler den et ord fra sit ordforråd for at tilføje til teksten. For eksempel, givet rækkefølgen af tokens "Jeg har brug for en paraply, fordi det er det", kan et næste token med høj sandsynlighed "regne". Det kan dog også være "solrigt" eller "bundet", hvilket kunne være det første skridt mod en tekstsekvens som "Jeg har brug for en paraply, fordi det er nødt til at begynde at regne."
Scenarier som dette rejser nogle interessante udfordringer for implementering af GPT-modeller, fordi brugssager i den virkelige verden kan involvere titusinder, hundredvis eller endda tusindvis af slutningstrin. For eksempel kræver generering af et 1,000-tokens svar 1,000 slutningstrin! Derfor, selvom en model kan tilbyde inferenshastigheder, der isoleret set virker hurtige nok, er det let for latens at nå uholdbare niveauer, når lange tekster genereres. Vi observerede en gennemsnitlig latenstid på 280 millisekunder pr. inferenstrin på en V100 GPU. Dette kan virke hurtigt for en 6.7 milliarder parametermodel, men med sådanne forsinkelser tager det cirka 30 sekunder at generere et 500-tokens svar, hvilket ikke er ideelt set fra et brugeroplevelsesperspektiv.
Optimering af inferenshastigheder med DeepSpeed Inference
DeepSpeed er et åbent kildekode-bibliotek til optimering af dybdelæring udviklet af Microsoft. Selvom det primært fokuserer på optimering af træning af store modeller, giver DeepSpeed også en inferensoptimeringsramme, der understøtter et udvalgt sæt modeller, herunder BERT, Megatron, GPT-Neo, GPT2 og GPT-J. DeepSpeed Inference letter højtydende inferens med store Transformer-baserede arkitekturer gennem en kombination af modelparallelisme, inferensoptimerede CUDA-kerner og kvantisering.
For at øge inferenshastigheden med GPT-J bruger vi DeepSpeeds inferensmotor til at injicere optimerede CUDA-kerner i Hugging Face Transformers GPT-J-implementeringen.
For at evaluere hastighedsfordelene ved DeepSpeeds inferensmotor, udførte vi en række latenstest, hvor vi timede GPT-J under forskellige konfigurationer. Specifikt varierede vi, om DeepSpeed blev brugt eller ej, hardware, outputsekvenslængde og inputsekvenslængde. Vi fokuserede på både output- og inputsekvenslængde, fordi de begge påvirker inferenshastigheden. For at generere en outputsekvens på 50 tokens skal modellen udføre 50 inferenstrin. Ydermere afhænger den tid, der kræves til at udføre et inferenstrin, af størrelsen af inputsekvensen - større input kræver mere behandlingstid. Selvom effekten af outputsekvensstørrelsen er meget større end effekten af inputsekvensstørrelsen, er det stadig nødvendigt at tage højde for begge faktorer.
I vores eksperiment brugte vi følgende design:
- DeepSpeed-inferensmotor - Tænd sluk
- Hardware – T4 (ml.g4dn.2xlarge), V100 (ml.p3.2xlarge)
- Input sekvens længde - 50, 200, 500, 1000
- Udgangssekvenslængde - 50, 100, 150, 200
I alt har dette design 64 kombinationer af disse fire faktorer, og for hver kombination kørte vi 20 latenstest. Hver test blev kørt på et forudinitialiseret SageMaker-slutpunkt, hvilket sikrer, at vores latenstest afspejler produktionstider, inklusive API-udvekslinger og forbehandling.
Vores test viser, at DeepSpeeds GPT-J-inferensmotor er væsentligt hurtigere end den grundlæggende Hugging Face Transformers PyTorch-implementering. Følgende figur illustrerer de gennemsnitlige tekstgenereringsforsinkelser for GPT-J med og uden DeepSpeed-acceleration på ml.g4dn.2xlarge og ml.p3.2xlarge SageMaker-slutningsendepunkter.
På ml.g4dn.2xlarge-instansen, som er udstyret med en 16 GB NVIDIA T4 GPU, observerede vi en gennemsnitlig latensreduktion på cirka 24 % [Standard Deviation (SD) = 0.05]. Dette svarede til en stigning fra en gennemsnitlig 12.5 (SD = 0.91) tokens per sekund til en gennemsnitlig 16.5 (SD = 2.13) tokens per sekund. Det er bemærkelsesværdigt, at DeepSpeeds accelerationseffekt var endnu stærkere på ml.p3.2xlarge-instansen, som er udstyret med en NVIDIA V100 GPU. På den hardware observerede vi en gennemsnitlig latensreduktion på 53 % (SD = .07). Med hensyn til tokens per sekund svarede dette til en stigning fra en gennemsnitlig 21.9 (SD = 1.97) tokens per sekund til en gennemsnitlig 47.5 (SD = 5.8) tokens per sekund.
Vi observerede også, at accelerationen fra DeepSpeed blev dæmpet lidt på begge hardwarekonfigurationer, efterhånden som størrelsen af inputsekvenserne voksede. På tværs af alle forhold var slutningen med DeepSpeeds GPT-J-optimeringer dog stadig væsentligt hurtigere end basislinjen. For eksempel på g4dn-forekomsten var de maksimale og minimale latensreduktioner henholdsvis 31 % (input-sekvensstørrelse = 50) og 15 % (input-sekvensstørrelse = 1000). Og på p3-forekomsten var de maksimale og minimale latensreduktioner henholdsvis 62 % (input sekvensstørrelse = 50) og 40 % (input sekvensstørrelse = 1000).
Implementering af GPT-J med DeepSpeed på et SageMaker-slutpunkt
Ud over at øge tekstgenereringshastighederne dramatisk for GPT-J, er DeepSpeeds inferensmotor enkel at integrere i et SageMaker-slutpunkt. Før vi tilføjede DeepSpeed til vores inferensstack, kørte vores endepunkter på et brugerdefineret Docker-billede baseret på et officielt PyTorch-billede. SageMaker gør det meget nemt at implementere brugerdefinerede inferensendepunkter, og integrationen af DeepSpeed var lige så enkel som at inkludere afhængigheden og skrive et par linjer kode. Open source-vejledningen til implementeringsworkflowet til implementering af GPT-J med DeepSpeed er tilgængelig på GitHub.
Konklusion
Mantium er dedikeret til at føre innovation, så alle hurtigt kan bygge med AI. Fra AI-drevet procesautomatisering til strenge sikkerheds- og overholdelsesindstillinger giver vores komplette platform alle de nødvendige værktøjer til at udvikle og administrere robuste, ansvarlige AI-applikationer i stor skala og sænker barrieren for adgang. SageMaker hjælper virksomheder som Mantium med at komme hurtigt på markedet.
For at lære, hvordan Mantium kan hjælpe dig med at opbygge komplekse AI-drevne arbejdsgange til din organisation, besøg www.mantiumai.com.
Om forfatterne
Joe Hoover er Senior Applied Scientist på Mantiums AI R&D-team. Han brænder for at udvikle modeller, metoder og infrastruktur, der hjælper folk med at løse problemer i den virkelige verden med banebrydende NLP-systemer. I sin fritid nyder han at tage på rygsæk, havearbejde, lave mad og hænge ud med sin familie.
Dhawal Patel er Principal Machine Learning Architect hos AWS. Han har arbejdet med organisationer lige fra store virksomheder til mellemstore startups om problemer relateret til distribueret computing og kunstig intelligens. Han fokuserer på Deep learning, herunder NLP og Computer Vision domæner. Han hjælper kunder med at opnå højtydende modelslutning på SageMaker.
Sunil Padmanabhan er Startup Solutions Architect hos AWS. Som tidligere startup-stifter og CTO brænder han for machine learning og fokuserer på at hjælpe startups med at udnytte AI/ML til deres forretningsresultater og designe og implementere ML/AI-løsninger i stor skala.
- Coinsmart. Europas bedste Bitcoin og Crypto Exchange.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. FRI ADGANG.
- CryptoHawk. Altcoin radar. Gratis prøveversion.
- Kilde: https://aws.amazon.com/blogs/machine-learning/how-mantium-achieves-low-latency-gpt-j-inference-with-deepspeed-on-amazon-sagemaker/
- "
- 000
- 100
- 28
- 7
- 9
- a
- Om
- absolutte
- adgang
- derfor
- Konto
- opnå
- tværs
- Desuden
- Yderligere
- påvirke
- AI
- Alle
- Skønt
- altid
- Amazon
- analyse
- nogen
- api
- API'er
- app
- applikationer
- anvendt
- tilgang
- cirka
- apps
- arkitektur
- kunstig
- kunstig intelligens
- Automatisk Ur
- Automation
- til rådighed
- gennemsnit
- AWS
- barriere
- Baseline
- fordi
- før
- fordele
- Billion
- Bloker
- bygge
- Builder
- Bygning
- virksomhed
- virksomheder
- tilfælde
- udfordre
- udfordringer
- Cloud
- Cloud platform
- kode
- samarbejde
- kombination
- kombinationer
- kombineret
- Kommunikation
- Virksomheder
- fuldføre
- komplekse
- Compliance
- omfattende
- computer
- computing
- betingelser
- Core
- kunne
- CTO
- skik
- Kunder
- banebrydende
- dedikeret
- dyb
- leverer
- demonstrere
- Afhængigt
- afhænger
- indsætte
- indsat
- implementering
- implementering
- beskrive
- Design
- konstrueret
- udvikle
- udviklet
- udvikling
- Udvikling
- distribueret
- distribueret computing
- Docker
- Domæner
- dramatisk
- nemt
- effekt
- beskæftiger
- muliggør
- ende til ende
- Endpoint
- Engine (Motor)
- Engineering
- Ingeniører
- sikring
- virksomheder
- udstyret
- evaluere
- alle
- eksempel
- Udvekslinger
- erfaring
- eksperiment
- omfattende
- ekstraordinære
- Ansigtet
- faktorer
- familie
- FAST
- hurtigere
- Feature
- Funktionalitet
- Figur
- Fornavn
- fokuserede
- fokuserer
- efter
- Fodspor
- grundlægger
- Framework
- fra
- fuld
- Endvidere
- generere
- generere
- generation
- generative
- Global
- regeringsførelse
- GPU
- Dyrkning
- vejlede
- Hardware
- hjælpe
- hjælpe
- hjælper
- link.
- Høj
- stærkt
- Hvordan
- Men
- HTTPS
- Hundreder
- ideal
- billede
- implementering
- Herunder
- Forøg
- stigende
- Innovation
- innovativ
- indgang
- instans
- integrere
- integrationer
- Intelligens
- isolation
- IT
- Sprog
- stor
- større
- største
- lag
- førende
- LÆR
- læring
- Niveau
- niveauer
- Leverage
- Bibliotek
- linjer
- lastning
- Lang
- leder
- maskine
- machine learning
- lave
- maerker
- administrere
- styring
- Marked
- midler
- Hukommelse
- metoder
- microsoft
- måske
- minimum
- ML
- model
- modeller
- overvågning
- måned
- mere
- Natural
- nødvendig
- Nvidia
- hindring
- tilbyde
- tilbydes
- officiel
- åbent
- open source
- Produktion
- optimering
- optimeret
- optimering
- organisation
- organisationer
- egen
- lidenskabelige
- Mennesker
- ydeevne
- perspektiv
- perron
- politikker
- politik
- Populær
- position
- positiv
- mulig
- magt
- Forudsigelser
- smuk
- Main
- private
- problemer
- behandle
- Procesautomatisering
- Processer
- forarbejdning
- produktion
- udbyder
- udbydere
- giver
- leverer
- kvalificere
- hurtigt
- F & U
- rejse
- spænder
- nå
- reducere
- afspejler
- frigivet
- Udgivelser
- repræsentation
- kræver
- påkrævet
- Krav
- Kræver
- svar
- ansvarlige
- Resultater
- Kør
- kører
- Sikkerhed
- Said
- Scale
- Videnskabsmand
- sekunder
- valg
- stemningen
- Series
- servering
- sæt
- Simpelt
- enkelt
- Størrelse
- So
- Software
- Løsninger
- SOLVE
- nogle
- sofistikeret
- specifikt
- hastighed
- hastigheder
- udgifterne
- stable
- standard
- starte
- opstart
- Nystartede
- state-of-the-art
- Stater
- Stadig
- strategier
- Strategi
- stærkere
- support
- Understøtter
- Systemer
- hold
- Teknisk
- vilkår
- prøve
- tests
- derfor
- tusinder
- Gennem
- tid
- gange
- nutidens
- sammen
- token
- Tokens
- værktøjer
- traditionelt
- Kurser
- typisk
- ui
- under
- opdateringer
- brug
- brugere
- forskellige
- vision
- måder
- web
- Hvad
- Hjul
- hvorvidt
- uden
- arbejdede
- arbejdsgange
- skrivning
- Din