domingo, 10 de septiembre de 2023

Reduciendo el uso de recursos en visión artificial



En un post anterior hablaba de la importancia que tiene el empleo de deep learning en las contribuciones a la emisión de gases de efecto invernadero, especialmente durante las fase de aprendizaje. Para optimizar recursos y emitir menos existen varias técnicas, de las que hablaré en alguna otra entrada. En esta ocasión quisiera describir las ventajas que hemos introducido en Aitea para reducir en la medida de lo posible el uso intensivo de hardware en la fase de predicción.  

Antes de nada describamos un poco el contexto. Aitea es un software de visión artificial desarrollado por Aerin Sistemas y que tiene la virtud de ser altamente modular y flexible. Una de sus grandes virtudes es que nos permite introducir, ya sea para ensayar o poner en producción, nuevos algoritmos, sea cual sea su naturaleza. Esta ventaja nace, además de en su diseño, en el hecho de que toda la codificación es nuestra, lo que nos permite introducir prácticamente cualquier descubrimiento que se realice en este campo, siempre y cuando se pueda codificar en una máquina de propósito general. Una línea de investigación consiste en buscar optimizar el uso de los recursos, no solo para ganar rapidez, sino para ahorrar consumos, alargar la vida útil de los equipos y en general ayudar a nuestros clientes y al medio ambiente al mismo tiempo. La versión 1.3 de Aitea incorpora un salto cualitativo con respecto al los consumos en general y de GPU/CPU en particular. En las siguientes líneas quiero mostrar los resultados objetivos con respecto al consumo y uso de la GPU durante la ejecución de Aitea antes y después de introducir las mejoras de la versión 1.3.

Para las pruebas se ejecutaron tres analíticas sobre el mismo equipo, una de reconocimiento facial, otra de seguimiento de personas y una tercera de conteo de personas. Todas estas analíticas se ejecutaron de forma paralela para un total de 17 cámaras en ambientes muy complicados en algunos casos - salas con muchas personas, pasillos con mucho transito, ... -. Lógicamente se trataba de no perder exactitud en los resultados,  solo debía haber impacto en los consumos. Vemos los resultados:


Potencia usada por la GPU a lo largo del tiempo

 En azul podemos ver la versión previa de Aitea, el consumo es lineal ya que el esfuerzo que se realiza es constante ante la presencia de personas. En naranja podemos ver la versión mejorada del software, el esfuerzo ahora es dinámico, se reduce cuando hay que prestar menos atención a una escena y aumenta cuando lo que sucede es de interés. 


Calcular la emisión de CO2 es inmediato, el siguiente gráfico dibuja las emisiones de CO2 emitidas de forma acumulativa. 

Emisiones acumuladas, en azul previa a la nueva versión

A grandes rasgos podemos decir que con la versión previa a la 1.3 las emisiones tras cinco horas de uso eran de 15 gramos frente los 9 con la nueva versión. Esto significa una reducción de un 40% aproximadamente. Estos valores, aunque importantes, pueden parecer insignificantes frente lo conlleva entrenar un modelo de lenguaje como chat GPT3. Sin embargo, si tenemos encuentra que en un edificio de oficinas de cierto tamaño se pueden llegar a usar dos equipos, se concluye que en 24 horas con 20 oficinas analizándose se pueden emitir unos 3 Kg de CO2/día, o lo que es lo mismo, una tonelada al año. Aún queda lejos de las emisiones producidas por el entrenamiento de un modelo con un alto número de parámetros - similar a GPT -, que supera las 200 toneladas. Sin embargo, desde nuestra modesta situación podemos considerar que reducir de 1000 Kg/año a 600 Kg/año es un hito digno de destacar.  También se puede esgrimir que el uso de Aitea esta generando por si mismo unas  emisiones que de otra forma no se realizaría, sin embargo algunos de los datos que ofrece Aitea se están usando para ayudar en la gestión de los sistemas  HVAC, reduciendo las emisiones debidas a calefacción/refrigeración, por lo que podemos considerar que el uso de Aitea - ya sea en su versión 1.3 o en la anterior - esta reduciendo las emisiones de CO2 a la atmósfera gracias a su aplicación.

Además, hay que considerar lo que supone alargar la vida útil de los diferentes componentes, especialmente de la GPU. 

Temperatura de la GPU para una sola tarjeta
   

La temperatura es un valor decisivo a la hora de estimar la vida útil de la GPU, cualquier reducción en ese sentido se traduce en un alargamiento de la vida útil. Como puede comprenderse esto permite reducir el consumo de materias primas escasas como puedan ser los componentes de las GPUs. Estos ensayos se han realizado únicamente durante altas cargas de trabajo, es decir, durante un uso intensivo del edifico, estos resultados podrían ser más llamativos durante los periodos - por la noche - donde la actividad del edificio se reduce considerablemente. Tampoco se han analizado los valores de CPU y sus temperaturas que también se ven reducidas con la versión 1.3. 



No hay comentarios:

Publicar un comentario