ByteDance säästää jopa 60 % päättelykuluissa samalla, kun se vähentää viivettä ja lisää suorituskykyä AWS Inferentia PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

ByteDance säästää jopa 60 % päättelykuluissa samalla, kun se vähentää viivettä ja lisää suorituskykyä AWS Inferentian avulla

Tämä on vierasblogiviesti, joka on kirjoitettu yhdessä Bytedancen Minghui Yun ja Jianzhe Xiaon kanssa.

ByteDance on teknologiayritys, joka ylläpitää erilaisia ​​sisältöalustoja tiedottaakseen, kouluttaakseen, viihdyttääkseen ja innostaakseen ihmisiä eri kielillä, kulttuureissa ja maantieteellisillä alueilla. Käyttäjät luottavat sisältöalustoihimme ja nauttivat niistä niiden tarjoamien monipuolisten, intuitiivisten ja turvallisten kokemusten ansiosta. Nämä kokemukset mahdollistavat koneoppimisen (ML) taustamoottorimme, jossa on sisällön valvontaa, hakua, suositusta, mainontaa ja uusia visuaalisia tehosteita varten suunniteltuja ML-malleja.

ByteDance AML (Applied Machine Learning) -tiimi tarjoaa erittäin suorituskykyisiä, luotettavia ja skaalautuvia ML-järjestelmiä ja päästä päähän ML-palveluita yrityksen liiketoiminnalle. Tutkimme tapoja optimoida ML-johtopäätösjärjestelmämme kustannusten vähentämiseksi pidentämättä vasteaikoja. Kun AWS käynnistyi AWS Inferencia, AWS:n tarkoitukseen rakentama tehokas ML-päätelmäsiru. Teimme yhteistyötä AWS-tilitiimimme kanssa testataksemme, pystyykö AWS Inferentia saavuttamaan optimointitavoitteemme. Suoritimme useita konseptin todisteita, mikä johti jopa 60 % pienemmään päättelykustannuksiin verrattuna T4 GPU-pohjaisiin EC2 G4dn -esiintymiin ja jopa 25 % pienempään päättelyviiveeseen. Näiden kustannussäästöjen ja suorituskyvyn parannusten toteuttamiseksi päätimme ottaa käyttöön AWS Inferentia -pohjaisia ​​malleja. Amazonin elastinen laskentapilvi (Amazon EC2) Inf1-esiintymiä tuotannossa.

Seuraava kaavio näyttää latenssin parannuksen yhdelle kasvojentunnistusmalleistamme, joka oli aiemmin käytössä GPU:illa, joissa on Tensor RT. Keskimääräinen latenssi pieneni 20 % (50 millisekunnista 40 millisekuntiin) ja p99:n latenssi laski 25 % (200 millisekunnista 150 millisekuntiin).

Tässä viestissä kerromme, kuinka säästimme päättelykuluissa samalla, kun vähennimme viiveitä ja lisäsimme läpimenoa AWS Inferentian avulla.

Etsitkö tehokasta ja kustannustehokasta laskentaa

ByteDance AML -tiimi keskittyy huippuluokan ML-järjestelmien ja niiden vaatimien heterogeenisten laskentaresurssien tutkimukseen ja käyttöönottoon. Luomme laajan mittakaavan koulutus- ja päättelyjärjestelmiä monenlaisiin suosittelu-, luonnollisen kielenkäsittely- (NLP) ja tietokonenäkömalleihin (CV). Nämä mallit ovat erittäin monimutkaisia ​​ja käsittelevät valtavan määrän dataa monilta ByteDancen käyttämiltä sisältöalustoilta. Näiden mallien käyttöönotto vaatii merkittäviä GPU-resursseja, joko pilvessä tai tiloissa. Siksi näiden päättelyjärjestelmien laskentakustannukset ovat melko korkeat.

Pyrimme alentamaan näitä kustannuksia vaikuttamatta suorituskykyyn tai latenssiin. Halusimme pilven joustavuutta ja nopeamman toimitusjakson, joka on paljon lyhyempi kuin mitä tarvitaan paikan päällä tapahtuvaan asennukseen. Ja vaikka olimme avoimia tutkimaan uusia vaihtoehtoja nopeutettuun ML:ään, halusimme myös saumattoman kehittäjäkokemuksen.

