Anshumali Shrivastava de Rice University dirigió un equipo que demostró cómo implementar tecnología de aprendizaje profundo sin hardware de aceleración especializado como unidades de procesamiento de gráficos. Crédito:Jeff Fitlow / Rice University
Los informáticos de la Universidad de Rice han superado un obstáculo importante en la floreciente industria de la inteligencia artificial al demostrar que es posible acelerar la tecnología de aprendizaje profundo sin hardware de aceleración especializado como las unidades de procesamiento de gráficos (GPU).
Informáticos de Rice, apoyado por colaboradores de Intel, presentará sus resultados hoy en el Centro de Convenciones de Austin como parte de la conferencia MLSys sobre sistemas de aprendizaje automático.
Muchas empresas están invirtiendo fuertemente 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 fabricante de las GPU Tesla V100 Tensor Core estándar de la industria, informó recientemente 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 económica 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 GPU en conjuntos de datos de recomendación a escala industrial con grandes arquitecturas completamente conectadas, "dijo Anshumali Shrivastava, un profesor asistente en la Escuela de Ingeniería Brown de Rice que inventó SLIDE con los estudiantes graduados Beidi Chen y Tharun Medini.
SLIDE no necesita GPU porque adopta un enfoque fundamentalmente diferente para el aprendizaje profundo. La técnica de entrenamiento estándar de "retropropagación" para redes neuronales profundas requiere la multiplicación de matrices, una carga de trabajo ideal para GPU. Con SLIDE, Shrivastava, Chen y Medini convirtieron el entrenamiento de redes neuronales en un problema de búsqueda que, en cambio, podría resolverse con tablas hash.
Esto reduce radicalmente la sobrecarga computacional de SLIDE en comparación con el entrenamiento de retropropagación. Por ejemplo, una plataforma de GPU de primera línea como las de Amazon, La oferta de Google y otros para servicios de aprendizaje profundo basados en la nube tiene ocho Tesla V100 y 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, uno con más de 100 millones de parámetros en grande, redes completamente conectadas que caben en la memoria de la GPU, ", dijo." Lo entrenamos con el mejor paquete (de software) que existe, TensorFlow de Google, y tardó 3 horas y media en entrenar.
"Luego demostramos que nuestro nuevo algoritmo puede realizar 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, neuronas artificiales, son pequeños fragmentos de código informático 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 trabajando juntos pueden aprender a hacer a nivel humano, decisiones de expertos simplemente mediante el estudio de grandes cantidades de datos. Por ejemplo, si una red neuronal profunda está entrenada para identificar objetos en fotos, Empleará neuronas diferentes para reconocer una foto de un gato que para reconocer un autobús escolar.
"No es necesario entrenar todas las neuronas en todos los casos, "Dijo Medini." Pensamos, 'Si solo queremos elegir las neuronas que son relevantes, entonces es un problema de búsqueda '. Entonces, algorítmicamente, la idea era utilizar hash sensible a la localidad para alejarse de la multiplicación de matrices ".
El hash 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 denominada hash. Las tablas hash son listas de hash 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 todo lo que estás haciendo en un problema de multiplicación de matrices, "Dijo Chen." Eso es precisamente de lo que queríamos alejarnos. Así que escribimos nuestro propio código C ++ desde cero ".
Shrivastava dijo que la mayor ventaja de SLIDE sobre la propagación hacia atrás es que se trata de datos en paralelo.
"Por datos paralelos me refiero a que si tengo dos instancias de datos en las que quiero entrenar, digamos que una es la imagen de un gato y la otra de un autobús, probablemente activarán diferentes neuronas, y SLIDE puede actualizar, o entrenar en estos dos de forma independiente, ", dijo." Esta es una utilización mucho mejor 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 él, puede encontrarse con un problema llamado eliminación de caché, donde obtienes una gran cantidad de errores de caché ".
Shrivastava dijo que los primeros experimentos de su grupo con SLIDE produjeron una significativa eliminación de caché, pero sus tiempos de entrenamiento seguían siendo comparables o más rápidos que los tiempos de entrenamiento de la GPU. Entonces el, Chen y Medini publicaron los resultados iniciales en arXiv en marzo de 2019 y subieron su código a GitHub. Unas pocas semanas después, Intel se puso en contacto con ellos.
"Nuestros colaboradores de Intel reconocieron el problema del almacenamiento en caché, ", dijo." Nos dijeron que podían trabajar con nosotros para que el entrenamiento fuera 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 utilizado la 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 ".
Shrivastava dijo que SLIDE es importante porque muestra que hay otras formas de implementar el aprendizaje profundo.
"Todo el mensaje es, 'No nos dejemos embotellar por la matriz de multiplicación y la memoria de la GPU, ", Dijo Chen." 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 ".