În toate industriile, modelele de învățare automată (ML) sunt din ce în ce mai profunde, fluxurile de lucru devin mai complexe, iar sarcinile de lucru funcționează la scară mai mare. Sunt depuse eforturi și resurse semnificative pentru a face aceste modele mai precise, deoarece această investiție are ca rezultat direct produse și experiențe mai bune. Pe de altă parte, a face ca aceste modele să funcționeze eficient în producție este o activitate nebanală, care este adesea trecută cu vederea, în ciuda faptului că este cheia pentru atingerea obiectivelor de performanță și buget. În această postare vom acoperi modul în care Exafunction și Inferentia AWS lucrează împreună pentru a debloca implementarea simplă și rentabilă pentru modelele ML în producție.
Exafuncție este un start-up axat pe a permite companiilor să realizeze ML la scară cât mai eficient posibil. Unul dintre produsele lor este ExaDeploy, o soluție SaaS ușor de utilizat pentru a servi sarcinile de lucru ML la scară. ExaDeploy orchestrează eficient sarcinile de lucru ML prin resurse mixte (procesoare și acceleratoare hardware) pentru a maximiza utilizarea resurselor. De asemenea, se ocupă de scalarea automată, colocarea de calcul, problemele de rețea, toleranța la erori și multe altele, pentru a asigura o implementare eficientă și fiabilă. Bazat pe AWS Inferentia Instanțe Amazon EC2 Inf1 sunt concepute special pentru a oferi cel mai mic cost-pe-inferență în cloud. ExaDeploy acceptă acum instanțe Inf1, ceea ce permite utilizatorilor să obțină atât economiile bazate pe hardware ale acceleratoarelor, cât și economiile bazate pe software ale virtualizării și orchestrarii optimizate a resurselor la scară.
Prezentare generală a soluțiilor
Cum rezolvă ExaDeploy pentru eficiența implementării
Pentru a asigura utilizarea eficientă a resurselor de calcul, trebuie să luați în considerare alocarea adecvată a resurselor, scalarea automată, colocarea calculului, gestionarea costurilor și a latenței de rețea, toleranța la erori, versiunea și reproductibilitatea și multe altele. La scară, orice ineficiență afectează în mod semnificativ costurile și latența, iar multe companii mari au abordat aceste ineficiențe construind echipe interne și expertiză. Cu toate acestea, nu este practic pentru majoritatea companiilor să-și asume aceste cheltuieli financiare și organizaționale pentru construirea de software generalizabil care nu este competența de bază dorită de companie.
ExaDeploy este proiectat să rezolve aceste probleme legate de eficiența implementării, inclusiv cele observate în unele dintre cele mai complexe sarcini de lucru, cum ar fi cele din aplicațiile Autonomous Vehicle și procesarea limbajului natural (NLP). În cazul unor sarcini de lucru ML în loturi mari, ExaDeploy a redus costurile cu peste 85% fără a sacrifica latența sau acuratețea, cu un timp de integrare de până la o zi de inginer. ExaDeploy s-a dovedit că scala automat și gestionează mii de instanțe simultane de resurse hardware acceleratoare fără nicio degradare a sistemului.
Caracteristicile cheie ale ExaDeploy includ:
- Se rulează în cloud: Niciunul dintre modelele, intrările sau ieșirile dvs. nu părăsește rețeaua privată. Continuați să utilizați reducerile furnizorului dvs. de cloud.
- Resurse de accelerație partajate: ExaDeploy optimizează acceleratoarele utilizate, permițând mai multe modele sau sarcini de lucru pentru a partaja resursele acceleratoarelor. De asemenea, poate identifica dacă mai multe sarcini de lucru implementează același model și apoi poate partaja modelul între acele sarcini de lucru, optimizând astfel acceleratorul utilizat. Capacitățile sale de reechilibrare automată și de scurgere a nodurilor maximizează utilizarea și minimizează costurile.
- Model scalabil de implementare fără server: scala automată ExaDeploy pe baza saturației resurselor acceleratorului. Reduceți dinamic până la 0 sau până la mii de resurse.
- Suport pentru o varietate de tipuri de calcul: Puteți descărca modele de învățare profundă din toate cadrele ML majore, precum și cod arbitrar C++, nuclee CUDA, operațiuni personalizate și funcții Python.
- Înregistrarea și versiunea dinamică a modelului: Noile modele sau versiuni de model pot fi înregistrate și rulate fără a fi nevoie să reconstruiți sau să redistribuiți sistemul.
- Execuție punct la punct: Clienții se conectează direct la resursele acceleratorului de la distanță, ceea ce permite o latență scăzută și un randament ridicat. Ele pot chiar stoca starea de la distanță.
- Execuție asincronă: ExaDeploy acceptă execuția asincronă a modelelor, ceea ce permite clienților să paralelizeze calculul local cu lucrul de la distanță cu resursele acceleratorului.
- Conducte la distanță tolerante la erori: ExaDeploy permite clienților să compună în mod dinamic calcule la distanță (modele, preprocesare etc.) în conducte cu garanție de toleranță la erori. Sistemul ExaDeploy tratează defecțiunile podului sau nodului cu recuperare și reluare automată, astfel încât dezvoltatorii nu trebuie să se gândească niciodată la asigurarea toleranței la erori.
- Monitorizare ieșită din cutie: ExaDeploy oferă valori Prometheus și tablouri de bord Grafana pentru a vizualiza utilizarea resurselor acceleratorului și alte valori ale sistemului.
ExaDeploy acceptă AWS Inferentia
Instanțele Amazon EC2 Inf1 bazate pe AWS Inferentia sunt concepute pentru sarcinile de lucru specifice de inferență de deep learning. Aceste instanțe oferă un debit de până la 2.3x și o economie de costuri de până la 70% în comparație cu generația actuală de instanțe de inferență GPU.
ExaDeploy acceptă acum AWS Inferentia și, împreună, deblochează performanța crescută și economiile de costuri obținute prin accelerarea hardware special concepută și orchestrarea optimizată a resurselor la scară. Să ne uităm la beneficiile combinate ale ExaDeploy și AWS Inferentia, luând în considerare o sarcină de lucru ML modernă foarte comună: încărcături de lucru în loturi, mixte de calcul.
Caracteristici ipotetice ale volumului de muncă:
- 15 ms de pre-procesare/post-procesare numai pentru procesor
- Inferență de model (15 ms pe GPU, 5 ms pe AWS Inferentia)
- 10 clienți, fiecare face cerere la fiecare 20 ms
- Costul relativ aproximativ al CPU:Inferentia:GPU este 1:2:4 (Pe baza prețurilor Amazon EC2 On-Demand pentru c5.xlarge, inf1.xlarge și g4dn.xlarge)
Tabelul de mai jos arată cum se formează fiecare dintre opțiuni:
Configurarea | Resurse necesare | A costat | Latență |
GPU fără ExaDeploy | 2 CPU, 2 GPU per client (total 20 CPU, 20 GPU) | 100 | 30 ms |
GPU cu ExaDeploy | 8 GPU-uri partajate între 10 clienți, 1 CPU per client | 42 | 30 ms |
AWS Inferentia fără ExaDeploy | 1 CPU, 1 AWS Inferentia per client (total 10 CPU, 10 Inferentia) | 30 | 20 ms |
AWS Inferentia cu ExaDeploy | 3 AWS Inferentia partajate între 10 clienți, 1 CPU per client | 16 | 20 ms |
Exemplu ExaDeploy pe AWS Inferentia
În această secțiune, trecem peste pașii de configurare a ExaDeploy printr-un exemplu cu noduri inf1 pe un model BERT PyTorch. Am observat un debit mediu de 1140 de eșantioane/sec pentru modelul bert-base, ceea ce demonstrează că ExaDeploy a introdus puțin sau deloc general pentru acest scenariu cu un singur model, un singur volum de lucru.
Etapa 1: Configurați un Serviciul Amazon Elastic Kubernetes cluster (Amazon EKS).
Un cluster Amazon EKS poate fi creat cu ajutorul nostru Modul Terraform AWS. Pentru exemplul nostru, am folosit un inf1.xlarge
pentru AWS Inferentia.
Etapa 2: Configurați ExaDepoy
Al doilea pas este configurarea ExaDeploy. În general, implementarea ExaDeploy pe instanțe inf1 este simplă. Configurarea urmează în cea mai mare parte aceeași procedură ca și pe instanțele unității de procesare grafică (GPU). Diferența principală este schimbarea etichetei modelului de la GPU la AWS Inferentia și recompilarea modelului. De exemplu, trecerea de la instanțe g4dn la inf1 folosind interfețele de programare a aplicațiilor (API) ExaDeploy a necesitat doar aproximativ 10 linii de cod pentru a fi schimbate.
- O metodă simplă este să folosiți Exafunction Modulul Terraform AWS Kubernetes or Diagrama de cârmă. Acestea implementează componentele de bază ExaDeploy pentru a rula în clusterul Amazon EKS.
- Compilați modelul într-un format serializat (de exemplu, TorchScript, modele salvate TF, ONNX etc). Pentru AWS Inferentia, am urmat acest tutorial.
- Înregistrați modelul compilat în depozitul de module ExaDeploy.
- Pregătiți datele pentru model (adică nu
ExaDeploy-specific
).
- Rulați modelul de la distanță de la client.
ExaDeploy și AWS Inferentia: mai bine împreună
AWS Inferentia depășește limitele debitului pentru inferența modelului și oferă cel mai mic cost-pe-inferență în cloud. Acestea fiind spuse, companiile au nevoie de orchestrarea adecvată pentru a se bucura de avantajele preț-performanță ale Inf1 la scară. Servirea ML este o problemă complexă care, dacă este abordată intern, necesită o expertiză care este eliminată din obiectivele companiei și adesea întârzie termenele de producție. ExaDeploy, care este soluția software de implementare ML Exafunction, a devenit lider în industrie. Deservește chiar și cele mai complexe sarcini de lucru ML, oferind în același timp experiențe de integrare fără probleme și suport din partea unei echipe de talie mondială. Împreună, ExaDeploy și AWS Inferentia deblochează performanțe crescute și economii de costuri pentru sarcinile de lucru de inferență la scară.
Concluzie
În această postare, v-am arătat cum Exafunction acceptă AWS Inferentia pentru ML de performanță. Pentru mai multe informații despre crearea de aplicații cu Exafunction, vizitați Exafuncție. Pentru cele mai bune practici privind construirea sarcinilor de lucru de învățare profundă pe Inf1, vizitați Instanțele Amazon EC2 Inf1.
Despre Autori
Nicholas Jiang, inginer software, Exafunction
Jonathan Ma, inginer software, Exafunction
Prem Nair, inginer software, Exafunction
Anshul Ramachandran, inginer software, Exafunction
Shruti Koparkar, director senior de marketing de produse, AWS
- AI
- ai art
- ai art generator
- ai robot
- inteligență artificială
- certificare de inteligență artificială
- inteligența artificială în domeniul bancar
- robot cu inteligență artificială
- roboți cu inteligență artificială
- software de inteligență artificială
- Inferentia AWS
- Învățare automată AWS
- blockchain
- conferință blockchain ai
- coingenius
- inteligența artificială conversațională
- criptoconferință ai
- Soluții pentru clienți
- dall-e
- învățare profundă
- google ai
- masina de învățare
- Plato
- platoul ai
- Informații despre date Platon
- Jocul lui Platon
- PlatoData
- platogaming
- scara ai
- sintaxă
- zephyrnet