El entrenamiento del cuarto modelo de lenguaje extenso (LLM) de OpenAI, GPT-4, requirió un consumo estimado de 50 Gigavatios-hora, cifra equivalente al consumo eléctrico anual de 5.000 hogares estadounidenses. Esto ocurrió en 2023. Desde entonces, los recursos computacionales destinados al entrenamiento de modelos de frontera han aumentado considerablemente, aunque las cifras exactas de consumo energético son difíciles de obtener.
Ahora, un grupo de investigación de la Universidad de Twente en los Países Bajos ha demostrado que es posible ahorrar hasta un 14 por ciento de la energía utilizada en el entrenamiento de LLMs sin sacrificar velocidad, mediante un ajuste inteligente de la frecuencia de reloj del GPU durante la computación.
¿Cómo funciona el ajuste de frecuencia en GPUs?
Jeffrey Spaan, candidato a doctorado en la Universidad de Twente y autor principal del artículo, presentó estos resultados en la conferencia Computing Frontiers en Catania, Sicilia, el mes pasado. "Mi investigación se centra en detectar el desperdicio computacional", explica Spaan. "Es similar a la subutilización del hardware, pero en lugar de optimizar el software para el hardware, intentamos optimizar el hardware para el software".
Spaan y sus colaboradores lograron esto utilizando una técnica conocida como escalado dinámico de voltaje y frecuencia (DVFS, por sus siglas en inglés). Cada chip, incluyendo los GPUs comúnmente utilizados para entrenar modelos de frontera, emplea al menos un reloj para orquestar las operaciones. Cada acción dentro del chip es activada por un pulso de reloj. La frecuencia con la que ese reloj marca el ritmo controla la velocidad operativa del chip y cuánta energía consume.
Los GPUs modernos poseen dos relojes: uno para el núcleo computacional y otro para la memoria. Cuando el núcleo está trabajando intensamente procesando números, la frecuencia del reloj se mantiene elevada para garantizar cálculos rápidos. Sin embargo, con DVFS, el reloj de la memoria puede reducir su velocidad durante ese periodo, permitiendo un menor consumo energético. En principio, sería posible apagar la parte de memoria del chip, pero los diseños actuales de GPU no permiten un control por software para ese interruptor, y el tiempo de reactivación sería demasiado lento en medio de un cálculo. De manera similar, cuando el núcleo espera datos de la memoria, la frecuencia de reloj del núcleo puede ralentizarse mientras la frecuencia de la memoria aumenta.
La técnica DVFS es conocida desde al menos la década de 1990. No obstante, Spaan señala que otros investigadores no habían podido aplicarla eficazmente al entrenamiento de LLMs porque sus métodos ralentizaban demasiado los cálculos o carecían de la precisión necesaria para mejorar el uso energético.
Intentos previos de DVFS ajustaban la frecuencia en cada iteración del proceso de entrenamiento. En el entrenamiento de un LLM, cada iteración consta de dos partes: el paso hacia adelante (forward pass), donde los datos recorren las capas del modelo con los pesos actuales, y la retropropagación (backpropagation), donde los pesos se ajustan capa por capa basándose en los resultados anteriores. Por ello, los trabajos previos mantenían un valor de frecuencia para el paso hacia adelante y ajustaban otro diferente para la retropropagación.
Spaan y su equipo ajustaron las frecuencias de reloj en una escala de tiempo mucho más breve. Las cargas de trabajo del GPU se dividen en pequeñas unidades computacionales llamadas kernels. Por ejemplo, una multiplicación de vector-vector puede constituir un único kernel. Estos kernels se envían al GPU para ser procesados múltiples veces en paralelo. En la implementación de Spaan, el cálculo de una sola capa de una red neuronal profunda se divide en aproximadamente 40 kernels. Al ajustar las frecuencias de reloj a nivel de cada kernel, el equipo logró encontrar ahorros de energía significativamente mayores.
El GPU también realiza DVFS de forma automática cuando los sistemas internos del chip detectan mayor o menor demanda, señala Spaan. "Algunas personas podrían pensar: simplemente dejaremos que el GPU se encargue", comenta. "Sin embargo, debido a que el GPU no tiene la previsión que nosotros tenemos sobre qué kernels se ejecutarán, debe trabajar con una estimación sobre la marcha, y por lo tanto, nunca puede alcanzar los mismos niveles de ahorro". Ahí es donde intervienen los ajustes manuales.
¿Qué resultados de ahorro se obtuvieron en las pruebas?
El equipo realizó su experimento entrenando GPT-3-xl, un modelo de 1.3 mil millones de parámetros, en un GPU Nvidia RTX 3080 Ti. Para ahorrar tiempo, se enfocaron en entrenar una sola capa del modelo. En esta configuración, encontraron un conjunto de ajustes de frecuencia que proporcionó un 14 por ciento de ahorro energético, mientras que el tiempo de entrenamiento se ralentizó solo un 0.6 por ciento. El rendimiento del modelo depende tanto de la velocidad de cómputo como del consumo energético.
Existe un desafío: reducir la frecuencia de reloj es mucho más rápido que apagar y encender un núcleo, pero aún no es instantáneo. En su experimento, los investigadores evaluaron un kernel a la vez, sin considerar la velocidad de conmutación de frecuencia. Por lo tanto, el 14 por ciento de ahorro energético es un escenario óptimo. Qué tan significativo sea esto en la práctica, dice Spaan, depende en gran medida del GPU utilizado. El hardware más reciente, como los GPUs Blackwell, posee velocidades de conmutación mucho más rápidas que las versiones anteriores y debería ser capaz de aprovechar el ahorro total de energía.
Actualmente, el equipo desarrolla una herramienta capaz de implementar el escalado de frecuencia óptimo automáticamente para una carga de trabajo específica.
Vía IEEE Spectrum.




