Los modelos de inteligencia industrial de la red neuronal utilizados en aplicaciones como el procesamiento de imágenes médicas y el agradecimiento de voz realizan operaciones en estructuras de datos enormemente complejas que requieren una enorme cantidad de cálculo para procesar. Esta es una de las razones por las que los modelos de estudios profundo consumen tanta energía.
Para mejorar la eficiencia de los modelos de IA, los investigadores del MIT crearon un sistema automatizado que permite a los desarrolladores de algoritmos de estudios profundo disfrutar simultáneamente dos tipos de pleonasmo de datos. Esto reduce la cantidad de cálculo, satisfecho de bandada y almacenamiento de memoria necesaria para operaciones de estudios mecánico.
Las técnicas existentes para optimizar los algoritmos pueden ser engorrosos y generalmente solo permiten a los desarrolladores capitalizar la escasez o la simetría, dos tipos diferentes de pleonasmo que existen en las estructuras de datos de estudios profundo.
Al permitir que un desarrollador construya un operación desde cero que aproveche ambas redundancias a la vez, el enfoque del MIT los investigadores aumentó la velocidad de los cálculos en casi 30 veces en algunos experimentos.
Adecuado a que el sistema utiliza un idioma de programación acomodaticio de usar, podría optimizar los algoritmos de estudios mecánico para una amplia tono de aplicaciones. El sistema asimismo podría ayudar a los científicos que no son expertos en el estudios profundo, pero desean mejorar la eficiencia de los algoritmos de IA que usan para procesar datos. Adicionalmente, el sistema podría tener aplicaciones en informática científica.
“Durante mucho tiempo, capturar estas redundancias de datos ha requerido mucho esfuerzo de implementación. En cambio, un sabio puede decirle a nuestro sistema lo que le gustaría calcular de una forma más abstracta, sin decirle al sistema exactamente cómo calcularlo ”, dice Willow Ahrens, un postdoc de MIT y coautor de un Documento sobre el sistemaque se presentará en el Simposio Internacional sobre Coexistentes y Optimización de Código.
Se une al documento por la autora principal Radha Patel ’23, SM ’24 y el autor principal Saman Amarasinghe, profesor en el Sección de Ingeniería Eléctrica y Ciencias de la Computación (EEC) e investigador principal en el Laboratorio de Informática e Inteligencia Químico ( CSail).
Cortar el cálculo
En el estudios mecánico, los datos a menudo se representan y manipulan como matrices multidimensionales conocidas como tensores. Un tensor es como una matriz, que es una matriz cuadrilongo de títulos dispuestos en dos ejes, filas y columnas. Pero a diferencia de una matriz bidimensional, un tensor puede tener muchas dimensiones o ejes, lo que hace que los tensores sean más difíciles de manipular.
Los modelos de estudios profundo realizan operaciones en tensores que utilizan multiplicación y complemento de matriz repetida: este proceso es cómo las redes neuronales aprenden patrones complejos en los datos. El gran grosor de cálculos que deben realizarse en estas estructuras de datos multidimensionales requieren una enorme cantidad de cálculo y energía.
Pero adecuado a la forma en que se organizan los datos en los tensores, los ingenieros a menudo pueden aumentar la velocidad de una red neuronal al eliminar los cálculos redundantes.
Por ejemplo, si un tensor representa datos de revisión del favorecido de un sitio de comercio electrónico, ya que no todos los usuarios revisaron cada producto, la mayoría de los títulos en ese tensor son probablemente cero. Este tipo de pleonasmo de datos se vehemencia dispersión. Un maniquí puede eludir tiempo y cálculo al acumular y proceder solo en títulos distintos de cero.
Adicionalmente, a veces un tensor es simétrico, lo que significa que la parte y la parte superior de la estructura de datos son iguales. En este caso, el maniquí solo necesita proceder en la parte, reduciendo la cantidad de cálculo. Este tipo de pleonasmo de datos se vehemencia simetría.
«Pero cuando intentas capturar ambas optimizaciones, la situación se vuelve conveniente compleja», dice Ahrens.
Para simplificar el proceso, ella y sus colaboradores construyeron un nuevo compilador, que es un software de computadora que traduce un código enrevesado en un idioma más simple que puede procesar una máquina. Su compilador, llamado Systec, puede optimizar los cálculos aprovechando automáticamente tanto la escasez como la simetría en los tensores.
Comenzaron el proceso de construcción de Systec identificando tres optimizaciones esencia que pueden realizar usando simetría.
Primero, si el tensor de salida del operación es simétrico, entonces solo necesita calcular la parte de él. En segundo extensión, si el tensor de entrada es simétrico, entonces el operación solo necesita adivinar la parte de él. Finalmente, si los resultados intermedios de las operaciones tensoras son simétricas, el operación puede prescindir los cálculos redundantes.
Optimizaciones simultáneas
Para usar Systec, un desarrollador ingresa su software y el sistema optimiza automáticamente su código para los tres tipos de simetría. Luego, la segunda escalón de SYSTEC realiza transformaciones adicionales para acumular solo títulos de datos distintos de cero, optimizando el software de dispersión.
Al final, Systec genera código perspicaz para usar.
“De esta forma, obtenemos los beneficios de ambas optimizaciones. Y lo interesante de la simetría es que, como su tensor tiene más dimensiones, puede obtener aún más ahorros en el cálculo ”, dice Ahrens.
Los investigadores demostraron aceleras de casi un hacedor de 30 con código generado automáticamente por Systec.
Adecuado a que el sistema está automatizado, podría ser especialmente útil en situaciones en las que un sabio quiere procesar datos utilizando un operación que escribe desde cero.
En el futuro, los investigadores quieren integrar SYSTEC en los sistemas de compilador tensor dispersos existentes para crear una interfaz perfecta para los usuarios. Adicionalmente, les gustaría usarlo para optimizar el código para programas más complicados.
Este trabajo está financiado, en parte, por Intel, la National Science Foundation, la Agencia de Proyectos de Investigación Descubierta de Defensa y el Sección de Energía.