Uživatelsky přívětivý systém pomáhá vývojářům budovat efektivnější simulace a modely AI
Sdílet na sociálních sítích:
Nový systém automaticky generuje kód, který využívá dvou typů datové redundance, čímž šetří šířku pásma, paměť a výpočetní výkon.

Neuronové sítě a modely umělé inteligence používané v aplikacích, jako je zpracování lékařských snímků a rozpoznávání řeči, provádějí operace na obrovsky komplexních datových strukturách, jejichž zpracování vyžaduje enormní výpočetní výkon. To je jeden z důvodů, proč modely hlubokého učení spotřebovávají tolik energie.
\nAby se zlepšila efektivita modelů AI, výzkumníci z MIT vytvořili automatizovaný systém, který umožňuje vývojářům algoritmů hlubokého učení současně využívat dva typy datové redundance. To snižuje množství výpočtu, šířky pásma a paměťového úložiště potřebného pro operace strojového učení.
\nExistující techniky pro optimalizaci algoritmů mohou být zdlouhavé a obvykle umožňují vývojářům pouze využít buď řídkost (sparsity), nebo symetrii – dva různé typy redundance, které existují v datových strukturách hlubokého učení.
\nTím, že vývojáři umožní vytvořit algoritmus od začátku, který využívá obě redundance zároveň, přístup výzkumníků z MIT zvýšil rychlost výpočtů v některých experimentech téměř 30krát.
\nProtože systém využívá uživatelsky přívětivý programovací jazyk, mohl by optimalizovat algoritmy strojového učení pro širokou škálu aplikací. Systém by také mohl pomoci vědcům, kteří nejsou experty na hluboké učení, ale chtějí zlepšit efektivitu algoritmů AI, které používají ke zpracování dat. Navíc by systém mohl mít uplatnění ve vědeckých výpočtech.
\n„Dlouhou dobu vyžadovalo zachycení těchto datových redundancí velké úsilí při implementaci. Místo toho může vědec našemu systému říci, co by rád vypočítal abstraktnějším způsobem, aniž by systému říkal přesně, jak to vypočítat,“ říká Willow Ahrens, postdoktorand MIT a spoluautor článku o systému, který bude představen na Mezinárodním sympoziu o generování a optimalizaci kódu.
\nK autorům článku patří vedoucí autorka Radha Patel ’23, SM ’24 a hlavní autor Saman Amarasinghe, profesor na Katedře elektrotechniky a informatiky (EECS) a hlavní výzkumník v Laboratoři pro informatiku a umělou inteligenci (CSAIL).
\nVynechání výpočtu
\nVe strojovém učení jsou data často reprezentována a manipulována jako vícerozměrná pole známá jako tenzory. Tensor je podobný matici, což je obdélníkové pole hodnot uspořádaných na dvou osách, řádcích a sloupcích. Na rozdíl od dvojrozměrné matice však může mít tensor mnoho dimenzí nebo os, což ztěžuje manipulaci s tenzory.
\nModely hlubokého učení provádějí operace na tenzorech pomocí opakovaného násobení matic a sčítání – tento proces je způsobem, jak se neuronové sítě učí komplexní vzory v datech. Obrovské množství výpočtů, které je třeba provést na těchto vícerozměrných datových strukturách, vyžaduje enormní výpočetní výkon a energii.
\nAle díky způsobu, jakým jsou data v tenzorech uspořádána, mohou inženýři často zvýšit rychlost neuronové sítě vyloučením redundantních výpočtů.
\nNapříklad pokud tensor reprezentuje data z recenzí uživatelů z e-commerce webu, jelikož ne každý uživatel recenzoval každý produkt, většina hodnot v tomto tensoru je pravděpodobně nulová. Tento typ datové redundance se nazývá řídkost. Model může ušetřit čas a výpočetní výkon tím, že bude ukládat a pracovat pouze s nenulovými hodnotami.
\nKromě toho je někdy tensor symetrický, což znamená, že horní a dolní polovina datové struktury jsou stejné. V tomto případě model potřebuje pracovat pouze s jednou polovinou, čímž se snižuje množství výpočtu. Tento typ datové redundance se nazývá symetrie.
\n„Ale když se pokusíte zachytit obě tyto optimalizace, situace se stává poměrně komplexní,“ říká Ahrens.
\nAby zjednodušili proces, ona a její spolupracovníci vytvořili nový kompilátor, což je počítačový program, který překládá komplexní kód do jednoduššího jazyka, který může být zpracován strojem. Jejich kompilátor, nazvaný SySTeC, může optimalizovat výpočty automatickým využitím jak řídkosti, tak symetrie v tenzorech.
\nZačali proces budování SySTeC identifikací tří klíčových optimalizací, které mohou provést pomocí symetrie.
\nZa prvé, pokud je výstupní tensor algoritmu symetrický, pak je třeba vypočítat pouze jeho polovinu. Za druhé, pokud je vstupní tensor symetrický, pak algoritmus potřebuje načíst pouze jeho polovinu. Konečně, pokud jsou meziprodukty tensorových operací symetrické, algoritmus může přeskočit redundantní výpočty.
\nSoučasné optimalizace
\nPro použití SySTeC zadá vývojář svůj program a systém automaticky optimalizuje jeho kód pro všechny tři typy symetrie. Poté druhá fáze SySTeC provádí další transformace, aby ukládala pouze nenulové datové hodnoty, čímž optimalizuje program pro řídkost.
\nNakonec SySTeC generuje připravený kód.
\n„Tímto způsobem získáváme výhody obou optimalizací. A zajímavá věc na symetrii je, že pokud má váš tensor více dimenzí, můžete dosáhnout ještě větších úspor výpočtu,“ říká Ahrens.
\nVýzkumníci prokázali zrychlení téměř o faktor 30 s kódem automaticky generovaným SySTeC.
\nProtože je systém automatizovaný, mohl by být obzvláště užitečný v situacích, kdy chce vědec zpracovat data pomocí algoritmu, který píše od začátku.
\nV budoucnu chtějí výzkumníci integrovat SySTeC do existujících systémů kompilátorů řídkých tensorů, aby vytvořili bezproblémové rozhraní pro uživatele. Kromě toho by jej chtěli použít k optimalizaci kódu pro složitější programy.
\nTato práce je částečně financována společností Intel, Národní vědeckou nadací, Agenturou pro pokročilé výzkumné projekty v oblasti obrany a Ministerstvem energetiky.
Související články
Humanoidní robot s umělou inteligencí napodobuje lidské emoce a chování
Trénink velkých jazykových modelů k sebe-detoxikaci jejich jazyka
Nebezpečí sdílení informací s nástroji umělé inteligence
Sdílet na sociálních sítích:
Komentáře