Meta AI Open Sources AITemplate (AIT), un marc de Python que transforma xarxes neuronals profundes en codi C++ per accelerar els serveis d’inferència

Les GPU són crucials per oferir la potència computacional necessària per desplegar models d’IA per a models preentrenats a gran escala en diversos dominis d’aprenentatge automàtic com la visió per computador, el processament del llenguatge natural i l’aprenentatge multimodal. Actualment, els professionals de la IA tenen ara una opció mínima pel que fa a l’elecció de solucions d’inferència de GPU d’alt rendiment a causa de la seva naturalesa específica de la plataforma. Un sistema d’aprenentatge automàtic creat per a la GPU d’una empresa s’ha de reimplementar completament per funcionar amb maquinari d’un proveïdor de tecnologia diferent. A causa de les dependències de maquinari en entorns d’execució complicats, és difícil mantenir el codi que constitueix aquestes solucions. A més, les canonades de producció d’IA sovint necessiten un desenvolupament ràpid. Tot i que els conjunts d’eines de programari propietari com TensorRT ofereixen opcions de personalització, sovint no satisfan aquesta demanda. Reduint encara més l’agilitat de desenvolupament, la solució patentada pot dificultar la depuració del codi ràpidament.

Meta AI ha creat AITemplate (AIT), una solució d’inferència unificada de codi obert amb diferents back-ends d’acceleració per a la tecnologia GPU AMD i NVIDIA, per abordar aquestes dificultats de la indústria. En una sèrie de models d’IA populars, incloses xarxes neuronals convolucionals, transformadors i difusors, ofereix un rendiment gairebé idèntic al de les arquitectures natives de maquinari Tensor Core (NVIDIA GPU) i Matrix Core (AMD GPU). L’equip va millorar el rendiment fins a 12 vegades a les GPU NVIDIA quan s’utilitzava AIT i 4x a les GPU AMD quan s’utilitzava el mode ansiós de PyTorch. Actualment, AITemplate està habilitat als sistemes GPU A100 de NVIDIA i MI200 d’AMD, que s’utilitzen habitualment en centres de dades d’empreses tecnològiques, instal·lacions de recerca i proveïdors de serveis de computació en núvol.

AITemplate és un sistema Python que converteix models d’IA en codi de plantilla GPU C++ d’alt rendiment per accelerar la inferència. Una capa frontal que realitza diverses transformacions de gràfics per optimitzar el gràfic i una capa de fons que produeix plantilles de nucli C++ per a l’objectiu de la GPU conformen el sistema. La visió darrere del marc és suportar l’alta velocitat mantenint la simplicitat. El projecte inclou diversos avenços de rendiment, com ara la fusió millorada del nucli, una tècnica d’optimització que unifica diversos nuclis en un sol nucli per operar-los de manera més eficaç i optimitzacions avançades de blocs de transformadors. Aquestes millores augmenten dràsticament l’ús dels nuclis de matriu d’AMD i els nuclis de tensor de NVIDIA, donant com a resultat un rendiment d’avantguarda. A més, AIT manté la seva dependència de biblioteques externes al mínim.

Gràcies al seu suport per a tres optimitzacions avançades (fusions verticals, horitzontals i de memòria), AITemplate compta amb un dels sistemes de fusió del nucli més sofisticats del negoci. A més, el fet de ser fàcil de desplegar fa que AITemplate sigui una solució viable. Es crea un binari independent i autònom que conté el model d’IA. Aquest binari té una bona compatibilitat enrere perquè pot funcionar en qualsevol entorn amb el mateix maquinari i versions CUDA 11 / ROCM 5 més recents. A més, AITemplate ofereix models preconstruïts d’ús habitual (per exemple, VisionTransformer, BERT, Stable Diffusion, ResNet i MaskRCNN). Això simplifica el procediment de desplegament i facilita que els professionals puguin desplegar models prèviament entrenats de PyTorch. La plantilla Python Jinja2 i la plantilla GPU Tensor Core/Matrix Core C++ són les dues capes de sistemes de plantilles que formen l’AITtemplate. Després de perfilar a Python, el sistema converteix la plantilla Jinja2 en codi C++ per determinar la configuració òptima del nucli. El codi binari final del model es crea compilant el codi font generat mitjançant el compilador GPU C++. Els usuaris poden convertir els seus models des d’una varietat de marcs, inclòs PyTorch, a AITemplate a causa del seu disseny frontal, que és similar a PyTorch.

A més d’augmentar el nombre de plataformes disponibles per a la IA, Meta AI espera desenvolupar tècniques que també puguin ajudar a resoldre problemes ambientals reduint les emissions de carboni. Segons els estudis, l’ús de GPU pot influir en les emissions de carboni. AITemplate accelera l’execució de la GPU, cosa que pot minimitzar encara més les emissions. En resum, AITemplate ofereix un rendiment d’avantguarda per a les GPU AMD i NVIDIA de la generació actual i les properes amb una complexitat del sistema mínima. No obstant això, segons els investigadors, només estan al començament del desenvolupament d’un motor d’inferència d’IA d’alt rendiment. Estan intentant activament millorar AITemplate amb noves optimitzacions i suport complet per a formes dinàmiques. Els seus objectius a llarg termini inclouen expandir AITemplate a més plataformes de maquinari de diferents proveïdors de tecnologia. Meta pretén crear un ecosistema per a la inferència d’IA que sigui més verd i eficaç, amb un rendiment, flexibilitat i opcions de fons més notables i el desenvolupament d’AITemplate és un pas en aquesta direcció.

This Article is written as a research summary article by Marktechpost Staff based on the research article 'Faster, more flexible inference on GPUs using AITemplate, a revolutionary new inference engine'. All Credit For This Research Goes To Researchers on This Project. Check out the code and reference article.

Please Don't Forget To Join Our ML Subreddit


Khushboo Gupta és consultor en pràctiques a MarktechPost. Actualment està cursant el seu B.Tech a l’Institut Indi de Tecnologia (IIT), Goa. És una apassionada dels camps de l’aprenentatge automàtic, el processament del llenguatge natural i el desenvolupament web. Li agrada aprendre més sobre l’àmbit tècnic participant en diversos reptes.


Leave a Comment

Your email address will not be published. Required fields are marked *