Exafunction toetab AWS Inferentiat, et avada parim hinnajõudlus masinõppe järelduste jaoks PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Exafunction toetab AWS Inferentiat, et avada masinõppe järelduste jaoks parim hinnajõudlus

Kõikides tööstusharudes muutuvad masinõppe (ML) mudelid üha sügavamaks, töövood muutuvad keerukamaks ja töökoormused töötavad suuremas mahus. Nende mudelite täpsemaks muutmiseks tehakse märkimisväärseid jõupingutusi ja ressursse, kuna selle investeeringu tulemuseks on otseselt paremad tooted ja kogemused. Teisest küljest on nende mudelite tootmises tõhusalt töötama panemine mittetriviaalne ettevõtmine, mis sageli tähelepanuta jäetakse, hoolimata sellest, et see on jõudluse ja eelarveeesmärkide saavutamise võti. Selles postituses käsitleme seda, kuidas Exafunction ja AWS Inferentia tehke koostööd, et avada tootmises olevate ML-mudelite lihtne ja kulutõhus juurutamine.

Eksafunktsioon on idufirma, mis on keskendunud sellele, et võimaldada ettevõtetel teostada ML võimalikult tõhusalt ulatuslikult. Üks nende toodetest on ExaDeploy, hõlpsasti kasutatav SaaS-lahendus ML-i töökoormuse mastaabis teenindamiseks. ExaDeploy korraldab tõhusalt teie ML-i töökoormust segaressursside (CPU ja riistvarakiirendite) vahel, et maksimeerida ressursside kasutamist. Samuti hoolitseb see automaatse skaleerimise, arvutuste kolokatsiooni, võrguprobleemide, tõrketaluvuse ja muu eest, et tagada tõhus ja usaldusväärne juurutamine. AWS Inferentia põhinev Amazon EC2 Inf1 eksemplarid on loodud selleks, et pakkuda pilves madalaimat järelduste hinda. ExaDeploy toetab nüüd Inf1 eksemplare, mis võimaldab kasutajatel säästa nii riistvarapõhiselt kiirendeid kui ka tarkvarapõhist kokkuhoidu optimeeritud ressursside virtualiseerimisel ja orkestreerimisel.

Lahenduse ülevaade

Kuidas ExaDeploy juurutamise tõhususe parandab

Arvutusressursside tõhusa kasutamise tagamiseks peate arvestama ressursside õige jaotamise, automaatse skaleerimise, arvutamise ühisasutamise, võrgukulude ja latentsusaja haldamise, tõrketaluvuse, versioonide loomise ja reprodutseeritavuse ning palju muuga. Suures ulatuses mõjutavad kõik ebatõhusused oluliselt kulusid ja latentsust ning paljud suured ettevõtted on selle ebatõhususega tegelenud, luues sisemisi meeskondi ja ekspertteadmisi. Siiski ei ole enamikul ettevõtetel otstarbekas võtta endale üldistatava tarkvara loomise finants- ja organisatsioonilisi üldkulusid, mis ei ole ettevõtte soovitud põhipädevus.

ExaDeploy on loodud nende juurutamise tõhususe valupunktide lahendamiseks, sealhulgas need, mida on näha mõnes kõige keerulisemas töökoormuses, näiteks autonoomse sõiduki ja loomuliku keele töötlemise (NLP) rakendustes. Mõne suure partii ML-töökoormuse puhul on ExaDeploy vähendanud kulusid üle 85% ilma latentsust või täpsust ohverdamata ning integreerimisaeg on vaid üks inseneripäev. On tõestatud, et ExaDeploy skaleerib automaatselt ja haldab tuhandeid samaaegseid riistvarakiirendi ressursijuhte ilma süsteemi halvenemiseta.

ExaDeploy põhifunktsioonide hulka kuuluvad:

  • Töötab teie pilves: ükski teie mudel, sisend või väljund ei lahku kunagi teie privaatvõrgust. Jätkake pilveteenuse pakkuja allahindluste kasutamist.
  • Jagatud kiirendi ressursid: ExaDeploy optimeerib kasutatavaid kiirendeid, võimaldades mitmel mudelil või töökoormusel kiirendi ressursse jagada. Samuti saab see tuvastada, kas sama mudelit juurutavad mitu töökoormust, ja seejärel mudelit nende töökoormuste vahel jagada, optimeerides sellega kasutatavat kiirendit. Selle automaatse tasakaalustamise ja sõlme tühjendamise võimalused maksimeerivad kasutust ja minimeerivad kulusid.

