Vytvořte si AI tutoriál na míru! Vyzkoušejte generátor tutoriálů a ušetřete čas.

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:
Napsal: Jan Kubice
Umělá inteligence

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.

Obrázek novinky

Uživatelsky přívětivý systém pomáhá vývojářům budovat efektivnější simulace a modely AI

\n

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.

\n

Aby 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í.

\n

Existují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í.

\n

Tí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.

\n

Protož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.

\n

K 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).

\n

Vynechání výpočtu

\n

Ve 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.

\n

Modely 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.

\n

Ale 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ů.

\n

Napří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.

\n

Kromě 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.

\n

Aby 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.

\n

Začali proces budování SySTeC identifikací tří klíčových optimalizací, které mohou provést pomocí symetrie.

\n

Za 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.

\n

Současné optimalizace

\n

Pro 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.

\n

Nakonec 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.

\n

Výzkumníci prokázali zrychlení téměř o faktor 30 s kódem automaticky generovaným SySTeC.

\n

Protož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.

\n

V 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.

\n

Tato 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

Sdílet na sociálních sítích:

Komentáře

Zatím žádné komentáře. Buďte první, kdo napíše svůj názor!