A ByteDance akár 60%-ot takarít meg a következtetési költségeken, miközben csökkenti a késleltetést és növeli az átviteli sebességet az AWS Inferentia PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.

A ByteDance akár 60%-ot takarít meg a következtetési költségeken, miközben csökkenti a késleltetést és növeli az átviteli sebességet az AWS Inferentia segítségével

Ez egy vendégblogbejegyzés, amelyet Minghui Yu-val és Jianzhe Xiao-val közösen írt a Bytedance-től.

ByteDance egy technológiai vállalat, amely számos tartalomplatformot üzemeltet az emberek tájékoztatása, oktatása, szórakoztatása és inspirációja céljából különböző nyelveken, kultúrákon és földrajzi területeken. A felhasználók bíznak tartalomplatformjainkban, és élvezik azokat, az általuk nyújtott gazdag, intuitív és biztonságos élménynek köszönhetően. Ezeket a tapasztalatokat gépi tanulási (ML) háttérmotorunk teszi lehetővé, tartalommoderálásra, keresésre, ajánlásra, hirdetésre és újszerű vizuális effektusokra épített ML modellekkel.

A ByteDance AML (Applied Machine Learning) csapata nagy teljesítményű, megbízható és méretezhető ML rendszereket és végpontok közötti ML szolgáltatásokat biztosít a vállalat üzleti tevékenysége számára. Azt kutattuk, hogyan optimalizálhatjuk ML következtetési rendszereinket a költségek csökkentése érdekében a válaszidő növelése nélkül. Amikor az AWS elindult AWS Inferentia, az AWS által kifejezetten erre a célra épített nagy teljesítményű ML következtetési chip, együttműködtünk AWS-fiókkal, hogy teszteljük, az AWS Inferentia képes-e elérni optimalizálási céljainkat. Számos elméleti bizonyítást futtattunk, ami akár 60%-kal alacsonyabb következtetési költséget eredményezett a T4 GPU-alapú EC2 G4dn példányokhoz képest, és akár 25%-kal alacsonyabb következtetési késleltetést. A költségmegtakarítás és a teljesítménynövekedés megvalósítása érdekében úgy döntöttünk, hogy az AWS Inferentia alapú modelleket telepítjük. Amazon rugalmas számítási felhő (Amazon EC2) Inf1 példányok gyártásban.

A következő diagram az egyik arcfelismerő modellünk késleltetési idejét mutatja, amelyet korábban a Tensor RT-vel rendelkező GPU-kon telepítettek. Az átlagos várakozási idő 20%-kal (50 ezredmásodpercről 40 ezredmásodpercre), a p99 késleltetése pedig 25%-kal (200 ezredmásodpercről 150 ezredmásodpercre) csökkent.

Ebben a bejegyzésben megosztjuk, hogyan spóroltunk meg a következtetési költségeken, miközben csökkentjük a késéseket és növeljük az átviteli sebességet az AWS Inferentia használatával.

Nagy teljesítményű, költséghatékony számítástechnika keresése

A ByteDance AML csapata az élvonalbeli ML-rendszerek és az általuk igényelt heterogén számítási erőforrások kutatására és megvalósítására összpontosít. Nagyszabású képzési és következtetési rendszereket készítünk a legkülönfélébb ajánló, természetes nyelvi feldolgozás (NLP) és számítógépes látás (CV) modellekhez. Ezek a modellek rendkívül összetettek, és hatalmas mennyiségű adatot dolgoznak fel a ByteDance által működtetett számos tartalomplatformról. Ezeknek a modelleknek az üzembe helyezése jelentős GPU-erőforrást igényel, akár a felhőben, akár a helyszínen. Ezért ezeknek a következtetési rendszereknek a számítási költségei meglehetősen magasak.

Arra törekedtünk, hogy csökkentsük ezeket a költségeket az átviteli sebesség vagy a késleltetés befolyásolása nélkül. A felhő rugalmasságát és gyorsabb szállítási ciklusát szerettük volna, ami sokkal rövidebb, mint a helyszíni beállításhoz szükséges. És bár nyitottak voltunk a gyorsított ML új lehetőségeinek felfedezésére, zökkenőmentes fejlesztői élményt is szerettünk volna.