Exafunction toetab AWS Inferentiat, et avada parim hinnajõudlus masinõppe järelduste jaoks PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

  • Skaleeritav serverita juurutusmudel: ExaDeploy automaatsed skaalad, mis põhinevad kiirendi ressursside küllastumisel. Vähendage dünaamiliselt 0-ni või tuhandete ressurssideni.
  • Erinevate arvutustüüpide tugi: saate maha laadida süvaõppemudeleid kõigist suurematest ML-i raamistikest, aga ka suvalisest C++ koodist, CUDA tuumadest, kohandatud operatsioonidest ja Pythoni funktsioonidest.
  • Dünaamiline mudeli registreerimine ja versioonide loomine: Uusi mudeleid või mudeliversioone saab registreerida ja käivitada ilma süsteemi ümberehitamise või ümberpaigutamiseta.
  • Punkt-punkti täitmine: Kliendid loovad otseühenduse kaugkiindi ressurssidega, mis võimaldab madalat latentsust ja suurt läbilaskevõimet. Nad saavad isegi oleku kaugjuhtimisega salvestada.
  • Asünkroonne täitmine: ExaDeploy toetab mudelite asünkroonset täitmist, mis võimaldab klientidel paralleelselt kohalikku arvutust kaugkiirendi ressursitööga.
  • Veakindlad kaugtorujuhtmed: ExaDeploy võimaldab klientidel dünaamiliselt koostada kaugarvutusi (mudelid, eeltöötlus jne) tõrketaluvuse garantiiga torujuhtmetesse. ExaDeploy süsteem käsitleb kausta või sõlme tõrkeid automaatse taastamise ja taasesitusega, nii et arendajad ei pea kunagi mõtlema veataluvuse tagamisele.
  • Karbist väljas jälgimine: ExaDeploy pakub Prometheuse mõõdikuid ja Grafana armatuurlaudu, et visualiseerida kiirendi ressursside kasutamist ja muid süsteemimõõdikuid.

ExaDeploy toetab AWS Inferentiat

AWS Inferentia-põhised Amazon EC2 Inf1 eksemplarid on loodud süvaõppe spetsiifiliste järelduste töökoormuse jaoks. Need eksemplarid pakuvad kuni 2.3-kordset läbilaskevõimet ja kuni 70% kulude kokkuhoidu võrreldes praeguse põlvkonna GPU järeldusjuhtumitega.

ExaDeploy toetab nüüd AWS Inferentiat ning üheskoos avavad need suurema jõudluse ja kulude kokkuhoiu, mis saavutatakse sihipärase riistvarakiirenduse ja optimeeritud ressursside juhtimisega. Vaatame ExaDeploy ja AWS Inferentia kombineeritud eeliseid, võttes arvesse väga levinud kaasaegset ML-i töökoormust: pakett-, segaarvutustöökoormust.

Hüpoteetilise töökoormuse omadused:

  • 15 ms ainult CPU eel-/järeltöötlust
  • Mudeli järeldus (15 ms GPU-l, 5 ms AWS Inferential)
  • 10 klienti, igaüks esitab päringu iga 20 ms järel
  • Protsessori: Inferentia:GPU ligikaudne suhteline maksumus on 1:2:4 (Põhineb Amazon EC2 On-Demand hinnakujundusel c5.xlarge, inf1.xlarge ja g4dn.xlarge jaoks)

Allolev tabel näitab, kuidas kõik valikud kujunevad.

Seade Vajalikud ressursid Maksma Hilinemine
GPU ilma ExaDeployta 2 CPU, 2 GPU kliendi kohta (kokku 20 CPU, 20 GPU) 100 30 ms
GPU koos ExaDeploy 8 GPU-d jagatud 10 kliendi vahel, 1 CPU kliendi kohta 42 30 ms
AWS Inferentia ilma ExaDeployta 1 CPU, 1 AWS Inferentia kliendi kohta (kokku 10 CPU, 10 Inferentia) 30 20 ms
AWS Inferentia koos ExaDeploy 3 AWS Inferentia on jagatud 10 kliendi vahel, 1 CPU kliendi kohta 16 20 ms

