Mantium este un furnizor global de platforme cloud pentru construirea de aplicații AI și gestionarea lor la scară. Platforma de dezvoltare end-to-end a Mantium permite întreprinderilor și întreprinderilor de toate dimensiunile să creeze aplicații AI și automatizări mai rapid și mai ușor decât ceea ce era posibil în mod tradițional. Cu Mantium, echipele tehnice și non-tehnice pot prototipa, dezvolta, testa și implementa aplicații AI, toate cu o abordare low-code. Prin înregistrarea automată, monitorizarea și funcțiile de siguranță, Mantium eliberează, de asemenea, software și inginerii DevOps de a-și petrece timpul reinventând roata. La un nivel înalt, Mantium oferă:
- AI de ultimă generație – Experimentați și dezvoltați cu o selecție extinsă de modele de limbaj mari open-source și private, cu o interfață de utilizator sau API simplă.
- Automatizarea proceselor AI – Construiți cu ușurință aplicații bazate pe inteligență artificială cu o bibliotecă în creștere de integrări și AI Builder grafic de la Mantium.
- Implementare rapidă – Scurtați timpul de producție de la luni la săptămâni sau chiar zile cu implementarea cu un singur clic. Această funcție transformă aplicațiile AI în aplicații web care pot fi partajate cu un singur clic.
- Siguranță și reglementare – Asigurați siguranța și conformitatea cu politicile de guvernanță și sprijin pentru procesele umane în buclă.
Cu Mantium AI Builder, puteți dezvolta fluxuri de lucru sofisticate care integrează API-uri externe, operațiuni logice și modele AI. Următoarea captură de ecran arată un exemplu de aplicație Mantium AI, care conectează o intrare Twilio, o politică de guvernare, un bloc AI (care se poate baza pe un model open-source precum GPT-J) și o ieșire Twilio.
Pentru a sprijini această aplicație, Mantium oferă acces cuprinzător și uniform nu numai la modele de API-uri de la furnizori de AI precum Open AI, Co:here și AI21, ci și la modele open source de ultimă generație. La Mantium, credem că oricine ar trebui să poată construi aplicații moderne de inteligență artificială pe care le deține, de la capăt la capăt, și sprijinim acest lucru oferind acces fără cod și low-code la modele open-source optimizate pentru performanță.
De exemplu, unul dintre modelele de bază open-source ale lui Mantium este GPT-J, un model de ultimă generație de procesare a limbajului natural (NLP) dezvoltat de Eleuther AI. Cu 6 miliarde de parametri, GPT-J este unul dintre cele mai mari și mai performante modele de generare de text open-source. Utilizatorii Mantium pot integra GPT-J în aplicațiile lor AI prin intermediul AI Builder de la Mantium. În cazul GPT-J, aceasta implică specificarea a prompt (o reprezentare în limbaj natural a ceea ce ar trebui să facă modelul) și configurarea unor parametri opționali.
De exemplu, următoarea captură de ecran arată o demonstrație prescurtată a unui prompt de analiză a sentimentelor care produce explicații și predicții despre sentimente. În acest exemplu, autorul a scris că „mâncarea a fost minunată” și că „serviciul lor a fost extraordinar”. Prin urmare, acest text exprimă un sentiment pozitiv.
Cu toate acestea, o provocare cu modelele open-source este că acestea sunt rareori proiectate pentru performanțe de producție. În cazul modelelor mari precum GPT-J, acest lucru poate face implementarea producției nepractică și chiar imposibilă, în funcție de cazul de utilizare.
Pentru a ne asigura că utilizatorii noștri au acces la cea mai bună performanță din clasă, căutăm mereu modalități de a reduce latența modelelor noastre de bază. În această postare, descriem rezultatele unui experiment de optimizare a inferenței în care folosim motorul de inferență DeepSpeed pentru a crește viteza de inferență a lui GPT-J cu aproximativ 116%. De asemenea, descriem modul în care am implementat implementarea Hugging Face Transformers a GPT-J cu DeepSpeed în Amazon SageMaker puncte finale de inferență.
Prezentare generală a modelului GPT-J
GPT-J este un model de limbaj generativ preantrenat (GPT) și, în ceea ce privește arhitectura sa, este comparabil cu modelele de limbaj populare, private și mari, cum ar fi GPT-3 de la Open AI. După cum sa menționat mai devreme, acesta constă din aproximativ 6 miliarde de parametri și 28 de straturi, care constau dintr-un bloc de feedforward și un bloc de auto-atenție. Când a fost lansat pentru prima dată, GPT-J a fost unul dintre primele modele de limbaj mari utilizate înglobări rotative, o nouă strategie de codificare a poziției care unifică codificatoarele de poziție absolute și relative. De asemenea, folosește o strategie inovatoare de paralelizare, în care straturile dense și de tip feedforward sunt combinate într-un singur strat, ceea ce minimizează supraîncărcarea de comunicare.
Deși GPT-J s-ar putea să nu se califice la fel de mare în conformitate cu standardele actuale — modelele mari constau de obicei din peste 100 de miliarde de parametri — este încă impresionant de performant și, cu o inginerie promptă sau o reglare fină minimă, îl puteți folosi pentru a rezolva multe probleme. În plus, dimensiunea sa relativ modestă înseamnă că îl puteți implementa mai rapid și la un cost mult mai mic decât modelele mai mari.
Acestea fiind spuse, GPT-J este încă destul de mare. De exemplu, antrenarea GPT-J în FP32 cu actualizări de greutate completă și optimizatorul Adam necesită peste 200 GB memorie: 24 GB pentru parametrii modelului, 24 GB pentru gradienți, 24 GB pentru gradienții pătrați ai lui Adam, 24 GB pentru stările optimizatorului, și cerințele suplimentare de memorie pentru încărcarea loturilor de antrenament și stocarea activărilor. Desigur, antrenamentul în FP16 reduce aceste cerințe de memorie aproape la jumătate, dar o amprentă de memorie de peste 100 GB necesită încă strategii de antrenament inovatoare. De exemplu, în colaborare cu SageMaker, echipa NLP a lui Mantium a dezvoltat un flux de lucru pentru antrenament (ajustare fină) GPT-J utilizând biblioteca de modele paralele distribuite SageMaker.
În schimb, servirea GPT-J pentru inferență are cerințe de memorie mult mai mici — în FP16, greutățile modelului ocupă mai puțin de 13 GB, ceea ce înseamnă că inferența poate fi efectuată cu ușurință pe un singur GPU de 16 GB. Cu toate acestea, deducerea cu implementări ieșite din cutie ale GPT-J, cum ar fi Hugging Face Transformers implementarea pe care îl folosim, este relativ lent. Pentru a sprijini cazurile de utilizare care necesită generarea de text foarte receptivă, ne-am concentrat pe reducerea latenței de inferență a GPT-J.
Provocări legate de latența de răspuns ale GPT-J
Latența de răspuns este un obstacol de bază pentru transformatoarele pre-antrenate generative (GPT), cum ar fi GPT-J, care alimentează generarea modernă de text. Modelele GPT generează text prin secvențe de pași de inferență. La fiecare pas de inferență, modelului i se dă text ca intrare și, condiționat de această intrare, eșantionează un cuvânt din vocabularul său pentru a-l atașa textului. De exemplu, având în vedere secvența de jetoane „Am nevoie de o umbrelă pentru că este”, un simbol cu mare probabilitate alăturat ar putea fi „ploua”. Cu toate acestea, ar putea fi, de asemenea, „însorit” sau „legat”, care ar putea fi primul pas către o secvență de text precum „Am nevoie de o umbrelă pentru că va începe să plouă”.
Scenarii ca acesta ridică unele provocări interesante pentru implementarea modelelor GPT, deoarece cazurile de utilizare în lumea reală pot implica zeci, sute sau chiar mii de pași de inferență. De exemplu, generarea unui răspuns de 1,000 de jetoane necesită 1,000 de pași de inferență! În consecință, deși un model ar putea oferi viteze de inferență care par suficient de rapide în mod izolat, este ușor ca latența să atingă niveluri insuportabile atunci când sunt generate texte lungi. Am observat o latență medie de 280 de milisecunde pe pas de inferență pe un GPU V100. Acest lucru poate părea rapid pentru un model cu 6.7 miliarde de parametri, dar cu astfel de latențe, este nevoie de aproximativ 30 de secunde pentru a genera un răspuns de 500 de jetoane, ceea ce nu este ideal din perspectiva experienței utilizatorului.
Optimizarea vitezelor de inferență cu DeepSpeed Inference
DeepSpeed este o bibliotecă open-source de optimizare pentru învățare profundă dezvoltată de Microsoft. Deși se concentrează în primul rând pe optimizarea antrenării modelelor mari, DeepSpeed oferă, de asemenea, un cadru de optimizare a inferenței care acceptă un set select de modele, inclusiv BERT, Megatron, GPT-Neo, GPT2 și GPT-J. DeepSpeed Inference facilitează inferența de înaltă performanță cu arhitecturi mari bazate pe transformator printr-o combinație de paralelism de model, nuclee CUDA optimizate pentru inferență și cuantizare.
Pentru a crește viteza de inferență cu GPT-J, folosim motorul de inferență DeepSpeed pentru a injecta nuclee CUDA optimizate în implementarea Hugging Face Transformers GPT-J.
Pentru a evalua beneficiile de viteză ale motorului de inferență DeepSpeed, am efectuat o serie de teste de latență în care am cronometrat GPT-J în diferite configurații. Mai exact, am variat dacă a fost folosit sau nu DeepSpeed, hardware, lungimea secvenței de ieșire și lungimea secvenței de intrare. Ne-am concentrat atât pe lungimea secvenței de ieșire, cât și pe cea de intrare, deoarece ambele afectează viteza de inferență. Pentru a genera o secvență de ieșire de 50 de jetoane, modelul trebuie să efectueze 50 de pași de inferență. În plus, timpul necesar pentru a efectua un pas de inferență depinde de dimensiunea secvenței de intrare - intrările mai mari necesită mai mult timp de procesare. Deși efectul mărimii secvenței de ieșire este mult mai mare decât efectul mărimii secvenței de intrare, este totuși necesar să se țină cont de ambii factori.
În experimentul nostru, am folosit următorul design:
- Motor de inferență DeepSpeed – Pornit, oprit
- Piese metalice – T4 (ml.g4dn.2xlarge), V100 (ml.p3.2xlarge)
- Lungimea secvenței de intrare - 50, 200, 500, 1000
- Lungimea secvenței de ieșire - 50, 100, 150, 200
În total, acest design are 64 de combinații ale acestor patru factori, iar pentru fiecare combinație, am efectuat 20 de teste de latență. Fiecare test a fost rulat pe un punct final de inferență SageMaker pre-inițializat, asigurându-se că testele noastre de latență reflectă timpii de producție, inclusiv schimburile API și preprocesarea.
Testele noastre demonstrează că motorul de inferență GPT-J al DeepSpeed este substanțial mai rapid decât implementarea Hugging Face Transformers PyTorch. Următoarea figură ilustrează latența medie de generare a textului pentru GPT-J cu și fără accelerație DeepSpeed pe punctele finale de inferență ml.g4dn.2xlarge și ml.p3.2xlarge SageMaker.
Pe instanța ml.g4dn.2xlarge, care este echipată cu un GPU NVIDIA T16 de 4 GB, am observat o reducere medie a latenței de aproximativ 24% [Standard Deviation (SD) = 0.05]. Aceasta a corespuns unei creșteri de la o medie de 12.5 (SD = 0.91) jetoane pe secundă la o medie de 16.5 (SD = 2.13) jetoane pe secundă. În special, efectul de accelerare al DeepSpeed a fost și mai puternic pe instanța ml.p3.2xlarge, care este echipată cu un GPU NVIDIA V100. Pe acel hardware, am observat o reducere medie a latenței de 53% (SD = .07). În ceea ce privește jetoanele pe secundă, aceasta a corespuns unei creșteri de la o medie de 21.9 (SD = 1.97) jetoane pe secundă la o medie de 47.5 (SD = 5.8) jetoane pe secundă.
De asemenea, am observat că accelerația oferită de DeepSpeed s-a atenuat ușor pe ambele configurații hardware pe măsură ce dimensiunea secvențelor de intrare a crescut. Cu toate acestea, în toate condițiile, inferența cu optimizările GPT-J de la DeepSpeed a fost încă substanțial mai rapidă decât linia de bază. De exemplu, pe instanța g4dn, reducerile maxime și minime ale latenței au fost de 31% (dimensiunea secvenței de intrare = 50) și, respectiv, 15% (dimensiunea secvenței de intrare = 1000). Și pe instanța p3, reducerile maxime și minime ale latenței au fost de 62% (dimensiunea secvenței de intrare = 50) și, respectiv, 40% (dimensiunea secvenței de intrare = 1000).
Implementarea GPT-J cu DeepSpeed pe un punct final de inferență SageMaker
Pe lângă creșterea dramatică a vitezei de generare a textului pentru GPT-J, motorul de inferență al DeepSpeed este ușor de integrat într-un punct final de inferență SageMaker. Înainte de a adăuga DeepSpeed la stiva noastră de inferențe, punctele noastre finale rulau pe o imagine Docker personalizată bazată pe o imagine oficială PyTorch. SageMaker facilitează implementarea punctelor finale de inferență personalizate, iar integrarea DeepSpeed a fost la fel de simplă ca includerea dependenței și scrierea câtorva linii de cod. Ghidul cu sursă deschisă pentru fluxul de lucru de implementare pentru implementarea GPT-J cu DeepSpeed este disponibil pe GitHub.
Concluzie
Mantium se dedică conducerii inovației, astfel încât toată lumea să poată construi rapid cu AI. De la automatizarea proceselor bazată pe inteligență artificială până la setări stricte de siguranță și conformitate, platforma noastră completă oferă toate instrumentele necesare pentru a dezvolta și gestiona aplicații IA robuste și responsabile la scară și reduce bariera la intrare. SageMaker ajută companii precum Mantium să ajungă rapid pe piață.
Pentru a afla cum vă poate ajuta Mantium să creați fluxuri de lucru complexe bazate pe inteligență artificială pentru organizația dvs., vizitați www.mantiumai.com.
Despre autori
Joe Hoover este om de știință senior aplicat în echipa de cercetare și dezvoltare AI a Mantium. Este pasionat de dezvoltarea modelelor, metodelor și infrastructurii care îi ajută pe oameni să rezolve problemele din lumea reală cu sisteme NLP de ultimă oră. În timpul liber, îi place să meargă în rucsac, să facă grădinărit, să gătească și să iasă cu familia.
Dhawal Patel este arhitect principal de învățare automată la AWS. El a lucrat cu organizații, de la întreprinderi mari până la startup-uri mijlocii, pe probleme legate de calculul distribuit și inteligența artificială. El se concentrează pe învățarea profundă, inclusiv pe domeniile NLP și Computer Vision. El îi ajută pe clienți să obțină inferențe de model de înaltă performanță pe SageMaker.
Sunil Padmanabhan este arhitect de soluții de pornire la AWS. În calitate de fost fondator de startup și CTO, este pasionat de învățarea automată și se concentrează pe a ajuta startup-urile să utilizeze AI/ML pentru rezultatele lor de afaceri și să proiecteze și să implementeze soluții ML/AI la scară.
- Coinsmart. Cel mai bun schimb de Bitcoin și Crypto din Europa.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. ACCES LIBER.
- CryptoHawk. Radar Altcoin. Încercare gratuită.
- Sursa: 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
- Despre Noi
- Absolut
- acces
- în consecință
- Cont
- Obține
- peste
- plus
- Suplimentar
- afecta
- AI
- TOATE
- Cu toate ca
- mereu
- Amazon
- analiză
- oricine
- api
- API-uri
- aplicaţia
- aplicatii
- aplicat
- abordare
- aproximativ
- Apps
- arhitectură
- artificial
- inteligență artificială
- Automat
- Automatizare
- disponibil
- in medie
- AWS
- barieră
- De bază
- deoarece
- înainte
- Beneficiile
- Miliard
- Bloca
- construi
- constructor
- Clădire
- afaceri
- întreprinderi
- cazuri
- contesta
- provocări
- Cloud
- Platforma Cloud
- cod
- colaborare
- combinaţie
- combinaţii
- combinate
- Comunicare
- Companii
- Completă
- complex
- conformitate
- cuprinzător
- calculator
- tehnica de calcul
- Condiții
- Nucleu
- ar putea
- CTO
- personalizat
- clienţii care
- ultima generație
- dedicat
- adânc
- Oferă
- demonstra
- În funcție
- depinde de
- implementa
- dislocate
- Implementarea
- desfășurarea
- descrie
- Amenajări
- proiectat
- dezvolta
- dezvoltat
- în curs de dezvoltare
- Dezvoltare
- distribuite
- calcul distribuit
- Docher
- domenii
- dramatic
- cu ușurință
- efect
- angajează
- permite
- un capăt la altul
- Punct final
- Motor
- Inginerie
- inginerii
- asigurare
- Companii
- echipat
- evalua
- toată lumea
- exemplu
- Platforme de tranzacţionare
- experienţă
- experiment
- extensiv
- extraordinar
- Față
- factori
- familie
- FAST
- mai repede
- Caracteristică
- DESCRIERE
- Figura
- First
- concentrat
- se concentrează
- următor
- urmă
- fondator
- Cadru
- din
- Complet
- În plus
- genera
- generator
- generaţie
- generativ
- Caritate
- guvernare
- GPU
- În creştere
- ghida
- Piese metalice
- ajutor
- ajutor
- ajută
- aici
- Înalt
- extrem de
- Cum
- Totuși
- HTTPS
- sute
- ideal
- imagine
- implementarea
- Inclusiv
- Crește
- crescând
- Inovaţie
- inovatoare
- intrare
- instanță
- integra
- integrările
- Inteligență
- izolare
- IT
- limbă
- mare
- mai mare
- cea mai mare
- strat
- conducere
- AFLAȚI
- învăţare
- Nivel
- nivelurile de
- Pârghie
- Bibliotecă
- linii
- încărcare
- Lung
- cautati
- maşină
- masina de învățare
- face
- FACE
- administra
- de conducere
- Piață
- mijloace
- Memorie
- Metode
- Microsoft
- ar putea
- minim
- ML
- model
- Modele
- Monitorizarea
- luni
- mai mult
- Natural
- necesar
- Nvidia
- obstacol
- oferi
- oferit
- oficial
- deschide
- open-source
- Operațiuni
- optimizare
- optimizate
- optimizarea
- organizație
- organizații
- propriu
- pasionat
- oameni
- performanță
- perspectivă
- platformă
- Politicile
- Politica
- Popular
- poziţie
- pozitiv
- posibil
- putere
- Predictii
- destul de
- Principal
- privat
- probleme
- proces
- Automatizarea procesului
- procese
- prelucrare
- producere
- furnizorul
- furnizori
- furnizează
- furnizarea
- califica
- repede
- C&D
- ridica
- variind
- ajunge
- reducerea
- reflecta
- eliberat
- Lansări
- reprezentare
- necesita
- necesar
- Cerinţe
- Necesită
- răspuns
- responsabil
- REZULTATE
- Alerga
- funcţionare
- Siguranţă
- Said
- Scară
- Om de stiinta
- secunde
- selecţie
- sentiment
- serie
- servire
- set
- simplu
- singur
- Mărimea
- So
- Software
- soluţii
- REZOLVAREA
- unele
- sofisticat
- specific
- viteză
- viteze
- Cheltuire
- stivui
- standard
- Începe
- lansare
- Startup-urile
- de ultimă oră
- Statele
- Încă
- strategii
- Strategie
- puternic
- a sustine
- Sprijină
- sisteme
- echipă
- Tehnic
- termeni
- test
- teste
- prin urmare
- mii
- Prin
- timp
- ori
- azi
- împreună
- semn
- indicativele
- Unelte
- tradiţional
- Pregătire
- tipic
- ui
- în
- actualizări
- utilizare
- utilizatorii
- diverse
- viziune
- modalități de
- web
- Ce
- Roată
- dacă
- fără
- a lucrat
- fluxuri de lucru
- scris
- Ta