Exafunction podpira AWS Inferentia za odklepanje najboljše cenovne zmogljivosti za sklepanje strojnega učenja PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Exafunction podpira AWS Inferentia za odklepanje najboljše cenovne zmogljivosti za sklepanje strojnega učenja

V vseh panogah postajajo modeli strojnega učenja (ML) vse globlji, delovni tokovi vse bolj zapleteni, delovne obremenitve pa delujejo v večjih merilih. Veliko truda in sredstev je vloženih v to, da so ti modeli natančnejši, saj ta naložba neposredno povzroči boljše izdelke in izkušnje. Po drugi strani pa je zagotavljanje učinkovitega delovanja teh modelov v proizvodnji nepomemben podvig, ki je pogosto spregledan, čeprav je ključnega pomena za doseganje ciljev glede učinkovitosti in proračuna. V tej objavi obravnavamo, kako Exafunction in Sklepanje AWS sodelujte, da omogočite preprosto in stroškovno učinkovito uvajanje za modele ML v proizvodnji.

Eksafunkcija je start-up, ki se osredotoča na omogočanje podjetjem čim bolj učinkovitega izvajanja strojnega upravljanja v velikem obsegu. Eden od njihovih izdelkov je ExaDeploy, rešitev SaaS, enostavna za uporabo, ki služi delovnim obremenitvam ML v velikem obsegu. ExaDeploy učinkovito usklajuje vaše delovne obremenitve ML v mešanih virih (CPU in pospeševalnikih strojne opreme) za čim večjo izkoriščenost virov. Poskrbi tudi za samodejno skaliranje, računalniško kolokacijo, težave z omrežjem, toleranco napak in več, da zagotovi učinkovito in zanesljivo uvajanje. Temelji na AWS Inferentia Primerov Amazon EC2 Inf1 so namensko zgrajeni za zagotavljanje najnižje cene na sklepanje v oblaku. ExaDeploy zdaj podpira primerke Inf1, kar uporabnikom omogoča, da pridobijo prihranke na osnovi strojne opreme pospeševalnikov in prihranke na osnovi programske opreme optimizirane virtualizacije virov in orkestracije v velikem obsegu.

Pregled rešitev

Kako ExaDeploy rešuje učinkovitost uvajanja

Če želite zagotoviti učinkovito uporabo računalniških virov, morate razmisliti o pravilnem dodeljevanju virov, samodejnem skaliranju, računalniški kolokaciji, upravljanju omrežnih stroškov in zakasnitev, toleranci napak, različicah in ponovljivosti itd. V obsegu vsaka neučinkovitost pomembno vpliva na stroške in zakasnitev, mnoga velika podjetja pa so to neučinkovitost odpravila z oblikovanjem notranjih ekip in strokovnega znanja. Vendar pa za večino podjetij ni praktično, da prevzame te finančne in organizacijske režijske stroške gradnje posplošljive programske opreme, ki ni želena temeljna kompetenca podjetja.

ExaDeploy je zasnovan za reševanje teh težav pri učinkovitosti uvajanja, vključno s tistimi, ki jih opazimo pri nekaterih najbolj zapletenih delovnih obremenitvah, kot so tiste v aplikacijah za avtonomno vozilo in obdelavo naravnega jezika (NLP). Pri nekaterih velikih paketnih delovnih obremenitvah ML je ExaDeploy znižal stroške za več kot 85 %, ne da bi žrtvoval zakasnitev ali natančnost, s časom integracije le en inženirski dan. Dokazano je, da ExaDeploy samodejno prilagaja in upravlja na tisoče hkratnih primerkov virov strojnega pospeševalnika brez poslabšanja sistema.

Ključne funkcije ExaDeploy vključujejo:

  • Deluje v vašem oblaku: Noben od vaših modelov, vhodov ali izhodov nikoli ne zapusti vašega zasebnega omrežja. Še naprej uporabljajte popuste ponudnika storitev v oblaku.
  • Skupni viri pospeševalnika: ExaDeploy optimizira uporabljene pospeševalnike tako, da omogoči več modelom ali delovnim obremenitvam skupno rabo virov pospeševalnika. Prav tako lahko ugotovi, ali več delovnih obremenitev uvaja isti model, in nato deli model med temi delovnimi obremenitvami, s čimer optimizira uporabljeni pospeševalnik. Njegove zmožnosti samodejnega ponovnega uravnoteženja in praznjenja vozlišč povečajo izkoristek in zmanjšajo stroške.