ExaDeploy AWS Inferentia näitel

Selles jaotises käsitleme ExaDeploy konfigureerimise samme BERT PyTorchi mudeli inf1 sõlmede näite kaudu. Nägime bert-base mudeli keskmiseks läbilaskevõimeks 1140 näidist sekundis, mis näitab, et ExaDeploy võttis selle ühe mudeli ja ühe töökoormuse stsenaariumi jaoks kasutusele vähe või üldse mitte.

Samm 1: Seadistage an Amazoni elastse Kubernetese teenus (Amazon EKS) klaster

Amazon EKS klastri saab tuua meiega Terraform AWS moodul. Meie näites kasutasime an inf1.xlarge AWS Inferentia jaoks.

Samm 2: ExaDepoy seadistamine

Teine samm on ExaDeploy seadistamine. Üldiselt on ExaDeploy juurutamine inf1 eksemplaridel lihtne. Seadistamine järgib enamasti sama protseduuri nagu graafikaprotsessori (GPU) eksemplaridel. Peamine erinevus seisneb mudelisildi muutmises GPU-lt AWS Inferentiaks ja mudeli uuesti kompileerimiseks. Näiteks läks ExaDeploy rakenduse programmeerimisliideste (API-de) abil g4dn-ilt inf1-eksemplaridele üleminek muutmiseks vaid umbes 10 koodirida.

  • Üks lihtne meetod on Exafunction'i kasutamine Terraform AWS Kubernetes moodul or Helmi diagramm. Need juurutavad ExaDeploy põhikomponendid Amazon EKS-klastris töötamiseks.
  • Mudeli koostamine jadavormingusse (nt TorchScript, TF-i salvestatud mudelid, ONNX jne). AWS Inferentia puhul järgisime see õpetus.
  • Registreerige koostatud mudel ExaDeploy moodulite hoidlas.
    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(),
           },
       )

  • Valmistage ette andmed mudeli jaoks (st mitte 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",
    )

  • Käivitage mudelit kliendist eemalt.
    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 ja AWS Inferentia: parem koos

AWS Inferentia nihutab mudeli järelduste läbilaskevõime piire ja pakub pilves madalaimat järelduste hinda. Nagu öeldud, vajavad ettevõtted korralikku orkestreerimist, et nautida Inf1 hinna ja toimivuse eeliseid mastaapselt. ML-i serveerimine on keeruline probleem, mida ettevõttesiseselt lahendades on vaja asjatundlikkust, mis on ettevõtte eesmärkidest kõrvale jäetud ja mis sageli viivitab toote ajakava. ExaDeploy, mis on Exafunctioni ML juurutamise tarkvaralahendus, on tõusnud tööstusharu liidriks. See teenindab isegi kõige keerukamaid ML-i töökoormusi, pakkudes samal ajal sujuvaid integreerimiskogemusi ja tuge maailmatasemel meeskonnalt. ExaDeploy ja AWS Inferentia koos suurendavad jõudlust ja kulude kokkuhoidu mastaapse töökoormuse järeldamisel.

Järeldus

Selles postituses näitasime teile, kuidas Exafunction toetab AWS Inferentiat jõudluse ML jaoks. Lisateavet Exafunctioniga rakenduste ehitamise kohta leiate aadressilt Eksafunktsioon. Inf1 süvaõppe töökoormuse loomise parimate tavade saamiseks külastage Amazon EC2 Inf1 eksemplarid.


Autoritest

Nicholas Jiang, tarkvarainsener, Exafunction

Jonathan Ma, tarkvarainsener, Exafunction

Prem Nair, tarkvarainsener, Exafunction

Anshul Ramachandran, tarkvarainsener, Exafunction

Shruti Koparkar, vanem tooteturundusjuht, AWS

Ajatempel:

Veel alates AWS-i masinõpe