Creación De Una Infraestructura De Data Science Desde Cero Para Una App De Recomendaciones En Una Startup

Admond Lee
Apr 03, 2020

Contents Outline

Creación De Una Infraestructura De Data Science Desde Cero Para Una App De Recomendaciones En Una Startup

Apr 03, 2020 8 minutes read

Librerias de machine learning para diferentes tipos de entorno de datos (Fuente: Kosyakov (2016))

Continuando con el anterior post sobre la gestion de datos que todo cientifico de datos debe saber, en este post continuaremos con un caso de estudio.

Construir un producto viable de Data Science implica mucho más que construir un modelo de machine learning con scikit-learn, encurtirlo (pickling) y cargarlo en un servidor.

Requiere una comprensión de cómo todas las partes del ecosistema de la empresa trabajan juntas, comenzando con dónde/cómo los datos fluyen en el equipo de datos, el ambiente donde los datos son procesados/transformados, las convenciones de la empresa para visualizar/presentar datos, y cómo la salida del modelo será convertida como entrada para algunas otras aplicaciones de la empresa.

Los principales objetivos consisten en crear un proceso que sea fácil de mantener; en el que los modelos se puedan iterar y el rendimiento sea reproducible; y en que el resultado del modelo se pueda comprender y visualizar fácilmente para otros interesados a fin de que puedan adoptar decisiones empresariales mejor fundamentadas.

Para alcanzar esos objetivos es necesario seleccionar los instrumentos adecuados, así como comprender lo que hacen los demás integrantes de la industria y las mejores prácticas.

Ilustrémoslo con un escenario: supongamos que usted acaba de ser contratado como data scientist para una startup que está construyendo una aplicación que recomienda vacaciones a sus usuarios y se espera que recoja cientos de gigabytes de datos tanto estructurados (perfiles de clientes, climas, precios y registros de transacciones) como no estructurados (mensajes/comentarios de los clientes y archivos de imágenes) de los usuarios diariamente.

Sus modelos de predicción tendrán que ser reentrenados con nuevos datos semanalmente y hacer recomendaciones instantáneas cada vez que se solicite.

Dado que usted espera que su aplicación sea un gran éxito, su capacidad de recolección, almacenamiento y análisis de datos tendría que ser extremadamente escalable.

¿Cómo diseñaría el proceso de data science y dejaría listos para producción sus modelos? ¿Cuáles son las herramientas que necesitaría para hacer el trabajo? Dado que se trata de una startup y que usted es el principal (senior) - y tal vez el único - científico de datos, está en usted la responsabilidad de tomar estas decisiones.

En primer lugar, habría que averiguar cómo configurar la tubería de datos (data pipeline) que toma los datos en bruto de las fuentes de datos, procesa los datos y alimenta los datos procesados a las bases de datos.

El conducto de datos ideal tiene una baja latencia de eventos (capacidad de consultar los datos tan pronto como se recogen); escalabilidad (capaz de manejar una gran cantidad de datos a medida que el producto se va escalando); consultas interactivas (admite tanto consultas por lotes como consultas interactivas más pequeñas que permiten a los científicos de datos explorar las tablas y los esquemas); creación de versiones (capacidad de realizar cambios en el conducto sin que éste se caiga y se pierdan datos); supervisión (el conducto debe generar alertas cuando los datos dejen de llegar); y pruebas (capacidad de probar el conducto sin interrupciones).

Tal vez lo más importante es que no interfiera con las operaciones comerciales diarias - por ejemplo, rodarán cabezas si el nuevo modelo que está probando hace que su base de datos operativa se detenga.

La construcción y el mantenimiento del conducto de datos suele ser responsabilidad de un ingeniero de datos (para más detalles, este artículo tiene una excelente visión general sobre la construcción del conducto de datos para startups), pero un científico de datos debe estar al menos familiarizado con el proceso, sus limitaciones y las herramientas necesarias para acceder a los datos procesados para su análisis.

A continuación, tendrá que decidir si desea establecer una infraestructura en las instalaciones de la empresa o utilizar servicios en la nube.

Para una startup, la prioridad principal es escalar la recolección de datos sin escalar los recursos operacionales.

Como se mencionó anteriormente, la infraestructura en las instalaciones requiere enormes costos iniciales y de mantenimiento, por lo que los servicios en la nube tienden a ser una mejor opción para las startups.

