Exafunction tukee AWS Inferentiaa parhaan hintasuorituskyvyn avaamiseksi koneoppimispäätelmien PlatoBlockchain Data Intelligencelle. Pystysuuntainen haku. Ai.

Exafunction tukee AWS Inferentiaa parhaan hintasuorituskyvyn avaamiseksi koneoppimispäätelmiä varten

Kaikilla toimialoilla koneoppimismallit (ML) syvenevät, työnkulut monimutkaistuvat ja työmäärät kasvavat. Näiden mallien tarkentamiseen panostetaan huomattavasti ja tehdään resursseja, koska tämä investointi johtaa suoraan parempiin tuotteisiin ja kokemuksiin. Toisaalta näiden mallien saaminen toimimaan tehokkaasti tuotannossa on ei-triviaali hanke, joka jää usein huomiotta, vaikka se on avainasemassa suorituskyky- ja budjettitavoitteiden saavuttamisessa. Tässä viestissä käsittelemme kuinka Exafunction ja AWS Inferencia tehdä yhteistyötä helpon ja kustannustehokkaan käyttöönoton mahdollistamiseksi tuotannossa oleville ML-malleille.

Exafunction on start-up, joka keskittyy mahdollistamaan yritysten ML:n suorittamisen mahdollisimman tehokkaasti. Yksi heidän tuotteistaan ​​on ExaDeploy, helppokäyttöinen SaaS-ratkaisu palvelemaan ML-työkuormia mittakaavassa. ExaDeploy ohjaa tehokkaasti ML-työkuormasi sekaresurssien (suorittimen ja laitteistokiihdyttimien) kesken resurssien käytön maksimoimiseksi. Se huolehtii myös automaattisesta skaalauksesta, laskennan kohdistamisesta, verkko-ongelmista, vikasietoisuudesta ja muusta tehokkaan ja luotettavan käyttöönoton varmistamiseksi. AWS Inferentia perustuu Amazon EC2 Inf1 -tapaukset on suunniteltu tarjoamaan alhaisimmat johtopäätöskustannukset pilvessä. ExaDeploy tukee nyt Inf1-instanssia, jonka avulla käyttäjät voivat saada sekä laitteistopohjaisia ​​säästöjä kiihdyttimissä että ohjelmistopohjaisia ​​säästöjä optimoidusta resurssien virtualisoinnista ja orkestroinnista mittakaavassa.

Ratkaisun yleiskatsaus

Miten ExaDeploy ratkaisee käyttöönoton tehokkuuden

Laskentaresurssien tehokkaan käytön varmistamiseksi sinun on otettava huomioon oikea resurssien allokointi, automaattinen skaalaus, laskennan yhteissijoitus, verkon kustannusten ja viiveen hallinta, vikasietoisuus, versiointi ja toistettavuus ja paljon muuta. Mittakaavassa kaikki tehottomuudet vaikuttavat olennaisesti kustannuksiin ja viiveeseen, ja monet suuret yritykset ovat korjanneet näitä tehottomuuksia rakentamalla sisäisiä tiimejä ja asiantuntemusta. Useimpien yritysten ei kuitenkaan ole käytännöllistä ottaa kantaa yleistettävien ohjelmistojen rakentamiseen liittyviin taloudellisiin ja organisatorisiin kustannuksiin, jotka eivät ole yrityksen toivomaa ydinosaamista.

ExaDeploy on suunniteltu ratkaisemaan nämä käyttöönoton tehokkuuden ongelmakohdat, mukaan lukien ne, joita esiintyy joissakin monimutkaisimmista työkuormista, kuten autonomisen ajoneuvon ja luonnollisen kielen käsittelyn (NLP) sovelluksissa. Joissakin suurissa ML-erätyökuormissa ExaDeploy on alentanut kustannuksia yli 85 % tinkimättä latenssista tai tarkkuudesta, ja integrointiaika on vain yksi insinööripäivä. ExaDeploy on todistettu skaalaavan ja hallitsevan automaattisesti tuhansia samanaikaisia ​​laitteistokiihdytinresurssien ilmentymiä ilman järjestelmän heikkenemistä.

ExaDeployin tärkeimmät ominaisuudet ovat:

  • Toimii pilvessäsi: Yksikään malleistasi, tuloistasi tai lähdöistäsi ei koskaan poistu yksityisestä verkostasi. Jatka pilvipalveluntarjoajan alennusten käyttöä.
  • Jaetut kiihdytinresurssit: ExaDeploy optimoi käytetyt kiihdytit sallimalla useiden mallien tai työkuormien jakaa kiihdytinresursseja. Se voi myös tunnistaa, käyttävätkö useat työmäärät samaa mallia, ja sitten jakaa mallin näiden työkuormien kesken, mikä optimoi käytetyn kiihdytin. Sen automaattinen tasapainotus ja solmun tyhjennysominaisuudet maksimoivat käytön ja minimoivat kustannukset.

Exafunction tukee AWS Inferentiaa parhaan hintasuorituskyvyn avaamiseksi koneoppimispäätelmien PlatoBlockchain Data Intelligencelle. Pystysuuntainen haku. Ai.

  • Skaalautuva palvelimeton käyttöönottomalli: ExaDeploy automaattinen skaalaa kiihdyttimen resurssien kyllästymisen perusteella. Skaalaa dynaamisesti alas nollaan tai jopa tuhansiin resursseihin.
  • Tuki useille laskentatyypeille: Voit ladata syväoppimismalleja kaikista tärkeimmistä ML-kehyksistä sekä mielivaltaisesta C++-koodista, CUDA-ytimistä, mukautetuista opsista ja Python-funktioista.
  • Dynaaminen mallin rekisteröinti ja versiointi: Uusia malleja tai malliversioita voidaan rekisteröidä ja käyttää ilman, että järjestelmää tarvitsee rakentaa tai asentaa uudelleen.
  • Suoritus pisteestä pisteeseen: Asiakkaat muodostavat yhteyden suoraan etäkiihdytinresursseihin, mikä mahdollistaa alhaisen viiveen ja suuren suorituskyvyn. He voivat jopa tallentaa tilan etänä.
  • Asynkroninen suoritus: ExaDeploy tukee mallien asynkronista suoritusta, jonka avulla asiakkaat voivat rinnastaa paikallisen laskennan etäkiihdytinresurssityöhön.
  • Vikasietoiset etäputket: ExaDeploy antaa asiakkaille mahdollisuuden muodostaa dynaamisesti etälaskutoimituksia (mallit, esikäsittely jne.) putkiksi, joissa on vikasietoisuustakuu. ExaDeploy-järjestelmä käsittelee pod- tai solmuhäiriöt automaattisella palautuksella ja toistolla, joten kehittäjien ei koskaan tarvitse miettiä vikasietoisuuden varmistamista.
  • Valmisvalvonta: ExaDeploy tarjoaa Prometheus-mittareita ja Grafana-mittaristoa kiihdyttimen resurssien käytön ja muiden järjestelmämittareiden visualisoimiseksi.

ExaDeploy tukee AWS Inferentiaa

AWS Inferentia -pohjaiset Amazon EC2 Inf1 -esiintymät on suunniteltu syväoppimiseen erityisiin päättelytyökuormiin. Nämä ilmentymät tarjoavat jopa 2.3-kertaisen suorituskyvyn ja jopa 70 % kustannussäästön verrattuna nykyiseen GPU-päättelytapahtumiin.

ExaDeploy tukee nyt AWS Inferentiaa, ja yhdessä ne tuovat lisättyä suorituskykyä ja kustannussäästöjä, jotka saavutetaan tarkoituksenmukaisella laitteistokiihdytyksellä ja optimoidulla resurssien organisoinnilla mittakaavassa. Tarkastellaan ExaDeploy:n ja AWS Inferentian yhdistettyjä etuja ottamalla huomioon hyvin yleinen nykyaikainen ML-työkuormitus: erätyökuormitukset, sekalaskenta.

Hypoteettiset työtaakan ominaisuudet:

  • 15 ms pelkkä CPU esikäsittely/jälkikäsittely
  • Mallin päättely (15 ms GPU:ssa, 5 ms AWS Inferentiassa)
  • 10 asiakasta, jokainen tekee pyynnön 20 ms:n välein
  • CPU:Inferentia:GPU:n likimääräinen suhteellinen hinta on 1:2:4 (Perustuu Amazon EC2 On-Demand -hinnoitteluun kohteille c5.xlarge, inf1.xlarge ja g4dn.xlarge)

Alla oleva taulukko näyttää, kuinka kukin vaihtoehto muodostuu:

Perustaa Tarvittavat resurssit Hinta Viive
GPU ilman ExaDeployia 2 CPU, 2 GPU per asiakas (yhteensä 20 CPU, 20 GPU) 100 30 ms
GPU ExaDeployilla 8 GPU:ta jaettu 10 asiakkaan kesken, 1 CPU asiakasta kohti 42 30 ms
AWS Inferentia ilman ExaDeployia 1 CPU, 1 AWS Inferentia per asiakas (yhteensä 10 CPU, 10 Inferentia) 30 20 ms
AWS Inferentia ExaDeployilla 3 AWS Inferentiaa jaettu 10 asiakkaalle, 1 CPU asiakasta kohti 16 20 ms

ExaDeploy on AWS Inferentia esimerkki

Tässä osiossa käydään läpi ExaDeploy-määrityksen vaiheet esimerkin kautta, jossa on inf1-solmuja BERT PyTorch -mallissa. Näimme bert-base-mallin keskimääräisen suorituskyvyn 1140 XNUMX näytettä sekunnissa, mikä osoittaa, että ExaDeploy otti käyttöön vain vähän tai ei lainkaan ylimääräisiä kustannuksia tälle yksittäiselle mallille, yhden kuormituksen skenaariolle.

Vaihe 1: Määritä Amazonin elastisten kuberneettien palvelu (Amazon EKS) -klusteri

Amazon EKS -klusteri voidaan tuoda esille meidän kanssamme Terraform AWS -moduuli. Esimerkissämme käytimme an inf1.xlarge joukkueelle AWS Inferentia.

Vaihe 2: Ota ExaDepoy käyttöön

Toinen vaihe on ExaDeployin määrittäminen. Yleensä ExaDeployn käyttöönotto inf1-esiintymissä on yksinkertaista. Asennus noudattaa enimmäkseen samaa menettelyä kuin grafiikkasuoritusyksiköissä (GPU). Ensisijainen ero on vaihtaa mallitunniste GPU:sta AWS Inferentiaan ja kääntää malli uudelleen. Esimerkiksi siirtyminen g4dn:stä inf1-instanssiin ExaDeployn sovellusohjelmointirajapintojen (API) avulla vaati vain noin 10 koodirivin muuttamista.

  • Yksi yksinkertainen tapa on käyttää Exafunction:ia Terraform AWS Kubernetes -moduuli or Ruorikaavio. Nämä ottavat käyttöön ExaDeploy-ydinkomponentit toimimaan Amazon EKS -klusterissa.
  • Kääntää mallia sarjamuotoon (esim. TorchScript, TF-tallennettu mallit, ONNX jne.). AWS Inferentiassa noudatimme tämä opetusohjelma.
  • Rekisteröi käännetty malli ExaDeployn moduulivarastoon.
    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(),
           },
       )

  • Valmistele tiedot mallia varten (ts 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",
    )

  • Suorita malli etänä asiakkaalta.
    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: Parempi yhdessä

AWS Inferentia ylittää mallipäätelmien suorituskyvyn rajoja ja tuottaa alhaisimmat päättelykohtaiset kustannukset pilvessä. Yritykset tarvitsevat kuitenkin asianmukaisen orkestroinnin nauttiakseen Inf1:n hinta-suorituskykyeduista mittakaavassa. ML-palvelu on monimutkainen ongelma, joka, jos se ratkaistaan ​​talon sisällä, vaatii asiantuntemusta, joka on poistettu yrityksen tavoitteista ja usein viivästyttää tuotteiden aikatauluja. ExaDeploy, joka on Exafunctionin ML-käyttöönottoohjelmistoratkaisu, on noussut alan johtavaksi. Se palvelee jopa monimutkaisimpia ML-työkuormia ja tarjoaa samalla sujuvat integraatiokokemukset ja tukea maailmanluokan tiimiltä. Yhdessä ExaDeploy ja AWS Inferentia lisäsivät suorituskykyä ja kustannussäästöjä mittakaavan päättelytyökuormituksessa.

Yhteenveto

Tässä viestissä näytimme sinulle, kuinka Exafunction tukee AWS Inferentiaa suorituskykyä varten ML. Lisätietoja sovellusten rakentamisesta Exafunctionilla on osoitteessa Exafunction. Parhaat käytännöt syvän oppimiskuormien rakentamiseen Inf1:ssä on osoitteessa Amazon EC2 Inf1 -esiintymät.


Tietoja Tekijät

Nicholas Jiang, ohjelmistosuunnittelija, Exafunction

Jonathan Ma, ohjelmistosuunnittelija, Exafunction

Prem Nair, ohjelmistosuunnittelija, Exafunction

Anshul Ramachandran, ohjelmistosuunnittelija, Exafunction

Shruti Koparkar, vanhempi tuotemarkkinointipäällikkö, AWS

Aikaleima:

Lisää aiheesta AWS-koneoppiminen