Exafunction podpira AWS Inferentia za odklepanje najboljše cenovne zmogljivosti za sklepanje strojnega učenja PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

  • Razširljiv model uvajanja brez strežnika: ExaDeploy samodejno skalira glede na nasičenost virov pospeševalnika. Dinamično zmanjšajte na 0 ali do več tisoč virov.
  • Podpora za različne vrste računalništva: Modele globokega učenja lahko razložite iz vseh večjih ogrodij ML kot tudi poljubne kode C++, jeder CUDA, operacij po meri in funkcij Python.
  • Dinamična registracija in različica modela: Nove modele ali različice modelov je mogoče registrirati in zagnati, ne da bi bilo treba ponovno sestaviti ali ponovno namestiti sistem.
  • Izvedba od točke do točke: Odjemalci se povežejo neposredno z viri oddaljenega pospeševalnika, kar omogoča nizko zakasnitev in visoko prepustnost. Stanje lahko celo shranijo na daljavo.
  • Asinhrono izvajanje: ExaDeploy podpira asinhrono izvajanje modelov, kar strankam omogoča vzporedno lokalno računanje z oddaljenim delom virov pospeševalnika.
  • Oddaljeni cevovodi, odporni na napake: ExaDeploy strankam omogoča dinamično sestavljanje oddaljenih izračunov (modeli, predprocesiranje itd.) v cevovode z garancijo tolerance napak. Sistem ExaDeploy obravnava napake sklopov ali vozlišč s samodejno obnovitvijo in ponovnim predvajanjem, tako da razvijalcem nikoli ni treba razmišljati o zagotavljanju tolerance napak.
  • Nadzor zunaj škatle: ExaDeploy ponuja metrike Prometheus in nadzorne plošče Grafana za vizualizacijo uporabe virov pospeševalnika in druge sistemske metrike.

ExaDeploy podpira AWS Inferentia

Primerki Amazon EC2 Inf1, ki temeljijo na AWS Inferentia, so zasnovani za obremenitve sklepanja, specifične za globoko učenje. Ti primerki zagotavljajo do 2.3-kratno prepustnost in do 70-odstotni prihranek stroškov v primerjavi s trenutno generacijo primerkov sklepanja GPE.

ExaDeploy zdaj podpira AWS Inferentia in skupaj odkleneta povečano zmogljivost in prihranke pri stroških, dosežene z namensko izdelanim strojnim pospeševanjem in optimizirano orkestracijo virov v velikem obsegu. Oglejmo si skupne prednosti ExaDeploy in AWS Inferentia z upoštevanjem zelo pogoste sodobne delovne obremenitve ML: paketne delovne obremenitve z mešanimi računi.

Značilnosti hipotetične delovne obremenitve:

  • 15 ms predprocesa/naknadnega procesa samo za CPE
  • Sklepanje modela (15 ms na GPU, 5 ms na AWS Inferentia)
  • 10 odjemalcev, vsak naredi zahtevo vsakih 20 ms
  • Približen relativni strošek CPE:Inferentia:GPE je 1:2:4 (na podlagi cen Amazon EC2 On-Demand za c5.xlarge, inf1.xlarge in g4dn.xlarge)

Spodnja tabela prikazuje, kako se oblikuje vsaka od možnosti:

Setup Potrebna sredstva strošek Latenca
GPU brez ExaDeploy 2 CPE, 2 GPE na odjemalca (skupaj 20 CPU, 20 GPU) 100 30 ms
GPU z ExaDeploy 8 GPE-jev, ki jih deli 10 odjemalcev, 1 CPE na odjemalca 42 30 ms
AWS Inferentia brez ExaDeploy 1 CPE, 1 AWS Inferentia na stranko (skupaj 10 CPU, 10 Inferentia) 30 20 ms
AWS Inferentia z ExaDeploy 3 AWS Inferentia v skupni rabi 10 odjemalcev, 1 CPU na odjemalca 16 20 ms

ExaDeploy na primeru AWS Inferentia

V tem razdelku bomo pregledali korake za konfiguracijo ExaDeploy na primeru z vozlišči inf1 na modelu BERT PyTorch. Za osnovni model bert smo videli povprečno prepustnost 1140 vzorcev/s, kar dokazuje, da je ExaDeploy za ta scenarij z enim samim modelom in eno delovno obremenitvijo uvedel malo ali nič dodatnih stroškov.

korak 1: nastavite Amazonski elastični kubernetes storitev (Amazon EKS) grozd

Grozd Amazon EKS je mogoče prikazati z našim Modul Terraform AWS. Za naš primer smo uporabili an inf1.xlarge za AWS Inferentia.