Opimme AWS-tiimiltämme, että AWS Inferentia -pohjaiset EC2 Inf1 -esiintymät tarjoavat korkean suorituskyvyn ML-päätelmiä alhaisimmalla päättelykohtaisella hinnalla pilvessä. Olimme uteliaita tutkimaan niitä ja havaitsimme, että ne sopivat hyvin käyttötapaukseemme, koska suoritamme huomattavaa koneoppimista suurilla määrillä kuva-, esine-, puhe- ja tekstidataa. Ne sopivat ehdottomasti hyvin tavoitteisiimme, koska pystyimme saavuttamaan valtavia kustannussäästöjä, kun otetaan huomioon malliemme monimutkaisuus ja päivittäisten ennusteiden määrä. Lisäksi AWS Inferentiassa on suuri määrä on-chip-muistia, jota voit käyttää suurten mallien välimuistiin sen sijaan, että tallennat niitä sirulle. Ymmärsimme, että tällä voi olla merkittävä vaikutus päättelyviiveen vähentämiseen, koska AWS Inferentian prosessointiytimillä, nimeltään NeuronCores, on nopea pääsy malleihin, jotka on tallennettu sirun muistiin ja joita piirin ulkopuolinen muisti ei rajoita. kaistanleveys.

Lopulta useiden vaihtoehtojen arvioinnin jälkeen valitsimme EC2 Inf1 -esiintymät niiden paremman suorituskyvyn ja hintasuhteen vuoksi verrattuna G4dn-instanssiin ja NVIDIA T4:ään tiloissa. Teimme jatkuvan iteroinnin AWS-tiimin kanssa saadaksemme Inf1:n hinta- ja suorituskykyedut käyttöön.

Päättelytyökuormien käyttöönotto AWS Inferentiassa

AWS Inferentian käytön aloittaminen AWS Neuron SDK:n avulla sisälsi kaksi vaihetta: mallikoodin kokoaminen ja käyttöönotto Inf1-esiintymissä. Kuten tavallista siirrettäessä ML-malleja mihin tahansa uuteen infrastruktuuriin, kohtasimme joitain haasteita. Pystyimme voittamaan nämä haasteet ahkerasti ja AWS-tiimimme tuella. Seuraavissa osioissa jaamme useita hyödyllisiä vinkkejä ja havaintoja, jotka perustuvat kokemukseemme AWS Inferentian päättelytyökuormien käyttöönotosta.

Conformer malli OCR:lle

Optisen merkintunnistuksen (OCR) konformerimallimme havaitsee ja lukee kuvien tekstin. Työskentelimme useiden optimointien parissa saadaksemme korkean suorituskyvyn (QPS) useille erikokoisille erille pitäen samalla viiveen alhaisena. Jotkut tärkeimmät optimoinnit on mainittu alla:

  • Kääntäjän optimoinnit – Oletuksena Inferentia toimii parhaiten syötteillä, joilla on kiinteä sekvenssipituus, mikä oli haaste, koska tekstidatan pituus ei ole kiinteä. Tämän ratkaisemiseksi jaoimme mallimme kahteen osaan: kooderiin ja dekooderiin. Kokosimme nämä kaksi alimallia erikseen ja yhdistämme ne sitten yhdeksi malliksi TorchScriptin avulla. Suorittamalla for loop -ohjausvirtaa CPU:illa tämä lähestymistapa mahdollisti vaihtelevien sekvenssipituuksien tuen Inferentiassa.
  • Syvyyssuuntainen konvoluutio – Kohtasimme DMA-pullonkaulan syvyyskonvoluutiooperaatiossa, jota konformeerimallimme käyttää voimakkaasti. Työskentelimme tiiviissä yhteistyössä AWS Neuron -tiimin kanssa DMA-käyttösuorituskyvyn pullonkaulan tunnistamiseksi ja ratkaisemiseksi, mikä paransi tämän toiminnon suorituskykyä ja paransi OCR-mallimme yleistä suorituskykyä.

ByteDance säästää jopa 60 % päättelykuluissa samalla, kun se vähentää viivettä ja lisää suorituskykyä AWS Inferentia PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.