AWS-csapatunktól megtudtuk, hogy az AWS Inferentia alapú EC2 Inf1 példányok nagy teljesítményű ML-következtetést biztosítanak a legalacsonyabb következtetésenkénti költséggel a felhőben. Kíváncsiak voltunk ezek felfedezésére, és azt találtuk, hogy jól illeszkednek a mi használati esetünkhöz, mivel jelentős gépi tanulást futtatunk nagy mennyiségű kép-, tárgy-, beszéd- és szövegadaton. Határozottan megfeleltek a céljainknak, mert modelljeink összetettsége és a napi előrejelzések mennyisége miatt hatalmas költségmegtakarítást érhettünk el. Ezenkívül az AWS Inferentia nagy mennyiségű chipen belüli memóriával rendelkezik, amelyet a nagy modellek gyorsítótárazására használhat, ahelyett, hogy chipen tárolná azokat. Felismertük, hogy ez jelentős hatással lehet a következtetések késleltetésének csökkentésére, mivel az AWS Inferentia feldolgozó magjai, az úgynevezett NeuronCores nagysebességű hozzáféréssel rendelkeznek a chipen belüli memóriában tárolt modellekhez, amelyeket nem korlátoz a chipen kívüli memória. sávszélesség.

Végül több lehetőség kiértékelése után az EC2 Inf1 példányokat választottuk jobb teljesítmény/ár arányuk miatt, mint a G4dn példányok és a helyszíni NVIDIA T4. Folyamatos iterációs ciklust folytattunk az AWS csapatával, hogy kiaknázzuk az Inf1 ár- és teljesítményelőnyeit.

Következtetési munkaterhelések telepítése az AWS Inferentián

Az AWS Inferentia használatának megkezdése az AWS Neuron SDK használatával két fázisból állt: a modellkód összeállításából és az Inf1 példányokon történő telepítésből. Az ML-modellek bármely új infrastruktúrába való áthelyezésekor szokásos, itt is volt néhány kihívás, amellyel szembenéztünk. Ezeket a kihívásokat szorgalommal és AWS csapatunk támogatásával tudtuk leküzdeni. A következő szakaszokban számos hasznos tippet és észrevételt osztunk meg az AWS Inferentián a következtetési munkaterhelések telepítésével kapcsolatos tapasztalataink alapján.

Konformer modell az OCR-hez

Optikai karakterfelismerő (OCR) konformer modellünk észleli és beolvassa a szöveget a képeken belül. Számos optimalizáláson dolgoztunk, hogy nagy teljesítményt (QPS) érjünk el különféle kötegméretekhez, miközben a késleltetést alacsonyan tartottuk. Néhány kulcsfontosságú optimalizálás az alábbiakban található:

  • Fordító optimalizálás – Alapértelmezés szerint az Inferentia a rögzített sorozathosszúságú bemeneteken teljesít a legjobban, ami kihívást jelentett, mivel a szöveges adatok hossza nem rögzített. Ennek kiküszöbölésére a modellünket két részre osztottuk: egy kódolóra és egy dekóderre. Ezt a két almodellt külön-külön állítottuk össze, majd TorchScript segítségével egyetlen modellbe egyesítettük. A for hurok vezérlési folyamatának CPU-kon való futtatásával ez a megközelítés lehetővé tette a változó sorozathosszúságok támogatását az Inferentián.
  • Mélységi konvolúciós teljesítmény – DMA szűk keresztmetszetet találtunk a mélységi konvolúciós műveletben, amelyet a konformer modellünk erősen használ. Szorosan együttműködtünk az AWS Neuron csapatával, hogy azonosítsuk és feloldjuk a DMA-hozzáférési teljesítmény szűk keresztmetszetét, ami javította ennek a műveletnek a teljesítményét és javította az OCR-modellünk általános teljesítményét.

A ByteDance akár 60%-ot takarít meg a következtetési költségeken, miközben csökkenti a késleltetést és növeli az átviteli sebességet az AWS Inferentia PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.