korak 2: Nastavite ExaDepoy

Drugi korak je nastavitev ExaDeploy. Na splošno je uvedba ExaDeploy na primerke inf1 enostavna. Namestitev večinoma poteka po istem postopku kot na primerkih grafične procesne enote (GPE). Glavna razlika je spremeniti oznako modela iz GPE v AWS Inferentia in ponovno prevesti model. Na primer, prehod s primerkov g4dn na inf1 z vmesniki za programiranje aplikacij (API) ExaDeploy je zahteval spremembo le približno 10 vrstic kode.

  • Ena preprosta metoda je uporaba Exafunction's Modul Terraform AWS Kubernetes or Shema krmila. Te razmestijo osnovne komponente ExaDeploy za izvajanje v gruči Amazon EKS.
  • Prevedite model v serializiran format (npr. TorchScript, shranjene modele TF, ONNX itd.). Za AWS Inferentia smo sledili to tutorski.
  • Registrirajte prevedeni model v skladišču modulov ExaDeploy.
    with exa.ModuleRepository(MODULE_REPOSITORY_ADDRESS) as repo:
       repo.register_py_module(
           "BertInferentia",
           module_class="TorchModule",
           context_data=BERT_NEURON_TORCHSCRIPT_AS_BYTES,
           config={
               "_torchscript_input_names": ",".join(BERT_INPUT_NAMES).encode(),
               "_torchscript_output_names": BERT_OUTPUT_NAME.encode(),
               "execution_type": "inferentia".encode(),
           },
       )

  • Pripravite podatke za model (tj. ne ExaDeploy-specific).
    tokenizer = transformers.AutoTokenizer.from_pretrained(
       "bert-base-cased-finetuned-mrpc"
    )
    
    batch_encoding = tokenizer.encode_plus(
       "The company Exafunction is based in the Bay Area",
       "Exafunction’s headquarters are situated in Mountain View",
       max_length=MAX_LENGTH,
       padding="max_length",
       truncation=True,
       return_tensors="pt",
    )

  • Zaženite model na daljavo od odjemalca.
    with exa.Session(
       scheduler_address=SCHEDULER_ADDRESS,
       module_tag="BertInferentia",
       constraint_config={
           "KUBERNETES_NODE_SELECTORS": "role=runner-inferentia",
           "KUBERNETES_ENV_VARS": "AWS_NEURON_VISIBLE_DEVICES=ALL",
       },
    ) as sess:
       bert = sess.new_module("BertInferentia")
       classification_logits = bert.run(
           **{
               key: value.numpy()
               for key, value in batch_encoding.items()
           }
       )[BERT_OUTPUT_NAME].numpy()
    
       # Assert that the model classifies the two statements as paraphrase.
       assert classification_logits[0].argmax() == 1

ExaDeploy in AWS Inferentia: bolje skupaj

AWS Inferentia premika meje prepustnosti za sklepanje modelov in zagotavlja najnižjo ceno na sklepanje v oblaku. Kot rečeno, podjetja potrebujejo ustrezno orkestracijo, da lahko uživajo prednosti cene in zmogljivosti Inf1 v velikem obsegu. Storitev ML je zapletena težava, ki zahteva strokovno znanje, ki je odstranjeno od ciljev podjetja, in če jo obravnavamo interno, pogosto zamuja pri rokih izdelkov. ExaDeploy, ki je programska rešitev Exafunction za uvajanje ML, je postala vodilna v industriji. Služi tudi najbolj zapletenim delovnim obremenitvam ML, hkrati pa zagotavlja nemoteno integracijsko izkušnjo in podporo ekipe svetovnega razreda. ExaDeploy in AWS Inferentia skupaj odkleneta povečano zmogljivost in prihranek stroškov za sklepanje delovnih obremenitev v velikem obsegu.

zaključek

V tej objavi smo vam pokazali, kako Exafunction podpira AWS Inferentia za performance ML. Za več informacij o gradnji aplikacij z Exafunction obiščite Eksafunkcija. Za najboljše prakse pri ustvarjanju delovnih obremenitev globokega učenja na Inf1 obiščite Primerki Amazon EC2 Inf1.


O avtorjih

Nicholas Jiang, programski inženir, Exafunction

Jonathan Ma, programski inženir, Exafunction

Prem Nair, programski inženir, Exafunction

Anshul Ramachandran, programski inženir, Exafunction

Shruti Koparkar, višji vodja trženja izdelkov, AWS

Časovni žig:

Več od Strojno učenje AWS