Loimme kaksi uutta malliversiota optimoidaksemme käyttöönoton Inferentiassa:

  • Yhdistetty ja rullattu enkooderi/dekooderi – Sen sijaan, että käyttäisimme itsenäisesti koottua kooderia ja dekooderia, yhdistimme kooderin ja täysin avatun dekooderin yhdeksi malliksi ja käänsimme tämän mallin yhdeksi NEFF:ksi. Dekooderin purkaminen mahdollistaa kaiken dekooderin ohjausvirran suorittamisen Inferentiassa ilman CPU-toimintoja. Tällä lähestymistavalla jokainen dekooderin iteraatio käyttää täsmälleen kyseisen tunnuksen tarvitsemaa laskentamäärää. Tämä lähestymistapa parantaa suorituskykyä, koska vähennämme merkittävästi ylimääräistä laskentaa, joka johtui aiemmin täytetuloista. Lisäksi mitään tiedonsiirtoa Inferentiasta CPU:lle ei tarvita dekooderin iteraatioiden välillä, mikä lyhentää I/O-aikaa huomattavasti. Tämä mallin versio ei tue aikaista pysäyttämistä.
  • Osioitu auki rullattu dekooderi – Samoin kuin yhdistetty täysin auki rullattu malli, tämä mallin muunnos avaa useita dekooderin iteraatioita ja kokoaa ne yhtenä suorituksena (mutta ei sisällä kooderia). Esimerkiksi, jos sekvenssin enimmäispituus on 75, voimme purkaa dekooderin kolmeen osioon, jotka laskevat tunnukset 3-1, 25-26 ja 50-51. I/O:n suhteen tämä on myös huomattavasti nopeampi, koska meidän ei tarvitse siirtää kooderin lähtöä kerran joka iteraatiossa. Sen sijaan lähdöt siirretään vain kerran kutakin dekooderiosiota kohti. Tämä mallin versio tukee varhaista pysäytystä, mutta vain osion rajoilla. Osion rajat voidaan virittää kullekin tietylle sovellukselle sen varmistamiseksi, että suurin osa pyynnöistä suorittaa vain yhden osion.

Parantaaksemme suorituskykyä entisestään teimme seuraavat optimoinnit vähentääksemme muistin käyttöä tai parantaaksemme käyttötehokkuutta:

  • Tensorin kaksoiskopiointi ja pienennetyt kopiot – Tämä on kääntäjän optimointi, joka vähentää merkittävästi auki rullattujen mallien kokoa ja ohjeiden/muistin käyttöä käyttämällä tensoreita uudelleen tilan tehokkuuden parantamiseksi.
  • Vähennetyt ohjeet – Tämä on kääntäjän optimointi, jota käytetään dekooderin pehmustettoman version kanssa vähentämään merkittävästi käskyjen kokonaismäärää.
  • Moniytiminen deduplikaatio – Tämä on ajonaikainen optimointi, joka on vaihtoehto tensorin deduplikaatiolle. Tällä vaihtoehdolla kaikki moniytimiset mallit ovat huomattavasti tilaa säästävämpiä.

ResNet50 malli kuvien luokitteluun

ResNet-50 on valmiiksi koulutettu syväoppimismalli kuvien luokitteluun. Se on konvoluutiohermoverkko (CNN tai ConvNet), jota käytetään yleisimmin visuaalisten kuvien analysointiin. Käytimme seuraavia tekniikoita parantaaksemme tämän mallin suorituskykyä Inferentiassa:

  • Mallin muunnos – Monet ByteDancen malleista viedään ONNX-muodossa, jota Inferentia ei tällä hetkellä tue natiivisti. Näiden ONNX-mallien käsittelemiseksi AWS Neuron -tiimi toimitti komentosarjoja, jotka muuttivat mallimme ONNX-muodosta PyTorch-malleiksi, jotka voidaan kääntää suoraan Inferentiaa varten käyttämällä torch-neuronia.
  • Suorituskyvyn optimointi – Teimme tiivistä yhteistyötä mm AWS Neuron tiimi virittää kääntäjän aikataulutusheuristiikan ResNet-50-malliemme suorituskyvyn optimoimiseksi.

Multimodaalinen malli sisällön moderointiin

Multimodaalinen syväoppimismallimme on useiden erillisten mallien yhdistelmä. Tämän mallin koko on suhteellisen suuri, mikä aiheutti mallin latausvirheitä Inferentiaan. AWS Neuron -tiimi ratkaisi tämän ongelman onnistuneesti käyttämällä painonjakoa laitteen muistin käytön vähentämiseksi. Neuron-tiimi julkaisi tämän painon päällekkäisyyden poistamisominaisuuden Neuron libnrt -kirjastossa ja paransi myös Neuron Toolsia tarkempia mittareita varten. Ajonaikainen painon päällekkäisyyden poistoominaisuus voidaan ottaa käyttöön asettamalla seuraava ympäristömuuttuja ennen päättelyn suorittamista:

NEURON_RT_MULTI_INSTANCE_SHARED_WEIGHTS=1

Päivitetty Neuron SDK vähensi kopioitujen malliemme kokonaismuistin kulutusta, minkä ansiosta pystyimme käyttämään multimodaalista malliamme usean ytimen päättelyyn.

Lisää malleja siirretään AWS Inferentiaan