Két új modellváltozatot hoztunk létre, hogy optimalizáljuk az Inferentián való telepítésünket:

  • Kombinált és kibontott kódoló/dekódoló – Egy önállóan lefordított kódoló és dekódoló használata helyett egyetlen modellben egyesítettük a kódolót és a teljesen kibontott dekódert, és ezt a modellt egyetlen NEFF-ként fordítottuk le. A dekóder kibontása lehetővé teszi az összes dekódoló vezérlési folyamat futtatását az Inferentián CPU műveletek használata nélkül. Ezzel a megközelítéssel a dekódoló minden iterációja pontosan annyi számítási mennyiséget használ, amennyi az adott tokenhez szükséges. Ez a megközelítés javítja a teljesítményt, mivel jelentősen csökkentjük a korábban a kitöltési bemenetek által bevezetett felesleges számítási mennyiséget. Ezenkívül nincs szükség adatátvitelre az Inferentiáról a CPU-ra a dekóder iterációi között, ami drasztikusan csökkenti az I/O időt. A modell ezen verziója nem támogatja a korai leállítást.
  • Partícionált, tekercselt dekóder – Hasonlóan a kombinált, teljesen kibontott modellhez, a modellnek ez a változata a dekóder több iterációját bontja ki és egyetlen végrehajtásként fordítja le (de nem tartalmazza a kódolót). Például 75-ös maximális sorozathosszúság esetén a dekódert 3 partícióra bonthatjuk, amelyek az 1-25, 26-50 és 51-75 tokeneket számítják ki. Az I/O szempontjából ez is lényegesen gyorsabb, mert nem kell minden iterációnként egyszer átvinnünk a kódoló kimenetét. Ehelyett a kimenetek csak egyszer kerülnek átvitelre minden dekódoló partíciónként. A modell ezen verziója támogatja a korai leállítást, de csak a partíció határain. A partícióhatárok minden egyes alkalmazáshoz hangolhatók, így biztosítva, hogy a kérések többsége csak egy partíciót hajtson végre.

A teljesítmény további javítása érdekében a következő optimalizálásokat hajtottuk végre a memóriahasználat csökkentése vagy a hozzáférés hatékonyságának javítása érdekében:

  • Tenzor deduplikáció és kicsinyített másolatok – Ez egy olyan fordítóoptimalizálás, amely jelentősen csökkenti a kiterített modellek méretét és az utasítások/memória-hozzáférés számát a tenzorok újrafelhasználásával a térhatékonyság javítása érdekében.
  • Csökkentett utasítások – Ez egy olyan fordítóoptimalizálás, amelyet a dekóder nem párnázott változatával használnak, hogy jelentősen csökkentsék az utasítások számát.
  • Többmagos deduplikáció – Ez egy futásidejű optimalizálás, amely a tenzor deduplikáció alternatívája. Ezzel az opcióval minden többmagos modell lényegesen helytakarékosabb lesz.

ResNet50 modell a képosztályozáshoz

A ResNet-50 egy előre betanított mély tanulási modell a képosztályozáshoz. Ez egy konvolúciós neurális hálózat (CNN vagy ConvNet), amelyet leggyakrabban vizuális képek elemzésére alkalmaznak. A következő technikákat alkalmaztuk a modell teljesítményének javítására az Inferentián:

  • Modell transzformáció – A ByteDance számos modellje ONNX formátumban van exportálva, amit az Inferentia jelenleg natívan nem támogat. Ezen ONNX modellek kezeléséhez az AWS Neuron csapata szkripteket biztosított a modelljeink ONNX formátumról PyTorch modellekre való átalakításához, amelyek közvetlenül fordíthatók az Inferentiához a torch-neuron segítségével.
  • Teljesítmény optimalizálás – Szorosan együttműködtünk a AWS Neuron csapata, hogy hangolja az ütemezési heurisztikát a fordítóprogramban, hogy optimalizálja ResNet-50 modelljeink teljesítményét.

Multimodális modell a tartalom moderálásához

Multimodális mély tanulási modellünk több különálló modell kombinációja. Ennek a modellnek a mérete viszonylag nagy, ami modellbetöltési hibákat okozott az Inferentián. Az AWS Neuron csapata sikeresen megoldotta ezt a problémát azáltal, hogy súlymegosztással csökkentette az eszköz memóriahasználatát. A Neuron csapata kiadta ezt a súly-duplikációs funkciót a Neuron libnrt könyvtárában, és továbbfejlesztette a Neuron Tools-t is a pontosabb mutatók érdekében. A futásidejű súly-duplikáció-mentesítő szolgáltatás a következő környezeti változó beállításával engedélyezhető a következtetés futtatása előtt:

NEURON_RT_MULTI_INSTANCE_SHARED_WEIGHTS=1

A frissített Neuron SDK csökkentette a duplikált modelljeink teljes memóriafelhasználását, ami lehetővé tette, hogy multimodális modellünket alkalmazzuk többmagos következtetésekhez.

További modellek áttelepítése az AWS Inferentiába

A ByteDance-nél továbbra is innovatív mély tanulási modelleket alkalmazunk, hogy elragadó felhasználói élményt biztosítsunk közel 2 milliárd havi aktív felhasználónak. Tekintettel a nagy léptékű működésre, folyamatosan keressük a költségek megtakarításának és a teljesítmény optimalizálásának módjait. Folytatjuk a modellek áttelepítését az AWS Inferentiára, hogy kihasználhassuk annak nagy teljesítményét és költséghatékonyságát. Azt is szeretnénk, hogy az AWS több AWS Inferentia alapú példánytípust indítson el, például olyanokat, amelyek több vCPU-val rendelkeznek az előfeldolgozási feladatokhoz. A ByteDance a jövőben további szilícium-innovációt remél az AWS-től, hogy a legjobb ár-teljesítményt nyújtsa az ML alkalmazásokhoz.

Ha többet szeretne megtudni arról, hogyan segíthet az AWS Inferentia költségmegtakarításban, miközben optimalizálja következtetési alkalmazásai teljesítményét, látogassa meg a Amazon EC2 Inf1 példányok termékoldal.


A szerzőkről

A ByteDance akár 60%-ot takarít meg a következtetési költségeken, miközben csökkenti a késleltetést és növeli az átviteli sebességet az AWS Inferentia PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Minghui Yu a ByteDance vezető gépi tanulási csapatának vezetője a következtetésekért. Fókuszterülete az AI Computing Acceleration és a Machine Learning System. Nagyon érdekli a heterogén számítástechnika és a számítógép-architektúra a Moore utáni korszakban. Szabadidejében szereti a kosárlabdát és az íjászatot.

A ByteDance akár 60%-ot takarít meg a következtetési költségeken, miközben csökkenti a késleltetést és növeli az átviteli sebességet az AWS Inferentia PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Jianzhe Xiao a ByteDance AML csapatának vezető szoftvermérnöki csapatának vezetője. Jelenlegi munkája arra összpontosít, hogy segítse az üzleti csapatot a modell telepítési folyamatának felgyorsításában és a modell következtetési teljesítményének javításában. A munkán kívül szívesen zongorázik.

A ByteDance akár 60%-ot takarít meg a következtetési költségeken, miközben csökkenti a késleltetést és növeli az átviteli sebességet az AWS Inferentia PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Tian Shi az AWS vezető megoldási építésze. Fókuszterülete az adatelemzés, a gépi tanulás és a szerver nélküli. Szenvedélyesen segít ügyfeleinek megbízható és méretezhető megoldások tervezésében és felépítésében a felhőben. Szabadidejében szívesen úszik és olvas.

A ByteDance akár 60%-ot takarít meg a következtetési költségeken, miközben csökkenti a késleltetést és növeli az átviteli sebességet az AWS Inferentia PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Jia Dong az AWS ügyfélmegoldásokért felelős vezetője. Szereti megismerni az AWS AI/ML szolgáltatásait, és megoldások kidolgozásával segíti ügyfeleit üzleti eredményeik elérésében. A munkán kívül Jia élvezi az utazást, a jógát és a filmeket.

A ByteDance akár 60%-ot takarít meg a következtetési költségeken, miközben csökkenti a késleltetést és növeli az átviteli sebességet az AWS Inferentia PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Jonathan Lunt az Amazon szoftvermérnöke, aki az ML keretrendszer fejlesztésére összpontosít. Pályafutása során az adattudományi szerepkörök széles skáláján dolgozott, beleértve a modellfejlesztést, az infrastruktúra telepítését és a hardver-specifikus optimalizálást.

A ByteDance akár 60%-ot takarít meg a következtetési költségeken, miközben csökkenti a késleltetést és növeli az átviteli sebességet az AWS Inferentia PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Joshua Hannan gépi tanulási mérnök az Amazonnál. A mély tanulási modellek optimalizálásával foglalkozik nagyszabású számítógépes látás és természetes nyelvi feldolgozó alkalmazások számára.

A ByteDance akár 60%-ot takarít meg a következtetési költségeken, miközben csökkenti a késleltetést és növeli az átviteli sebességet az AWS Inferentia PlatoBlockchain Data Intelligence segítségével. Függőleges keresés. Ai.Shruti Koparkar az AWS vezető termékmarketing-menedzsere. Segít az ügyfeleknek az EC2 gyorsított számítási infrastruktúra felfedezésében, értékelésében és gépi tanulási igényeik kielégítésében.

Időbélyeg:

Még több AWS gépi tanulás