La inteligencia artificial es apasionante; El nuevo avance tecnológico que se apoderó de nuestras vidas en menos de un año no se ha detenido desde entonces.
Personalmente, tengo algunos problemas con las herramientas de IA y cómo se utilizan en este momento. Dicho esto, no puedo negar que son un instrumento poderoso cuando se entregan a la persona adecuada para realizar el trabajo correcto, pero como todos sabemos, un gran poder conlleva una gran responsabilidad.
En medio de la emoción y las promesas semicumplidas, ¿nos detuvimos alguna vez a pensar en el costo de ejecutar 1,2,3 mil millones de modelos de parámetros durante horas y horas, escalados en múltiples instancias, para millones de usuarios, todos a la vez?
Siempre fui un defensor del concepto de "web minimalista" (escribiré un artículo sobre el concepto en el futuro; hay mucho que decir). Vivimos en una era en la que, por un lado, todo el mundo parece extremadamente preocupado por la salud del planeta (y con razón). Pero, por otro lado, nadie se para a pensar cuánto nos está costando Internet en su estado actual en términos de energía bruta. ¿Es eficiente? ¿Es verde? Lejos de ahi.
Hace un tiempo, escribí una pequeña herramienta TUI usando Perl ( webmeter ), que monitorea mi tráfico de Internet y agrega la longitud en bytes de los paquetes que se envían y reciben mientras la herramienta se está ejecutando.
Con solo abrir la página principal de Reddit, mi herramienta registró la friolera de 5,85 megabytes de datos transferidos entre mi interfaz y los servidores de Reddit.
Reddit como sitio web es una combinación de texto, imágenes de calidad baja a media y algún que otro vídeo. Parece extremadamente irrazonable que con solo abrir la página principal de Reddit haya transferido tantos datos en todo el planeta (la reproducción automática de videos estuvo desactivada durante las pruebas, este resultado excluye el contenido de video).
La página principal de Reddit, una página que podría haber concluido con 10 kilobytes de contenido, javascript y CSS (quizás unos cuantos kilobytes más para imágenes adicionales), necesitaba 300 veces el ancho de banda sólo para cargarse.
En comparación (teniendo en cuenta que el alunizaje no tuvo lugar en un sótano de Hollywood), el software escrito para la misión Apolo 11 tenía sólo 72 kilobytes de tamaño.
Sólo por diversión, imaginemos miles de millones de personas abriendo la página principal de Reddit, todos juntos, en todo momento, todo el tiempo. Pruebe y piense: ¿cuál es el coste directo de transferir los datos? ¿Cuál es el costo secundario? ¿Cuánta energía estamos desperdiciando como seres consumidores de Internet?
Este concepto ha estado rondando por mi mente durante el último año, y fue la razón principal por la que hackeé mi herramienta Perl en primer lugar. Un pensamiento de "web mínima" llevó a otro, y me di cuenta de que estamos tan consumidos por la exageración (u el odio) que estamos ignorando el costo de nuestros esfuerzos en inteligencia artificial.
¿Precisamente? No podemos. No sin saber cómo funcionan estos servicios: qué CPU o GPU (o chips dedicados) están utilizando. ¿Cuántas instancias están ejecutando, cuál es su carga, cuál es el consumo de energía exacto del hardware crítico, etc.?
Pero podemos llegar a una conclusión bastante realista (aunque no tan precisa) si nos lo proponemos. Elegí Fooocus para este ejemplo, que es la GUI de difusión estable más sencilla (y creo que popular) que existe. Empecemos de forma sencilla:
Usando Fooocus, mi GPU antigua (una Quadro P2000) tardó unos 10 minutos en generar una imagen. Según la tabla de rendimiento del repositorio de Fooocus, sabemos que usar una GPU Nvidia RTX 4XXX nos daría el resultado más rápido. Mi Quadro es algo comparable a una Nvidia GTX 1060, por lo tanto, sabemos que usando una GPU Nvidia GTX 1060 podemos generar una imagen en aproximadamente 10 minutos.
Después de buscar un poco en línea, llegué a la conclusión de que la GPU (empresarial) más utilizada para AI/ML es la Nvidia A100 (hasta 400 W bajo carga).
La Nvidia A100 es una GPU muchísimo más potente que la Nvidia GTX 1060; también está diseñado específicamente para IA y ML. Por lo tanto, supongamos que generar una imagen usando una Nvidia A100 tomará 5 segundos (si alguien que lea esto tiene datos precisos sobre la A100 y su rendimiento, compártalos).
Usando la fórmula E = P * T, el consumo de energía de una GPU Nvidia A100 bajo carga durante 5 segundos cuesta alrededor de 0,5 vatios-hora.
Agregando a este ejemplo: Midjourney (u otros servicios de generación de imágenes de IA) genera 4 imágenes por mensaje. Supongamos que el servicio utiliza una serie de Nvidia A100 para generar las imágenes, lo que significa que el servicio probablemente esté desperdiciando alrededor de 2 vatios-hora de energía por cada mensaje, para cada usuario.
En noviembre de 2023, Midjourney tiene 2,5 millones de DAU.
2Wh x 2,500,000 Users x 24 Hours = 120,000,000Wh (per day, considering every DAU is executing a prompt per hour, in reality, it is much more than that). 120,000,000Wh = 120,000MWh
120.000 megavatios hora podrían alimentar a más de 100.000 hogares durante todo un mes.
Modestamente, servicios como Midjourney, Dall-E o incluso soluciones autohospedadas como Fooocus desperdician al menos 50 millones de vatios-hora por día, cada uno (teniendo en cuenta que sus GPU son de última generación y cada DAU utiliza el servicio unas horas cada día).
Esta cantidad de energía podría alimentar a más de 100.000 hogares de tamaño medio durante un mes al día.
Ten en cuenta que sólo hablamos de servicios de generación de imágenes; No nos olvidemos de todos los demás servicios, como ChatGPT, Gemini, Bard y todas sus versiones y sabores. La lista y el desperdicio continúan.
¿Cómo deberíamos, como desarrolladores, unirnos para abordar este problema emergente? ¿Cómo podemos tomar medidas para educar a otros para que utilicen la energía de manera responsable? Me encantaría escuchar tu opinión sobre este tema y sus posibles soluciones.
También publicado aquí