Jatkamme ByteDancessa innovatiivisten syväoppimismallien käyttöönottoa tarjotaksemme ihastuttavia käyttökokemuksia lähes 2 miljardille kuukausittaiselle aktiiviselle käyttäjälle. Koska toimimme valtavasti, etsimme jatkuvasti tapoja säästää kustannuksia ja optimoida suorituskykyä. Jatkamme mallien siirtämistä AWS Inferentiaan hyötyäksemme sen korkeasta suorituskyvystä ja kustannustehokkuudesta. Haluamme myös, että AWS julkaisee enemmän AWS Inferentia -pohjaisia ​​ilmentymätyyppejä, kuten sellaisia, joissa on enemmän vCPU:ita esikäsittelytehtäviin. Jatkossa ByteDance toivoo saavansa AWS:ltä lisää piiinnovaatioita tarjotakseen parhaan hinta-suorituskyvyn ML-sovelluksille.

Jos olet kiinnostunut oppimaan lisää siitä, kuinka AWS Inferentia voi auttaa sinua säästämään kustannuksia ja optimoimaan päättelysovellustesi suorituskyvyn, käy osoitteessa Amazon EC2 Inf1 -tapaukset tuotesivu.


Tietoja Tekijät

ByteDance säästää jopa 60 % päättelykuluissa samalla, kun se vähentää viivettä ja lisää suorituskykyä AWS Inferentia PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Minghui Yu on vanhempi koneoppimistiimin johtaja päätelmien tekemiseen ByteDancessa. Hänen painopistealueensa on AI Computing Acceleration and Machine Learning System. Hän on erittäin kiinnostunut heterogeenisestä laskennasta ja tietokonearkkitehtuurista Mooren jälkeisellä aikakaudella. Vapaa-ajallaan hän pitää koripallosta ja jousiammunta.

ByteDance säästää jopa 60 % päättelykuluissa samalla, kun se vähentää viivettä ja lisää suorituskykyä AWS Inferentia PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Jianzhe Xiao on Senior Software Engineer -tiimin johtaja AML-tiimissä ByteDancessa. Hänen nykyinen työnsä keskittyy auttamaan yritystiimiä nopeuttamaan mallin käyttöönottoprosessia ja parantamaan mallin päättelykykyä. Työn ulkopuolella hän nauttii pianon soittamisesta.

ByteDance säästää jopa 60 % päättelykuluissa samalla, kun se vähentää viivettä ja lisää suorituskykyä AWS Inferentia PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Tian Shi on AWS:n vanhempi ratkaisuarkkitehti. Hänen painopistealueensa ovat data-analytiikka, koneoppiminen ja palvelimeton. Hän haluaa auttaa asiakkaita suunnittelemaan ja rakentamaan luotettavia ja skaalautuvia ratkaisuja pilveen. Vapaa-ajallaan hän nauttii uimisesta ja lukemisesta.

ByteDance säästää jopa 60 % päättelykuluissa samalla, kun se vähentää viivettä ja lisää suorituskykyä AWS Inferentia PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Jia Dong on AWS:n asiakasratkaisupäällikkö. Hän nauttii AWS AI/ML -palveluista oppimisesta ja asiakkaiden auttamisesta saavuttamaan liiketoimintansa tulokset rakentamalla heille ratkaisuja. Työn ulkopuolella Jia nauttii matkustamisesta, joogasta ja elokuvista.

ByteDance säästää jopa 60 % päättelykuluissa samalla, kun se vähentää viivettä ja lisää suorituskykyä AWS Inferentia PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Jonathan Lunt on Amazonin ohjelmistoinsinööri, joka keskittyy ML-kehyksen kehittämiseen. Uransa aikana hän on työskennellyt laajan datatieteen rooleissa, mukaan lukien mallikehitys, infrastruktuurin käyttöönotto ja laitteistokohtainen optimointi.

ByteDance säästää jopa 60 % päättelykuluissa samalla, kun se vähentää viivettä ja lisää suorituskykyä AWS Inferentia PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Joshua Hannan on koneoppimisen insinööri Amazonissa. Hän työskentelee syväoppimismallien optimoinnissa suuria tietokonenäön ja luonnollisen kielen käsittelysovelluksia varten.

ByteDance säästää jopa 60 % päättelykuluissa samalla, kun se vähentää viivettä ja lisää suorituskykyä AWS Inferentia PlatoBlockchain Data Intelligencen avulla. Pystysuuntainen haku. Ai.Shruti Koparkar on AWS:n tuotemarkkinointipäällikkö. Hän auttaa asiakkaita tutkimaan, arvioimaan ja ottamaan käyttöön EC2-kiihdytettyä laskentainfrastruktuuria koneoppimistarpeisiinsa.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen