A Deepgram akár 70 százalékkal több hangot dolgozott fel Trainium2-n

A Deepgram az AWS Trainium2 chipeire optimalizálta Nova-3 beszédfelismerő modelljét. A vállalat offline, kötegelt munkafolyamatokban 11, 70 százalékkal több hangot dolgozott fel ugyanannyi dollárból, mint a korábban használt számítási lehetőségekkel.
- A Deepgram a Nova-3 beszédfelismerő modellt AWS Trainium2-re portolta.
- Egy trn2.3xlarge példányon nyolc modellpéldány fut.
- Az offline feladatokban 11, 70 százalékkal több hangot dolgoztak fel dolláronként.
- A Rust-alapú futtatókörnyezet 7,5 százalékkal gyorsabb volt a többfolyamatos Python-alapértéknél.
- A fejlesztés a SageMaker AI-n saját környezetben futtató ügyfelek számára is hasznos lehet.
A beszédfelismeréstől az ügyfélszolgálati elemzésig
A hangalapú mesterséges intelligencia terjedésével a Deepgram beszédfelismerő, szövegfelolvasó és hangalapú ügynöki modelleket kínál. A vállalat közlése szerint ezek a rendszerek évente kvadrilliónyi hangtokent dolgoznak fel több mint 200 000 fejlesztő és 1400 szervezet számára.
Az ügyfelek a Deepgram API-ján keresztül használhatják a modelleket, vagy saját környezetükben futtathatják őket, többek között az Amazon SageMaker AI szolgáltatásán. A nagy volumenű, kötegelt feladatok, például a kapcsolattartó központok elemzése és az orvosi leiratok készítése, jelentős terhet rónak az infrastruktúra költségkeretére. A Deepgram ezért azt vizsgálta, hogyan lehet hatékonyabban kihasználni az egyes gyorsítók számítási idejét.
A vállalat az AWS-szel együttműködve a Nova-3 beszédfelismerő modellt AWS Trainium2 chipekre vitte át. A cél az offline, áteresztőképességre optimalizált feldolgozás javítása volt.
PyTorchból Trainium2-re, célzott kerneloptimalizálással
A munka a Deepgram szabványos PyTorch-kódjával indult. Az AWS Forward Deployed Engineering csapatával több hónapon át dolgoztak a Nova-3 átültetésén és finomhangolásán. A TorchNeuron, vagyis a Neuron Compiler natív PyTorch-integrációjának segítségével először a modell műveleteit futtatták le Trainium2-n, majd a torch.compile használatával lefordították a modellt.
A fordított változat minden vizsgált műveletet Trainium2-n hajtott végre, CPU-ra történő visszaesést nem találtak. Az enkódert és a dekódert külön, rögzített alakú számítási gráfként fordították le. A pontosságot rétegszinten, a CPU-s kimenetekkel összevetve, valamint a teljes rendszer szintjén, a szóhibaarány, vagyis a WER alapján ellenőrizték.
A teljesítmény javításához több réteget az AWS nyilvános NKI Library könyvtárának előre elkészített kerneleire cseréltek. Ezek között összevont QKV-projekciók, összevont előrecsatolt rétegek és mélységi, egydimenziós konvolúciók szerepeltek. A fejlesztők ezután a Neuron Explorer profilozóeszközzel és a Neuron Agentic Development, röviden NAD eszközkészlettel keresték meg a szűk keresztmetszeteket.
Az egyik kézzel hangolt FFN-kernel a referencia-kernelhez képest 2,0-szer alacsonyabb késleltetést ért el 96-os kötegméretnél. A mélységi konvolúció új változata 1,5-szeres gyorsulást hozott ugyanennél a kötegméretnél. A konvolúciós modulnál a saját fejlesztésű Conv2d-kernel a legfeljebb 32-es kötegméreteknél akár 50-szeres eredményt ért el a vizsgált mutatóban, és lehetővé tette a 32-nél nagyobb kötegméretek fordítását is.
Nyolc modellpéldány egyetlen Trainium2-eszközön
Egy Trainium2-eszköz nyolc fizikai NeuronCore-t tartalmaz, amelyeket alapértelmezés szerint négy logikai NeuronCore-ként tesz elérhetővé. Mivel a Nova-3 egy példánya kényelmesen elfér egyetlen fizikai magon, a Deepgram úgy állította be a rendszert, hogy minden logikai mag egy fizikai magot jelentsen. Így egyetlen Trainium2-eszközön nyolc modellpéldányt tudtak futtatni párhuzamosan.
A Deepgram gyártási kiszolgálási rétege Rust nyelven készült, ezért a modell Trainium2-re portolásához a kiszolgálási útvonalat is át kellett alakítani. A vállalat egy könnyű, Rust-alapú futtatókörnyezetet épített, amely megosztott, munkalopásos sorral koordinálja a modellpéldányokat. A C-réteg közvetlenül tölti be és hajtja végre az előre lefordított NEFF-fájlokat a Neuron Runtime API-n keresztül.
A Rust-alapú megoldást többszálú és többfolyamatos Python-futtatókörnyezetekkel hasonlították össze. A Rust-réteg elhagyja a Python-értelmező többletterhét, és mérsékli a globális értelmezőzár okozta sorosítást is. A legnagyobb előny az alacsony kötegméreteknél jelentkezett, mivel a Nova-3 minden hangdarabhoz több kisebb dekóderhívást végez. A legnagyobb áteresztőképességet adó kötegméretnél a Rust-futtatókörnyezet 7,5 százalékkal múlta felül a többfolyamatos Python-alapértéket.
A Deepgram szerint a felhasználók költségei is csökkenhetnek
Az AWS közlése szerint a végső beállítás egyetlen Amazon EC2 trn2.3xlarge példányon nyolc modellpéldányt futtatott. A Deepgram offline, áteresztőképességre épülő kötegelt munkafolyamataiban ez a konfiguráció 11, 70 százalékkal több hangot dolgozott fel dolláronként, mint a vállalat korábban használt számítási lehetőségei. A számítást az értékelés idején érvényes példányárakkal végezték.
Az AWS szerint a hatékonyabb feldolgozás segíthet a Deepgramnek a szolgáltatás bővítésében, új modellek kiadásában és azok alacsonyabb áron történő eljuttatásában az ügyfelekhez. Az előnyök azokra a felhasználókra is kiterjedhetnek, akik saját virtuális privát felhőjükben futtatják a Deepgram modelljeit az Amazon SageMaker AI-n. A két vállalat ezen a területen a beállítás egyszerűsítésén, a megbízhatóságon és a megfigyelhetőségen is dolgozik.


