LabFunctions: lleva tus proyectos al siguiente nivel

Dymaxion Labs
4 min readNov 30, 2022

Comenzamos el 2022 con la gran noticia de haber sido seleccionados por UNICEF como beneficiarios de un bridge funding. Uno de los principales objetivos que nos planteamos lograr fue profundizar el desarrollo de herramientas geoespaciales de código abierto para promover el impacto social.

Redondeando este año, nos complace presentar Lab Functions, un nuevo set de herramientas que facilita el desarrollo y puesta en producción de proyectos de ciencia de datos.

¿Qué es LabFunctions?

Si tenemos que resumirlo en pocas palabras, LabFunctions es un conjunto de herramientas -librerías y servicios- que permite trabajar en todas las etapas de un desarrollo e implementación de software en proyectos que involucren ciencia de datos de una manera más ágil y potente.

La motivación de su creación surge de un problema que detectamos a lo largo de nuestros años de experiencia en el sector: muchas herramientas no eran utilizadas al 100% por falta de fluidez en los entornos de trabajo o bien por no poder acceder a la suficiente fuerza de cómputo.

LabFunctions permite trabajar de manera local en la exploración de datos, la construcción de modelos de machine learning y en su puesta en producción sin alterar el código. Además, provee un servicio de GPU para que la falta de poder computacional propio no sea una barrera.

Puedes acceder a LabFunctions aquí

Una de las principales ventajas de LabFunctions es que propone una nueva manera de encarar proyectos que potencia los aportes y la colaboración entre los diferentes roles que existen en el mundo de los datos.

Sin pasar por alto que el workflow de científicos de datos difiere del de un equipo de ingenieros, buscamos aplicar algunas prácticas que aseguren la reproducibilidad de testeos o etapas experimentales tanto en fases de desarrollo como de producción.

Complementando herramientas con LabFunctions: un caso práctico.

Un caso de uso donde hemos aplicado con éxito LabFunctions fue para un proyecto para la detección y mapeo de áreas verdes en toda la Ciudad Autónoma de Buenos Aires. En él se trabajaron con 2 imágenes de un vuelo aéreo de muy alta resolución (10cm por pixel) de toda la ciudad de dos años distintos.

Para poder entrenar un modelo de aprendizaje automático de detección de áreas verdes con estas imágenes, fue necesario, en primer lugar:

  • Cambiar de formato de archivo (ECW a GeoTIFF).
  • Reproyectar a un mismo sistema de referencia de coordenadas (CRS) para la comparación.
  • Remuestrear las imágenes RGB (rojo-verde-azul) y NIR (infrarrojo cercano), para poder concatenar las bandas y crear una sola imagen de 4 bandas (R, G, B, y NIR).

Dada la alta resolución y extensión de estas imágenes, hacer cualquier tipo de procesamiento es sumamente costoso en cómputo y espacio de disco, y normalmente se requiere trabajar sobre una computadora con altas prestaciones.

LabMachine, una extensión de LabFunctions, nos permitió crear un entorno en el cual nuestros data scientists pudieron implementar y ejecutar este proceso utilizando Jupyter notebooks en máquinas virtuales con los recursos necesarios.

La herramienta permite administrar un volumen (disco) por proyecto, y una o varias máquinas virtuales (VM) de distintas características, que pueden ser utilizadas para distintas etapas del proceso de entrenamiento y predicción. Por ejemplo, para este pre-procesamiento de las imágenes aéreas, se configuró una máquina virtual con 30 GB de RAM y 8 núcleos, pero para el proceso de entrenamiento o predicción se utilizó una de menores prestaciones pero con GPU.

LabFunctions facilitó la detección de áreas verdes en la Ciudad de Buenos Aires.

Todas estas máquinas comparten el mismo volumen, por lo que nos permitió trabajar con los datos (imágenes) en cada etapa del proceso sin tener que trasladarla a espacios de almacenamientos intermedios. Poder definir distintos entornos con distintas capacidades según las necesidades de los procesos nos permitió ser eficientes en el uso de los recursos de cómputo en la nube y bajar los costos y tiempos.

¿Cuáles son los beneficios de las herramientas opensource?

La decisión de que LabFunctions sea completamente open-source no es aleatoria sino que está en la base de todos los proyectos apoyados por el Fondo de Innovación de UNICEF. Con ello se busca generar soluciones de alto impacto que estén disponibles para todo el mundo.

Los modelos abiertos permiten tener un impacto mayor que el que se obtendría en un esquema tradicional de tecnología patentada. Esto es porque abre la puerta a la colaboración con otros profesionales y nuevos talentos, a la innovación en conjunto y a la llegada a nuevos mercados.

En línea con esto, si bien existen otras soluciones similares en el mercado, uno de los distintivos de Lab Functions es que adopta una estrategia multi-cloud, evitando dependencia con un proveedor y otorgando mayor flexibilidad.

Tu también puedes contribuir al desarrollo de LabFunctions

La idea de LabFunctions surge inicialmente de un proyecto de Xavier Petit de Meurville, quien realizó colaboraciones con Dymaxion Labs durante 2022. Junto al equipo de desarrollo, terminaron de darle forma a este proyecto para poder compartirlo con ustedes hoy en formato de código abierto.

Nuestro enfoque open-source no se limita a disponibilizar el código: nos gusta que la gente lo utilice en sus proyectos y que contribuya a él. En nuestro Github podrás reportar errores y cargar pull requests para que sean revisadas por el equipo e incorporadas.

Este proyecto pretende ser un espacio seguro y acogedor para la colaboración, por eso, tenemos un código de conducta para todos los colaboradores.

Además, si tienes alguna duda o consulta con respecto a LabFunctions, puedes contactarnos directamente por nuestras redes sociales o por este medio.

--

--