Con el auge de la IA provocado por ChatGPT, las GPU se han convertido en la piedra angular de las grandes plataformas de entrenamiento de modelos de IA, e incluso se puede decir que son la base aritmética decisiva. Para responder a la pregunta de por qué se necesita GPU para el entrenamiento de IA, es esencial comprender las principales tecnologías de inteligencia artificial (IA) y aprendizaje profundo.
Inteligencia Artificial y Aprendizaje Profundo
La Inteligencia Artificial es una disciplina con una larga trayectoria. Desde la década de 1950, se ha explorado en diversas direcciones tecnológicas, experimentando varios picos y valles. Los primeros días de la Inteligencia Artificial dieron lugar a un género algo fallido conocido como "Redes Neuronales Artificiales". El concepto detrás de esta tecnología era que la inteligencia del cerebro humano no tiene paralelo y que, para lograr una inteligencia artificial avanzada, la clave es imitar el cerebro humano. El cerebro humano está formado por miles de millones de neuronas interconectadas para formar una vasta e intrincada red neuronal. El cerebro de un bebé es como una pizarra en blanco que, mediante el aprendizaje posnatal, puede alcanzar altos niveles de inteligencia.
Se idearon modelos de neuronas artificiales para inspirarse en las neuronas del cerebro humano. En las neuronas artificiales del lado derecho del diagrama, ajustar el peso de cada entrada y procesarla a través de la neurona produce la salida correspondiente. Cada peso en este contexto se denomina parámetro.
Conectar múltiples neuronas como esta para formar una red da como resultado una red neuronal artificial. Las redes neuronales artificiales suelen constar de una capa de entrada, varias capas ocultas intermedias y una capa de salida.
Estas redes neuronales artificiales son similares al cerebro de un bebé: están vacías y necesitan una gran cantidad de datos para aprender de manera integral y adquirir conocimientos para la resolución práctica de problemas. Este proceso se conoce como "aprendizaje profundo" y se incluye en el subconjunto de "aprendizaje automático".
En el enfoque comúnmente utilizado de “aprendizaje supervisado”, los datos que se alimentan a la IA deben contener tanto el problema como la respuesta. Por ejemplo, si el objetivo es entrenar a la IA para que detecte si una imagen contiene un gato, debemos proporcionarle a la IA muchas imágenes etiquetadas como que contienen un gato, junto con las características definitorias de los gatos. Luego, la IA utilizará estos ejemplos para aprender los patrones y características de los gatos.
El proceso de aprendizaje comienza cuando la IA analiza una imagen determinada utilizando su conjunto inicial de parámetros. Luego compara su conclusión con la respuesta correcta y ajusta las ponderaciones de los parámetros en consecuencia. Este proceso iterativo continúa hasta que la salida de la IA coincide estrechamente con la respuesta correcta.
Este proceso de aprendizaje se llama formación. Generalmente, proporcionar a la IA una gran cantidad de datos con respuestas correctas conocidas dará como resultado mejores resultados del entrenamiento. Una vez que estemos satisfechos con el entrenamiento, podemos probar el rendimiento de la IA en problemas desconocidos. Si la IA puede encontrar las respuestas con precisión, consideramos que el entrenamiento fue exitoso y la IA ha demostrado buenas capacidades de “generalización”.
Como se muestra en el diagrama, la transferencia de pesos de parámetros de una capa de la red neuronal a la siguiente es esencialmente una multiplicación y suma de matrices. Cuanto mayor sea la escala de los parámetros de la red neuronal, más extensos serán los cálculos matriciales necesarios durante el entrenamiento.
Las redes neuronales de aprendizaje profundo más avanzadas pueden tener de cientos de millones a billones de parámetros y requieren grandes cantidades de datos de entrenamiento para lograr una alta precisión. Esto significa que deben procesar una enorme cantidad de muestras de entrada mediante propagación hacia adelante y hacia atrás. Dado que las redes neuronales se construyen a partir de una gran cantidad de neuronas idénticas, estos cálculos son inherentemente muy paralelos. Dadas las enormes demandas computacionales, ¿deberíamos usar una CPU o una GPU?
CPU frente a GPU
La CPU (Unidad Central de Procesamiento) es el cerebro de la computadora, el núcleo del núcleo. Consiste principalmente en una Unidad Lógica Aritmética (ALU) para realizar cálculos y una Unidad de Control (CU) para gestionar el flujo de datos e instrucciones.
Cuando llegan los datos, primero se almacenan en la memoria. Luego, la unidad de control recupera los datos relevantes de la memoria y los pasa a la ALU para su procesamiento. Una vez finalizado el cálculo, el resultado se almacena nuevamente en la memoria.
En los primeros días, una CPU tenía un único conjunto de ALU, CU y caché, y solo podía procesar una tarea a la vez. Para manejar múltiples tareas, la CPU tendría que ponerlas en cola y ejecutarlas secuencialmente, compartiendo los recursos.
Posteriormente, se integraron varios conjuntos de ALU, CU y caché en un solo chip, creando una CPU de múltiples núcleos. Las CPU multinúcleo tienen verdaderas capacidades de procesamiento paralelo.
Normalmente, las CPU modernas tienen desde unos pocos hasta docenas de núcleos. Cuando los teléfonos inteligentes comenzaron a generalizarse, los fabricantes enfatizaron mucho el recuento de núcleos, lo que llevó a una “guerra de núcleos” en el mercado de teléfonos inteligentes. Sin embargo, esta carrera por el número de núcleos finalmente se estancó y los fabricantes de chips se centraron en optimizar el rendimiento del núcleo.
¿Por qué las CPU no integran aún más núcleos? Esto se debe a que la CPU es un procesador de uso general. Sus tareas son muy complejas y requieren que maneje varios tipos de cálculos de datos y responda a las interacciones entre humanos y computadoras. La compleja gestión y programación de tareas requiere unidades de control más sofisticadas y cachés más grandes para mantener una baja latencia al cambiar entre tareas. A medida que aumenta el número de núcleos, también aumenta la sobrecarga de comunicación entre los núcleos, lo que puede degradar el rendimiento de los núcleos individuales. Además, tener más núcleos puede aumentar el consumo de energía y, si la carga de trabajo no se distribuye uniformemente, es posible que el rendimiento general no mejore o incluso disminuya.
GPU, experto en computación paralela
Profundicemos en el ámbito de la GPU. La GPU, también conocida como Unidad de procesamiento de gráficos, fue diseñada originalmente para aliviar la carga de la CPU, acelerando la representación de gráficos tridimensionales, comúnmente utilizados en las tarjetas gráficas de computadora. El procesamiento de imágenes es esencialmente una forma de computación paralela intensiva centrada en matrices. Como se muestra en el diagrama siguiente, la imagen de la izquierda está compuesta por numerosos píxeles y se puede representar naturalmente como una matriz a la derecha.
El término "GPU" ganó popularidad en 1999 con el lanzamiento de Nvidia de la GeForce256, un producto que procesa simultáneamente cada punto de píxel, realizando cálculos paralelos matemáticamente intensivos, como transformaciones gráficas, iluminación y recorte de triángulos para la representación de imágenes.
La competencia de las GPU para manejar computación paralela intensiva se debe a sus diferencias arquitectónicas en comparación con las CPU. Las CPU tienen menos núcleos, y cada núcleo posee un amplio caché y capacidades computacionales sólidas, junto con soporte de hardware para numerosas predicciones de ramas de aceleración y juicios lógicos aún más complejos, lo que las hace adecuadas para manejar tareas complejas.
Por el contrario, las GPU son más sencillas y de fuerza bruta; cada núcleo tiene una potencia computacional y un tamaño de caché limitados, y depende de un mayor número de núcleos para mejorar el rendimiento general. Con una mayor cantidad de núcleos, las GPU pueden realizar múltiples tareas de manera eficiente al procesar un gran volumen de tareas informáticas paralelas simples.
Con el tiempo, las GPU han evolucionado para volverse más versátiles y programables, ampliando su funcionalidad más allá de la representación de imágenes para acelerar la informática de alto rendimiento, el aprendizaje profundo y otras cargas de trabajo. Aprovechando la oportunidad que presenta el aumento de la demanda de computación paralela impulsada por inteligencia artificial, las GPU han pasado de su anterior función periférica a ocupar un lugar central y se han vuelto muy buscadas. El término "GPU" se ha transformado en GPGPU, que denota GPU de uso general. Aprovechar el paralelismo inherente del entrenamiento de IA en GPU aumenta significativamente la velocidad en comparación con el entrenamiento utilizando únicamente CPU, lo que las convierte en la plataforma preferida para entrenar sistemas complejos basados en redes neuronales a gran escala. La naturaleza paralela de las operaciones de inferencia se alinea bien con la ejecución en GPU. Por lo tanto, la potencia computacional proporcionada por las GPU como fuerza principal se denomina “computación inteligente”.
Productos relacionados:
- OSFP-XD-1.6T-4FR2 1.6T OSFP-XD 4xFR2 PAM4 1291/1311nm los 2km SN SMF Módulo transceptor óptico $17000.00
- OSFP-XD-1.6T-2FR4 1.6T OSFP-XD 2xFR4 PAM4 2x CWDM4 TBD Módulo transceptor óptico LC SMF dúplex dual $22400.00
- OSFP-XD-1.6T-DR8 1.6T OSFP-XD DR8 PAM4 1311nm 2km MPO-16 Módulo transceptor óptico SMF $12600.00
- Módulo transceptor óptico OSFP 4x50G FR2 PAM400 4nm 4km DOM Dual Duplex LC SMF compatible con NVIDIA MMS1310X2-NM $4650.00
- NVIDIA MMS4X00-NM-FLT Compatible 800G Twin-port OSFP 2x400G Flat Top PAM4 1310nm 500m DOM Dual MTP/MPO-12 SMF Módulo transceptor óptico $2000.00
- NVIDIA MMA4Z00-NS-FLT Compatible 800 Gb/s Twin-port OSFP 2x400G SR8 PAM4 850nm 100m DOM Dual MPO-12 MMF Módulo transceptor óptico $1400.00
- NVIDIA MMS4X00-NM Compatible 800 Gb/s Puerto doble OSFP 2x400G PAM4 1310nm 500m DOM Dual MTP/MPO-12 Módulo transceptor óptico SMF $2000.00
- NVIDIA MMA4Z00-NS Compatible 800 Gb/s Twin-port OSFP 2x400G SR8 PAM4 850nm 100m DOM Dual MPO-12 MMF Módulo transceptor óptico $1400.00
- NVIDIA MMS1Z00-NS400 Compatible 400G NDR QSFP112 DR4 PAM4 1310nm 500m MPO-12 con módulo transceptor óptico FEC $1350.00
- NVIDIA MMS4X00-NS400 Compatible 400G OSFP DR4 Flat Top PAM4 1310nm MTP/MPO-12 500m SMF FEC Módulo transceptor óptico $1450.00
- Módulo transceptor óptico NVIDIA MMA1Z00-NS400 Compatible 400G QSFP112 SR4 PAM4 850nm 100m MTP/MPO-12 OM3 FEC $990.00
- NVIDIA MMA4Z00-NS400 Compatible 400G OSFP SR4 Flat Top PAM4 850nm 30m en OM3/50m en OM4 MTP/MPO-12 Módulo transceptor óptico FEC multimodo $1100.00