Los servicios en la nube permiten una escalabilidad que satisface la demanda y requieren un mínimo de esfuerzos de mantenimiento, de modo que su pequeño equipo de personal podría centrarse en el producto y el análisis en lugar de la gestión de la infraestructura.

Ejemplos de proveedores que ofrecen soluciones basadas en Hadoop (Fuente: WikiCommons)

Para elegir un proveedor de servicios en la nube, primero tendría que establecer los datos que necesitaría para el análisis, y las bases de datos y la infraestructura analítica más adecuada para esos tipos de datos.

Dado que habría tanto datos estructurados como no estructurados en su pipeline de análisis, es posible que desee establecer un Data Warehouse y un Data Lake.

Una cosa importante a considerar para los científicos de datos es si la capa de almacenamiento soporta las grandes herramientas de datos que se necesitan para construir los modelos, y si la base de datos proporciona un efectivo análisis dentro de la base de datos.

Por ejemplo, algunas bibliotecas de ML como la MLlib de Spark no pueden utilizarse eficazmente con bases de datos como interfaz principal para los datos - los datos tendrían que ser descargados de la base de datos antes de que se pueda operar en ella, lo que podría ser extremadamente lento a medida que el volumen de datos crece y podría convertirse en un cuello de botella cuando se tiene que volver a entrenar los modelos regularmente (causando así otra situación de "rodar cabezas").

En cuanto a la ciencia de datos en la nube, la mayoría de los proveedores de nubes están trabajando arduamente para desarrollar sus capacidades nativas de aprendizaje automático que permitan a los científicos de datos construir y desplegar modelos de aprendizaje automático fácilmente con datos almacenados en su propia plataforma (Amazon tiene SageMaker, Google tiene BigQuery ML, Microsoft tiene Azure Machine Learning).

Pero el conjunto de herramientas todavía está en desarrollo y a menudo incompleto: por ejemplo, BigQuery ML actualmente sólo admite la regresión lineal, la regresión logística binaria y multiclase, K-means clustering y la importación de modelos de TensorFlow. Si usted decide utilizar estas herramientas, tendría que probar sus capacidades a fondo para asegurarse de que hacen lo que usted necesita que hagan.

Otro aspecto importante a tener en cuenta al elegir un proveedor en la nube es el bloqueo del proveedor. Si elige una solución de base de datos en la nube de propiedad exclusiva, lo más probable es que no pueda acceder al software o a los datos en su entorno local, y cambiar de proveedor requeriría migrar a una base de datos diferente, lo cual podría ser costoso.

Una forma de abordar este problema es elegir proveedores que apoyen las tecnologías de código abierto (aquí está Netflix explicando por qué utilizan software de código abierto).

Otra ventaja de utilizar tecnologías de código abierto es que tienden a atraer a una comunidad más amplia de usuarios, lo que significa que le resultaría más fácil contratar a alguien que tenga la experiencia y los conocimientos necesarios para trabajar dentro de su infraestructura.

Otra forma de abordar el problema es elegir proveedores externos (como Pivotal Greenplum y Snowflake) que ofrezcan soluciones de bases de datos en la nube utilizando otros grandes proveedores en la nube como backend de almacenamiento, lo que también le permite almacenar sus datos en múltiples nubes si eso se ajusta a las necesidades de su startup.

Por último, como se espera que la empresa crezca, habría que poner en práctica una práctica robusta de gestión de la nube para asegurar su nube y evitar la pérdida y fugas de datos, como la gestión del acceso a los datos y la seguridad de las interfaces y las API.

También usted querrá implementar las mejores prácticas de gobierno de datos para mantener la calidad de los datos y asegurar que su Data Lake no se convierta en un Data Swamp.

Como puede ver, hay mucho más en un proyecto de ciencia de datos empresariales que ajustar los hiperparámetros de sus modelos de machine learning. Esperamos que esta visión general de alto nivel le haya entusiasmado para aprender más sobre la gestión de datos, y tal vez aprender algunas cosas para impresionar a los ingenieros de datos de su oficina.
Join our private community in Discord

Keep up to date by participating in our global community of data scientists and AI enthusiasts. We discuss the latest developments in data science competitions, new techniques for solving complex challenges, AI and machine learning models, and much more!