Los científicos informáticos de la Universidad de Rice han superado un obstáculo importante en la floreciente industria de inteligencia artificial al demostrar que es posible acelerar la tecnología de aprendizaje profundo sin hardware de aceleración especializado como unidades de procesamiento de gráficos GPU.
Los informáticos de Rice, con el apoyo de colaboradores de Intel, presentarán sus resultados hoy en el Centro de Convenciones de Austin como parte de la conferencia de sistemas de aprendizaje automático MLSys.
Muchas compañías están invirtiendo mucho en GPU y otro hardware especializado para implementar el aprendizaje profundo, una forma poderosa de inteligencia artificial que está detrás de asistentes digitales como Alexa y Siri, reconocimiento facial, sistemas de recomendación de productos y otras tecnologías. Por ejemplo, Nvidia, el fabricantede las GPU Tesla V100 Tensor Core estándar de la industria, recientemente reportaron un aumento del 41% en sus ingresos del cuarto trimestre en comparación con el año anterior.
Los investigadores de Rice crearon una alternativa que ahorra costos a la GPU, un algoritmo llamado "motor de aprendizaje profundo sub-lineal" SLIDE que utiliza unidades de procesamiento central CPU de propósito general sin hardware de aceleración especializado.
"Nuestras pruebas muestran que SLIDE es la primera implementación algorítmica inteligente de aprendizaje profundo en CPU que puede superar la aceleración de hardware de la GPU en conjuntos de datos de recomendación a escala industrial con grandes arquitecturas totalmente conectadas", dijo Anshumali Shrivastava, profesor asistente en la Escuela Brown de Rice.Ingeniería que inventó SLIDE con los estudiantes de posgrado Beidi Chen y Tharun Medini.
SLIDE no necesita GPU porque adopta un enfoque fundamentalmente diferente del aprendizaje profundo. La técnica de entrenamiento estándar de "propagación inversa" para redes neuronales profundas requiere la multiplicación de matrices, una carga de trabajo ideal para GPU. Con SLIDE, Shrivastava, Chen y Mediniconvirtió el entrenamiento de redes neuronales en un problema de búsqueda que en su lugar podría resolverse con tablas hash.
Esto reduce radicalmente la sobrecarga computacional para SLIDE en comparación con el entrenamiento de propagación hacia atrás. Por ejemplo, una plataforma de GPU de primera línea como las que Amazon, Google y otros ofrecen para servicios de aprendizaje profundo basados en la nube tiene ocho Tesla V100sy cuesta alrededor de $ 100,000, dijo Shrivastava.
"Tenemos uno en el laboratorio, y en nuestro caso de prueba tomamos una carga de trabajo que es perfecta para V100, una con más de 100 millones de parámetros en redes grandes y completamente conectadas que caben en la memoria de la GPU", dijo.con el mejor paquete de software que existe, TensorFlow de Google, y tardó 3 1/2 horas en entrenar.
"Entonces demostramos que nuestro nuevo algoritmo puede hacer el entrenamiento en una hora, no en GPU sino en una CPU de clase Xeon de 44 núcleos", dijo Shrivastava.
Las redes de aprendizaje profundo se inspiraron en la biología, y su característica central, las neuronas artificiales, son pequeñas piezas de código de computadora que pueden aprender a realizar una tarea específica. Una red de aprendizaje profundo puede contener millones o incluso miles de millones de neuronas artificiales, y trabajar juntaspueden aprender a tomar decisiones expertas a nivel humano simplemente estudiando grandes cantidades de datos. Por ejemplo, si una red neuronal profunda está entrenada para identificar objetos en fotos, empleará diferentes neuronas para reconocer una foto de un gato de lo que lo hará.reconocer un autobús escolar
"No es necesario entrenar a todas las neuronas en cada caso", dijo Medini. "Pensamos: 'Si solo queremos elegir las neuronas que son relevantes, entonces es un problema de búsqueda'. Entonces, algorítmicamente, ella idea era utilizar el hash sensible a la localidad para alejarse de la multiplicación de matrices "
Hashing es un método de indexación de datos inventado para la búsqueda en Internet en la década de 1990. Utiliza métodos numéricos para codificar grandes cantidades de información, como páginas web enteras o capítulos de un libro, como una cadena de dígitos llamada hash. Las tablas Hash son listasde hashes que se pueden buscar muy rápidamente.
"No habría tenido sentido implementar nuestro algoritmo en TensorFlow o PyTorch porque lo primero que quieren hacer es convertir lo que esté haciendo en un problema de multiplicación de matrices", dijo Chen. "Eso es precisamente lo que queríamosalejarse de. Así que escribimos nuestro propio código C ++ desde cero "
Shrivastava dijo que la mayor ventaja de SLIDE sobre la retropropagación es que son datos paralelos.
"Por datos paralelos quiero decir que si tengo dos instancias de datos en las que quiero entrenar, digamos que una es una imagen de un gato y la otra de un autobús, probablemente activarán diferentes neuronas, y SLIDE puede actualizarse,o entrenar en estos dos de forma independiente ", dijo." Esta es una mejor utilización del paralelismo para las CPU.
"La otra cara, en comparación con la GPU, es que necesitamos una gran memoria", dijo. "Hay una jerarquía de caché en la memoria principal, y si no tiene cuidado con ella, puede encontrarse con un problema llamado almacenamiento en caché, donde obtienes muchos errores de caché "
Shrivastava dijo que los primeros experimentos de su grupo con SLIDE produjeron una gran pérdida de memoria caché, pero sus tiempos de entrenamiento aún eran comparables o más rápidos que los tiempos de entrenamiento de GPU. Entonces, Chen y Medini publicaron los resultados iniciales en arXiv en marzo de 2019 y subieron su código aGitHub. Unas semanas más tarde, fueron contactados por Intel.
"Nuestros colaboradores de Intel reconocieron el problema del almacenamiento en caché", dijo. "Nos dijeron que podían trabajar con nosotros para que entrenara aún más rápido, y tenían razón. Nuestros resultados mejoraron en aproximadamente un 50% con su ayuda".
Shrivastava dijo que SLIDE aún no se ha acercado a alcanzar su potencial.
"Acabamos de arañar la superficie", dijo. "Todavía hay mucho que podemos hacer para optimizar. No hemos usado vectorización, por ejemplo, o aceleradores integrados en la CPU, como Intel Deep Learning Boost.Hay muchos otros trucos que aún podríamos usar para hacer esto aún más rápido ".
Dijo que SLIDE es importante porque muestra que hay otras formas de implementar el aprendizaje profundo.
"Todo el mensaje es: 'No nos veamos atrapados por la matriz de multiplicación y la memoria de la GPU'", dijo Shrivastava. "El nuestro puede ser el primer enfoque algorítmico para vencer a la GPU, pero espero que no sea el último. El campo necesita nuevas ideas, y eso es una gran parte de lo que se trata MLSys ".
Fuente de la historia :
Materiales proporcionado por Universidad de Rice . Nota: El contenido puede ser editado por estilo y longitud.
Cita esta página :