Mantium är en global molnplattformsleverantör för att bygga AI-applikationer och hantera dem i stor skala. Mantiums end-to-end-utvecklingsplattform gör det möjligt för företag och företag av alla storlekar att bygga AI-applikationer och automatisering snabbare och enklare än vad som traditionellt varit möjligt. Med Mantium kan tekniska och icke-tekniska team prototypa, utveckla, testa och distribuera AI-applikationer, allt med en lågkodsansats. Genom automatisk loggning, övervakning och säkerhetsfunktioner släpper Mantium också mjukvara och DevOps-ingenjörer från att ägna sin tid åt att återuppfinna hjulet. På en hög nivå levererar Mantium:
- Toppmodern AI – Experimentera och utveckla med ett omfattande urval av öppen källkod och privata stora språkmodeller med ett enkelt användargränssnitt eller API.
- AI processautomation – Bygg enkelt AI-drivna applikationer med ett växande bibliotek av integrationer och Mantiums grafiska AI Builder.
- Snabb implementering – Förkorta produktionstidslinjen från månader till veckor eller till och med dagar med implementering med ett klick. Den här funktionen förvandlar AI-applikationer till delbara webbappar med ett klick.
- Säkerhet och reglering – Säkerställa säkerhet och efterlevnad av förvaltningspolicyer och stöd för processer som är integrerade i kretsen.
Med Mantium AI Builder kan du utveckla sofistikerade arbetsflöden som integrerar externa API:er, logikoperationer och AI-modeller. Följande skärmdump visar ett exempel på Mantium AI-appen, som kedjar samman en Twilio-ingång, styrningspolicy, AI-block (som kan förlita sig på en öppen källkodsmodell som GPT-J) och Twilio-utgång.
För att stödja den här appen ger Mantium omfattande och enhetlig tillgång till inte bara modell-API:er från AI-leverantörer som Open AI, Co:here och AI21, utan även till toppmoderna modeller med öppen källkod. På Mantium anser vi att vem som helst ska kunna bygga moderna AI-applikationer som de äger, från början till slut, och vi stödjer detta genom att tillhandahålla no-code och low-code access till prestandaoptimerade modeller med öppen källkod.
Till exempel är en av Mantiums kärnmodeller med öppen källkod GPT-J, en toppmodern NLP-modell (natural language processing) utvecklad av Eleuther AI. Med 6 miljarder parametrar är GPT-J en av de största och bäst presterande modellerna för textgenerering med öppen källkod. Mantium-användare kan integrera GPT-J i sina AI-applikationer via Mantiums AI Builder. I fallet med GPT-J innebär detta att ange en snabb (en naturlig språkrepresentation av vad modellen ska göra) och konfigurera några valfria parametrar.
Följande skärmdump visar till exempel en förkortad demonstration av en sentimentanalysprompt som ger förklaringar och sentimentförutsägelser. I det här exemplet skrev författaren att "maten var underbar" och att deras "service var extraordinär." Därför uttrycker denna text positiva känslor.
En utmaning med modeller med öppen källkod är dock att de sällan är designade för prestanda i produktionsklass. I fallet med stora modeller som GPT-J kan detta göra produktionsinstallationen opraktisk och till och med omöjlig, beroende på användningsfallet.
För att säkerställa att våra användare har tillgång till klassens bästa prestanda letar vi alltid efter sätt att minska latensen för våra kärnmodeller. I det här inlägget beskriver vi resultaten av ett slutledningsoptimeringsexperiment där vi använder DeepSpeeds inferensmotor för att öka GPT-J:s slutledningshastighet med cirka 116%. Vi beskriver också hur vi har implementerat Hugging Face Transformers-implementeringen av GPT-J med DeepSpeed i vår Amazon SageMaker slutpunkter.
Översikt över GPT-J-modellen
GPT-J är en generativ förtränad (GPT) språkmodell och, när det gäller dess arkitektur, är den jämförbar med populära, privata, stora språkmodeller som Open AI:s GPT-3. Som nämnts tidigare består den av cirka 6 miljarder parametrar och 28 lager, som består av ett feedforward-block och ett självuppmärksamhetsblock. När den först släpptes var GPT-J en av de första stora språkmodellerna som användes roterande inbäddningar, en ny positionskodningsstrategi som förenar absoluta och relativa positionskodare. Den använder också en innovativ parallelliseringsstrategi där täta och framkopplade lager kombineras i ett enda lager, vilket minimerar kommunikationsoverhead.
Även om GPT-J kanske inte riktigt kvalificerar sig lika stor med dagens standarder – stora modeller består vanligtvis av mer än 100 miljarder parametrar – är den fortfarande imponerande prestanda, och med lite snabb konstruktion eller minimal finjustering kan du använda den för att lösa många problem. Dessutom innebär dess relativt blygsamma storlek att du kan distribuera den snabbare och till en mycket lägre kostnad än större modeller.
Som sagt, GPT-J är fortfarande ganska stor. Träning av GPT-J i FP32 med fullviktsuppdateringar och Adam-optimeraren kräver till exempel över 200 GB minne: 24 GB för modellparametrarna, 24 GB för gradienterna, 24 GB för Adams kvadratiska gradienter, 24 GB för optimerartillstånden, och de ytterligare minneskraven för att ladda träningssatser och lagra aktiveringar. Naturligtvis minskar utbildning i FP16 dessa minneskrav nästan med hälften, men ett minnesfotavtryck på över 100 GB kräver fortfarande innovativa träningsstrategier. Till exempel, i samarbete med SageMaker, utvecklade Mantiums NLP-team en arbetsflöde för träning (finjustering) av GPT-J med hjälp av SageMakers distribuerade modell parallellbibliotek.
Däremot har visning av GPT-J för slutledning mycket lägre minneskrav – i FP16 upptar modellvikter mindre än 13 GB, vilket innebär att slutledning enkelt kan utföras på en enda 16 GB GPU. Men slutsatsen med färdiga implementeringar av GPT-J, som Hugging Face Transformers genomförande som vi använder, är relativt långsam. För att stödja användningsfall som kräver mycket responsiv textgenerering, har vi fokuserat på att minska GPT-J:s slutledningsfördröjning.
Svarslatensutmaningar för GPT-J
Svarslatens är ett kärnhinder för de generativa förtränade transformatorerna (GPT) som GPT-J som driver modern textgenerering. GPT-modeller genererar text genom sekvenser av slutledningssteg. Vid varje slutledningssteg får modellen text som input, och beroende på denna inmatning, samplar den ett ord från dess ordförråd för att lägga till texten. Till exempel, med tanke på sekvensen av tokens "Jag behöver ett paraply för att det är det", kan nästa token med hög sannolikhet "regna". Men det kan också vara "soligt" eller "bundet", vilket kan vara det första steget mot en textsekvens som "Jag behöver ett paraply eftersom det kommer att börja regna."
Scenarier som detta väcker några intressanta utmaningar för att distribuera GPT-modeller eftersom verkliga användningsfall kan involvera tiotals, hundratals eller till och med tusentals slutledningssteg. Till exempel, generering av ett svar på 1,000 1,000 token kräver 280 100 slutledningssteg! Följaktligen, även om en modell kan erbjuda slutledningshastigheter som verkar tillräckligt snabba isolerat, är det lätt för latens att nå ohållbara nivåer när långa texter genereras. Vi observerade en genomsnittlig latens på 6.7 millisekunder per slutledningssteg på en V30 GPU. Detta kan verka snabbt för en 500 miljarder parametermodell, men med sådana latenser tar det cirka XNUMX sekunder att generera ett svar på XNUMX token, vilket inte är idealiskt ur ett användarupplevelseperspektiv.
Optimera slutledningshastigheter med DeepSpeed Inference
DeepSpeed är ett bibliotek för djupinlärning med öppen källkod utvecklat av Microsoft. Även om det i första hand fokuserar på att optimera träning av stora modeller, tillhandahåller DeepSpeed också ett ramverk för slutledningsoptimering som stöder en utvald uppsättning modeller, inklusive BERT, Megatron, GPT-Neo, GPT2 och GPT-J. DeepSpeed Inference underlättar högpresterande slutledning med stora transformatorbaserade arkitekturer genom en kombination av modellparallellism, slutledningsoptimerade CUDA-kärnor och kvantisering.
För att öka inferenshastigheten med GPT-J använder vi DeepSpeeds inferensmotor för att injicera optimerade CUDA-kärnor i Hugging Face Transformers GPT-J-implementationen.
För att utvärdera hastighetsfördelarna med DeepSpeeds inferensmotor, genomförde vi en serie latenstest där vi tidsbestämda GPT-J under olika konfigurationer. Specifikt varierade vi om DeepSpeed användes eller inte, hårdvara, utgångssekvenslängd och ingångssekvenslängd. Vi fokuserade på både utdata och ingångssekvenslängd, eftersom de båda påverkar inferenshastigheten. För att generera en utdatasekvens på 50 tokens måste modellen utföra 50 slutledningssteg. Dessutom beror tiden som krävs för att utföra ett slutledningssteg på storleken på inmatningssekvensen – större indata kräver mer bearbetningstid. Även om effekten av utdatasekvensstorleken är mycket större än effekten av indatasekvensstorleken, är det fortfarande nödvändigt att ta hänsyn till båda faktorerna.
I vårt experiment använde vi följande design:
- DeepSpeed inferensmotor - På av
- hårdvara – T4 (ml.g4dn.2xlarge), V100 (ml.p3.2xlarge)
- Inmatningssekvenslängd - 50, 200, 500, 1000
- Utgångssekvensens längd - 50, 100, 150, 200
Totalt har den här designen 64 kombinationer av dessa fyra faktorer, och för varje kombination körde vi 20 latenstest. Varje test kördes på en förinitierad SageMaker slutpunkt, vilket säkerställer att våra latenstest återspeglar produktionstider, inklusive API-utbyten och förbearbetning.
Våra tester visar att DeepSpeeds GPT-J-inferensmotor är avsevärt snabbare än den grundläggande Hugging Face Transformers PyTorch-implementeringen. Följande figur illustrerar de genomsnittliga textgenereringslatenserna för GPT-J med och utan DeepSpeed-acceleration på ml.g4dn.2xlarge och ml.p3.2xlarge SageMaker slutpunkter.
På ml.g4dn.2xlarge-instansen, som är utrustad med en 16 GB NVIDIA T4 GPU, observerade vi en genomsnittlig latensminskning på cirka 24 % [Standard Deviation (SD) = 0.05]. Detta motsvarade en ökning från i genomsnitt 12.5 (SD = 0.91) tokens per sekund till ett medelvärde på 16.5 (SD = 2.13) tokens per sekund. Noterbart var att DeepSpeeds accelerationseffekt var ännu starkare på ml.p3.2xlarge-instansen, som är utrustad med en NVIDIA V100 GPU. På den hårdvaran observerade vi en 53 % (SD = 07) genomsnittlig latensminskning. I termer av tokens per sekund motsvarade detta en ökning från ett medelvärde på 21.9 (SD = 1.97) tokens per sekund till ett medelvärde på 47.5 (SD = 5.8) tokens per sekund.
Vi observerade också att accelerationen som erbjuds av DeepSpeed dämpades något på båda hårdvarukonfigurationerna när storleken på inmatningssekvenserna växte. Men under alla förhållanden var slutsatsen med DeepSpeeds GPT-J-optimeringar fortfarande avsevärt snabbare än baslinjen. Till exempel, på g4dn-instansen, var de maximala och lägsta latensreduktionerna 31 % (indatasekvensstorlek = 50) respektive 15 % (indatasekvensstorlek = 1000). Och på p3-instansen var den maximala och lägsta latensreduktionen 62% (indatasekvensstorlek = 50) respektive 40% (inputsekvensstorlek = 1000).
Distribuera GPT-J med DeepSpeed på en SageMaker slutpunkt
Förutom att dramatiskt öka textgenereringshastigheterna för GPT-J, är DeepSpeeds inferensmotor enkel att integrera i en SageMaker slutpunkt för slutledning. Innan vi lade till DeepSpeed till vår slutledningsstack körde våra slutpunkter på en anpassad Docker-bild baserad på en officiell PyTorch-bild. SageMaker gör det väldigt enkelt att distribuera anpassade slutpunkter, och att integrera DeepSpeed var lika enkelt som att inkludera beroendet och skriva några rader kod. Den öppna källkodsguiden till distributionsarbetsflödet för att distribuera GPT-J med DeepSpeed är tillgänglig på GitHub.
Slutsats
Mantium är dedikerat till att leda innovation så att alla snabbt kan bygga med AI. Från AI-driven processautomation till strikta säkerhets- och efterlevnadsinställningar, vår kompletta plattform tillhandahåller alla verktyg som behövs för att utveckla och hantera robusta, ansvarsfulla AI-applikationer i stor skala och sänker barriären för inträde. SageMaker hjälper företag som Mantium att snabbt komma ut på marknaden.
För att lära dig hur Mantium kan hjälpa dig att bygga komplexa AI-drivna arbetsflöden för din organisation, besök www.mantiumai.com.
Om författarna
Joe Hoover är senior tillämpad forskare på Mantiums AI FoU-team. Han brinner för att utveckla modeller, metoder och infrastruktur som hjälper människor att lösa verkliga problem med banbrytande NLP-system. På fritiden tycker han om att backpacka, arbeta i trädgården, laga mat och umgås med sin familj.
Dhawal Patel är en huvudarkitekt för maskininlärning på AWS. Han har arbetat med organisationer som sträcker sig från stora företag till medelstora startups med problem relaterade till distribuerad datoranvändning och artificiell intelligens. Han fokuserar på djupinlärning inklusive NLP- och Computer Vision-domäner. Han hjälper kunder att uppnå högpresterande modellslutningar på SageMaker.
Sunil Padmanabhan är en Startup Solutions Architect på AWS. Som tidigare grundare och CTO brinner han för maskininlärning och fokuserar på att hjälpa startups att utnyttja AI/ML för sina affärsresultat och designa och distribuera ML/AI-lösningar i stor skala.
- Myntsmart. Europas bästa bitcoin- och kryptobörs.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. FRI TILLGÅNG.
- CryptoHawk. Altcoin radar. Gratis provperiod.
- Källa: 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 Oss
- Absolut
- tillgång
- i enlighet med detta
- Konto
- Uppnå
- tvärs
- Dessutom
- Annat
- påverka
- AI
- Alla
- Även
- alltid
- amason
- analys
- någon
- api
- API: er
- app
- tillämpningar
- tillämpas
- tillvägagångssätt
- cirka
- appar
- arkitektur
- konstgjord
- artificiell intelligens
- Automat
- Automation
- tillgänglig
- genomsnitt
- AWS
- barriär
- Baslinje
- därför att
- innan
- Fördelarna
- Miljarder
- Blockera
- SLUTRESULTAT
- byggare
- Byggnad
- företag
- företag
- fall
- utmanar
- utmaningar
- cloud
- Molnplattform
- koda
- samverkan
- kombination
- kombinationer
- kombinerad
- Kommunikation
- Företag
- fullborda
- komplex
- Efterlevnad
- omfattande
- dator
- databehandling
- villkor
- Kärna
- kunde
- CTO
- beställnings
- Kunder
- allra senaste
- dedicerad
- djup
- levererar
- demonstrera
- beroende
- beror
- distribuera
- utplacerade
- utplacera
- utplacering
- beskriva
- Designa
- utformade
- utveckla
- utvecklade
- utveckla
- Utveckling
- distribueras
- distribuerad databehandling
- Hamnarbetare
- domäner
- dramatiskt
- lätt
- effekt
- sysselsätter
- möjliggör
- början till slut
- Slutpunkt
- Motor
- Teknik
- Ingenjörer
- säkerställa
- företag
- utrustad
- utvärdera
- alla
- exempel
- Utbyten
- erfarenhet
- experimentera
- omfattande
- extraordinära
- Ansikte
- faktorer
- familj
- SNABB
- snabbare
- Leverans
- Funktioner
- Figur
- Förnamn
- fokuserade
- fokuserar
- efter
- Fotavtryck
- grundare
- Ramverk
- från
- full
- Vidare
- generera
- generera
- generering
- generativ
- Välgörenhet
- styrning
- GPU
- Odling
- styra
- hårdvara
- hjälpa
- hjälpa
- hjälper
- här.
- Hög
- höggradigt
- Hur ser din drömresa ut
- Men
- HTTPS
- Hundratals
- idealisk
- bild
- genomförande
- Inklusive
- Öka
- ökande
- Innovation
- innovativa
- ingång
- exempel
- integrera
- integrationer
- Intelligens
- isolering
- IT
- språk
- Large
- större
- största
- lager
- ledande
- LÄRA SIG
- inlärning
- Nivå
- nivåer
- Hävstång
- Bibliotek
- rader
- läser in
- Lång
- du letar
- Maskinen
- maskininlärning
- göra
- GÖR
- hantera
- hantera
- marknad
- betyder
- Minne
- metoder
- Microsoft
- kanske
- minsta
- ML
- modell
- modeller
- övervakning
- månader
- mer
- Natural
- nödvändigt för
- Nvidia
- hinder
- erbjudanden
- erbjuds
- tjänsteman
- öppet
- öppen källkod
- Verksamhet
- optimering
- optimerad
- optimera
- organisation
- organisationer
- egen
- brinner
- Personer
- prestanda
- perspektiv
- plattform
- Strategier
- policy
- Populära
- placera
- positiv
- möjlig
- kraft
- Förutsägelser
- pretty
- Principal
- privat
- problem
- process
- Processautomation
- processer
- bearbetning
- Produktion
- leverantör
- leverantörer
- ger
- tillhandahålla
- kvalificera
- snabbt
- R&D
- höja
- som sträcker sig
- nå
- reducerande
- reflektera
- frigörs
- meddelanden
- representation
- kräver
- Obligatorisk
- Krav
- Kräver
- respons
- ansvarig
- Resultat
- Körning
- rinnande
- Säkerhet
- Nämnda
- Skala
- Forskare
- sekunder
- Val
- känsla
- Serier
- portion
- in
- Enkelt
- enda
- Storlek
- So
- Mjukvara
- Lösningar
- LÖSA
- några
- sofistikerade
- specifikt
- fart
- hastigheter
- Spendera
- stapel
- standard
- starta
- start
- Startups
- state-of-the-art
- Stater
- Fortfarande
- strategier
- Strategi
- starkare
- stödja
- Stöder
- System
- grupp
- Teknisk
- villkor
- testa
- tester
- Smakämnen
- därför
- tusentals
- Genom
- tid
- gånger
- dagens
- tillsammans
- token
- tokens
- verktyg
- traditionellt
- Utbildning
- typiskt
- ui
- under
- Uppdateringar
- användning
- användare
- olika
- syn
- sätt
- webb
- Vad
- Hjul
- om
- utan
- arbetade
- arbetsflöden
- skrivning
- Din