¿Por qué son necesarias las GPU para entrenar modelos de Aprendizaje Profundo? La mayoría de ustedes habrían escuchado cosas emocionantes al usar el aprendizaje profundo. También habrías oído que Deep Learning requiere una gran cantidad de hardware. He visto a gente entrenar un modelo de aprendizaje profundo simple durante días en sus computadoras portátiles (generalmente sin GPU), lo que da la impresión de que el aprendizaje profundo requiere grandes sistemas para ejecutarse.
Sin embargo, esto es solo en parte cierto y crea un mito sobre el aprendizaje profundo que crea un obstáculo para los principiantes. Numerosas personas me han preguntado qué tipo de hardware sería mejor para hacer un aprendizaje profundo. Con este artículo, espero responderles.
Tabla de contenidos
El aprendizaje profundo requiere un montón de hardware
La primera vez que me introduje con el aprendizaje profundo, pensé que el aprendizaje profundo necesariamente necesita un centro de datos grande para ejecutarse, y que los «expertos en aprendizaje profundo» se sentarían en sus salas de control para operar estos sistemas.
Esto se debe a que en todos los libros a los que me referí o en todas las charlas que escuché, el autor o el orador siempre dicen que el aprendizaje profundo requiere una gran cantidad de capacidad computacional para ejecutarse. ¡Pero cuando construí mi primer modelo de aprendizaje profundo en mi máquina magra, me sentí aliviado! No tengo que asumir ser Google para convertirme en un experto en aprendizaje profundo.
Este es un error común que enfrentan todos los principiantes cuando se sumergen en el aprendizaje profundo. Si bien es cierto que el aprendizaje profundo necesita un hardware considerable para ejecutarse de manera eficiente, no es necesario que sea infinito para realizar su tarea. ¡Incluso puedes ejecutar modelos de aprendizaje profundo en tu computadora portátil!
Sólo un pequeño descargo de responsabilidad; cuanto más pequeño sea su sistema, mayor será el tiempo que necesitará para obtener un modelo capacitado con un rendimiento suficientemente bueno.
Simplemente hagámonos una pregunta simple; ¿Por qué necesitamos más hardware para el aprendizaje profundo?
La respuesta es simple, el aprendizaje profundo es un algoritmo, una construcción de software. Definimos una red neuronal artificial en nuestro lenguaje de programación favorito que luego se convertiría en un conjunto de comandos que se ejecutan en la computadora.
Si tuvieras que adivinar qué componentes de la red neuronal crees que requerirían un recurso de hardware intenso, ¿cuál sería tu respuesta?
Algunos de los candidatos de mi mente son:
- Preprocesamiento de datos de entrada.
- Entrenando el modelo de aprendizaje profundo.
- Almacenando el modelo de aprendizaje profundo entrenado
- Despliegue del modelo
Entre todos estos, la capacitación del modelo de aprendizaje profundo es la tarea más intensiva. Veamos en detalle por qué esto es así.
Entrenando un modelo de aprendizaje profundo.
Cuando entrenas un modelo de aprendizaje profundo, se realizan dos operaciones principales:
- Paso adelantado
- Paso hacia atrás
En el paso hacia adelante, la entrada se pasa a través de la red neuronal y, después de procesar la entrada, se genera una salida. Mientras que en el paso hacia atrás, actualizamos los pesos de la red neuronal sobre la base del error que obtenemos en el pase hacia adelante.
Ambas operaciones son esencialmente multiplicaciones de matrices
Aquí, podemos ver que cada elemento en una fila de la primera matriz se multiplica por una columna de la segunda matriz. Por lo tanto, en una red neuronal, podemos considerar la primera matriz como entrada a la red neuronal, y la segunda matriz puede considerarse como ponderaciones de la red.
Esto parece ser una tarea simple. Ahora solo para darte una idea de qué tipo de aprendizaje profundo de escala, VGG16 (una red neuronal convolucional de 16 capas ocultas que se usa con frecuencia en aplicaciones de aprendizaje profundo) tiene aproximadamente 140 millones de parámetros; Alias pesos y sesgos. ¡Ahora piense en todas las multiplicaciones de matrices que tendría que hacer para pasar solo una entrada a esta red! Tomaría años entrenar este tipo de sistemas si tomamos los enfoques tradicionales.
¿Cómo entrenar tu red neuronal más rápido?
Vimos que la parte computacionalmente intensiva de la red neuronal está formada por múltiples multiplicaciones de matrices. Entonces, ¿cómo podemos hacerlo más rápido?
Simplemente podemos hacer esto haciendo todas las operaciones al mismo tiempo en lugar de hacerlo una después de la otra. Esto es, en pocas palabras, por qué usamos GPU (unidades de procesamiento de gráficos) en lugar de una CPU (unidad de procesamiento central) para entrenar una red neuronal.
Para darle un poco de intuición, volvemos a la historia cuando probamos que las GPU eran mejores que las CPU para la tarea.
Antes del auge del aprendizaje profundo, Google tenía un sistema extremadamente poderoso para realizar su procesamiento, que habían construido especialmente para entrenar redes enormes. Este sistema era monstruoso y tenía un costo total de $ 5 mil millones, con varios grupos de CPU.
Ahora los investigadores en Stanford construyeron el mismo sistema en términos de cómputo para entrenar sus redes profundas utilizando GPU. Y adivina qué; ¡Ellos redujeron los costos a solo $ 33K! Este sistema fue construido usando GPUs, y dio el mismo poder de procesamiento que el sistema de Google. Bastante impresionante verdad?
Leer también: GPGPU el trabajo de la CPU y de la Unidad de procesamiento gráfico; Las supercomputadoras más poderosas del mundo; GPU vs CPU similitudes y diferencias
More from Tecnologia
Beneficios de la computación en la Nube para las empresas
Hoy en día, el centro de datos local de una empresa ya no existe o existen muy pocos. Por supuesto, …
Qué es Kali Linux
¿Qué es Kali Linux? Se trata de una excelente suite de seguridad informática. Sabemos que el ecosistema GNU / Linux …
¿Qué es Ubuntu?
¿Qué es Ubuntu? Para todos los entusiastas del software libre, Ubuntu es un sistema operativo muy conocido. Puede que hayas …