Entrevista a Dr. Marco Pedersoli tras su presentación en nuestros seminarios del DaSCI
10 mayo, 2021
Tuvimos la oportunidad de entrevistar al Dr. Marco Pedersoli tras su presentación en nuestros seminarios del DaSCI. El título de su charla fue «Deep Learning eficiente», donde introdujo las los enfoques más utilizados para reducir los requerimientos de los métodos de DL en términos de memoria y computación tanto para el entrenamiento como para el despliegue, y mostró cómo una reducción de la huella del modelo no siempre produce un aumento de velocidad correspondiente. También mostró algunos resultados recientes que sugieren que los modelos de DL de gran tamaño son importantes sobre todo para facilitar el entrenamiento del modelo, y cuando éste termina, se puede desplegar un modelo mucho más pequeño y rápido sin apenas pérdida de precisión.
Dr. Marco Pedersoli (http://profs.etsmtl.ca/mpedersoli/), es profesor adjunto en ETS Montreal. Obtuvo su doctorado en informática en 2012 en la Universidad Autónoma de Barcelona y en el Centro de Visión por Computador de Barcelona. Luego, fue becario postdoctoral en visión por computador y aprendizaje automático en la KU Leuven con el Prof. Tuytelaars y posteriormente en el INRIA Grenoble con los doctores Verbeek y Schmid. En la ETS de Montreal es miembro de LIVIA y copreside una cátedra industrial sobre redes neuronales integradas para el control de edificios conectados. Su investigación se aplica principalmente al reconocimiento visual, la interpretación y la comprensión automáticas de imágenes y vídeos. Su objetivo específico es reducir la complejidad y la cantidad de anotaciones necesarias para los algoritmos de aprendizaje profundo, como las redes neuronales convolucionales y recurrentes. El profesor Pedersoli es autor de más de 40 publicaciones en conferencias y revistas internacionales de primer nivel sobre visión por ordenador y Machine Learning.
{DaSCI} La primera pregunta que queríamos plantear está relacionada con la velocidad de la GPU y los dispositivos de bajo consumo. ¿Sería correcto decir que las GPU son todo lo contrario a la computación verde? ¿Pueden las GPUs ser «verdes» algún día no muy lejano?
{Marco Pedersoli} Tienes razón, por lo que sé, las GPU no son nada eficientes energéticamente. Pero al mismo tiempo, hasta ahora, son la única opción disponible para hacer cálculos sobre muchos datos. Sé que hay muchos, muchos proyectos diferentes que intentan resolver este problema, es decir, ser mucho más eficientes que las GPU. Y también para poder trabajar con datos dispersos, porque uno de los inconvenientes de las GPU es que sólo pueden ser eficientes cuando tienen datos densos. Pero con datos dispersos es un gran problema. Así que, sí, hasta ahora estamos en una fase inicial en la que utilizamos las GPU porque es lo único disponible. Así que con modelos muy grandes, puedes acabar con un coste muy caro en términos de electricidad, y luego en términos de huella. Pero ahora, muchas empresas están tratando de optimizar las GPU para el aprendizaje profundo y esta optimización es en términos, no sólo de computación, sino también en términos de reducción de la huella ecológica.
{DaSCI} ¿Cree que los pequeños grupos de investigación o los grupos con poco presupuesto tendrían dificultades para trabajar con las GPU, es decir, en comparación con las empresas o los grupos de investigación más grandes que tienen más recursos de hardware?
{MP} Sí, por supuesto, hoy en día para poder realizar una buena investigación necesitamos, como siempre, buenas ideas, pero también necesitamos muchos recursos. Esa es una de las razones por las que elegí investigar en computación eficiente. Con la computación eficiente podemos encontrar métodos que funcionan con un presupuesto y unos recursos relativamente bajos, lo que permite a las pequeñas empresas o a los pequeños centros de investigación trabajar en aprendizaje profundo y entrenar sus propios modelos. Pero al mismo tiempo, cuantos más recursos tengamos, mejor. Y para eso creo que es realmente importante que un centro o grupo pequeño se asocie con otros grupos o centros para poder escalar, porque si cada uno se ocupa de sus propias GPUs, realmente no escala. Si empiezas a crear un clúster de GPUs que puedan compartirse entre otras personas, se puede utilizar el mismo recurso de forma más eficiente porque a veces tenemos plazos de entrega y tenemos que utilizar muchos de estos recursos. Otras veces, otras personas tienen una fecha límite, y utilizarán los mismos recursos. Así que es importante ampliar y reunir estos recursos para poder competir con las grandes empresas y sus grandes recursos.
En Canadá, por ejemplo, está muy bien, porque tienen lo que se llama Compute Canada (https://www.computecanada.ca), donde tenemos un gran grupo de ordenadores al que todos los profesores de Canadá pueden acceder. Hay dos formas de acceder a él. Una opción es utilizar el acceso común a todos, donde la prioridad se basa en cuánto lo has utilizado y en cuánta gente lo está utilizando actualmente. La otra opción es aún más interesante, es decir, puedes solicitar recursos. Y entonces, si ganas la subvención, tendrás algunos recursos específicos reservados para ti y para tus proyectos.
{DaSCI} Las GPUs han evolucionado con el tiempo, cada año tienen más potencia de cálculo. ¿Es más fácil tener modelos ya entrenados y más tarde podar y volver a entrenar, o simplemente comprar otra gran GPU y conectarla con las demás? ¿Cuál crees que es el futuro en este campo?
{MP} Eso es lo que pasa con la ciencia, depende mucho de lo que se quiera hacer realmente. Si el objetivo es utilizar un modelo que ya ha sido entrenado en otros datos y, tal vez, adaptarlo a tu dominio específico, enfoques como la poda o la destilación pueden ser buenas ideas. Pero, si realmente quieres evaluar tus modelos en un gran conjunto de datos, también hay otras técnicas que pueden seguir reduciendo el coste computacional de tu modelo utilizando mejores arquitecturas. El entrenamiento puede ser más corto aunque tengas que entrenar con muchos datos. Entonces diré que no hay una solución perfecta, todas tienen pros y contras.
{DaSCI} Normalmente diríamos que si tu problema tiene una representación densa puedes trabajar con GPUs pero, si tienes una representación dispersa, las GPUs no son útiles. Pero, hoy en día, hay una tendencia en la investigación de redes neuronales profundas a nivel de hardware. ¿Podrían entonces las CPUs ser tan eficientes como las GPUs?
{MP} Bueno, si se trabaja a nivel de hardware con CPUs que pueden hacer XORs directamente a bajo nivel (usando barras cruzadas, por ejemplo) se pueden obtener muy buenos aumentos de velocidad. Entonces, una red que normalmente tardaría, digamos un segundo en la GPU, puede tardar lo mismo en la CPU con estas aproximaciones… lo cual es genial. Pero el problema es que el entrenamiento a nivel de hardware se vuelve un poco más complicado. Porque es posible, pero hay que tener en cuenta algunas cosas adicionales. Normalmente, para el entrenamiento, siguen usando punto flotante… en vez de representación binaria. Así que, cuando se trata de inferencia, se puede ser muy rápido en las CPUs, pero cuando se trata de entrenamiento, sigue siendo difícil. Sin embargo, creo que puede ser un tema de investigación interesante poder entrenar buenas redes binarias, sin usar puntos flotantes, que permitan entrenar modelos de aprendizaje profundo directamente en las CPUs. Pero normalmente, el rendimiento es un poco menor, pero sigue siendo una gran ventaja.
{DaSCI} Las redes binarias son muy útiles para la visión por ordenador, pero quizá no sean aplicables a otras cosas, como las redes recurrentes. Entonces, ¿hasta qué punto son específicas de un campo concreto este tipo de arquitecturas?
{MP} Depende mucho de la técnica, pero en general son bastante, bastante generales. Es básicamente la idea del aprendizaje automático, ¿no? Que no quieres preocuparte demasiado por las condiciones específicas del problema, sino que quieres resolver un problema general que se pueda aplicar a diferentes dominios. Las técnicas que presenté en la charla se utilizaron para la visión por ordenador, ya que investigo sobre todo en esta área. Hacen uso de redes neuronales convolucionales y diría que la mayoría de las técnicas que expliqué funcionan muy bien para redes neuronales convolucionales, pero también pueden funcionar con cualquier otro tipo de redes neuronales. Y, sí, no se verían muy afectadas si se cambia el dominio específico. Por supuesto, depende del tipo de datos que tengas. Quizás si los datos de entrada son muy escasos, una técnica puede ser mejor que la otra, pero en general, todas deberían funcionar.
{DaSCI} Cuando el aprendizaje profundo empezó a ponerse de moda, todo el mundo hablaba de él. Pero las redes neuronales artificiales ya tuvieron otro «momento» hace años, y ahora, de alguna manera, está resurgiendo. ¿Esperamos que el aprendizaje profundo esté con nosotros durante mucho tiempo? ¿O será sólo una moda y algo más lo sustituirá? ¿Qué opinas sobre este tema?
{MP} Desde mi punto de vista, creo que tienes razón, que incluso en la investigación tenemos este tipo de tendencias, de modas. Algunos temas se ponen muy de moda y otros no, y deberíamos encontrar la manera de que no sea así. Porque tenemos que ser capaces de seguir direcciones completamente diferentes si realmente queremos encontrar ideas nuevas e interesantes. Es importante asegurarse de que no sólo los temas de moda reciban dinero, sino también otras líneas de investigación. Pero dicho esto, creo que el aprendizaje profundo va a permanecer, porque hemos visto que no se trata solo de una moda, en el sentido de que funciona bien. Requiere, por supuesto, muchos datos y mucho cálculo. Pero para ello, también hay muchas investigaciones que intentan reducir la cantidad de datos que realmente necesitamos, y la cantidad de computación también. Así que en mi opinión, va a permanecer y va a evolucionar. Porque si vemos lo que era el aprendizaje profundo hace 10 años, es muy diferente de lo que es ahora. Así que creo que va a evolucionar y seguir de moda durante mucho tiempo.
{DaSCI} En la charla mencionaste que la poda hace que las redes sean más eficientes, pero también mencionaste que cuando se utilizan arquitecturas típicas (por ejemplo, VGG, AlexNet) se puede llegar a eliminar casi el 90% de todos los pesos manteniendo la misma precisión. Sabemos que hacer esto afectará a la eficiencia, por supuesto, y reducirá el cálculo, pero… tener menos conexiones también podría tener otra ventaja: la interpretabilidad. ¿Lo has evaluado?
{MP} Lo que dices tiene sentido, pero siempre dependerá del orden del que estemos hablando. Por ejemplo, si tenemos un orden de 10 pesos o 10 neuronas, probablemente podamos comprobarlo manualmente. Si es del orden de 1000s o millones, será imposible. Pero sí, no he pensado en eso, se podría aprovechar de alguna manera para entender un poco más lo que pasa dentro de la red neuronal.
Si tienes una buena manera de podar significa que tienes una probabilidad de la importancia de cada característica y tal vez con eso, puedes incluso seleccionar las pocas que tienen la mayor probabilidad o la mayor magnitud y luego comprobarlas: ¿Qué representan?
{DaSCI} Hoy en día se discute sobre la ética y los sesgos en la IA. Para ello, es posible que tengamos que incorporar pequeños algoritmos o filtros en nuestro código para comprobar o trabajar de forma más ética. ¿Podría esta «sobrecarga» frenar el desarrollo de nuevos algoritmos? ¿Cree que los investigadores adaptarán su trabajo para ganar en transparencia?
{MP} Diré que es un poco como conducir, ¿no? Siempre queremos conducir lo más rápido posible. Pero al mismo tiempo se vuelve peligroso. Así que es bueno tener normas y límites de velocidad que nos digan a qué velocidad podemos ir. Y por eso creo que es importante ser ético y evitar los sesgos. Así que, aunque pueda hacer que nuestros métodos sean un poco más lentos, creo que debería emplearse de todos modos. Porque, como he dicho, cuando conducimos, es más importante no tener un accidente y llegar al destino final con seguridad.
{DaSCI} También el consumo de energía y la huella de carbono están empezando a ser reportados en la literatura cuando se trabaja con el aprendizaje profundo. ¿Cree que serán un elemento clave en los futuros trabajos de investigación?
{MP} Sí, creo que es importante por muchas razones. En primer lugar, para dar al menos una idea y una comprensión de lo que se ha hecho. También, en términos de, como ha dicho, la huella de carbono, porque especialmente las grandes empresas pueden alcanzar ciertos niveles de consumo de energía que no tienen ningún sentido. Por ejemplo, optimizar un modelo para poder realizar la inferencia 1,5 veces más rápido que antes puede suponer un gasto de millones de dólares para probar todas las configuraciones posibles que lleven a esta mejora. Así que es importante ver la imagen completa y no sólo el resultado final. Tenemos que ver cómo han llegado hasta ahí, cuántos cálculos han tenido que hacer, porque es injusto, no sólo en términos de ética, sino también en términos de comparación del trabajo de los pequeños laboratorios con los grandes.
Es un poco como cuando se producen algunos bienes. No se trata sólo del coste de producirlos, sino que también hay que tener en cuenta el coste de eliminarlos. A veces las empresas no se preocupan mucho por los materiales que utilizan para ciertos productos porque entonces, la eliminación de estos productos no sería parte de su coste, será parte del coste de la comunidad. Así que intentan optimizar y aunque utilicen materiales que contaminen más, no les importa mucho porque sólo les importa su beneficio y no el coste de la comunidad para eliminar los contaminantes. Quizá la analogía sea un poco exagerada, pero se entiende la idea.
Nos gustaría agradecer al Dr. Pedersoli el tiempo extra que nos dedicó después del seminario y esperamos que su visión sobre los temas que tratamos sea tan interesante para los lectores como lo fue para nosotros.