Patrones de Ingeniería de Software para Aprendizaje Automático

Patrones de Ingeniería de Software para Aprendizaje Automático' can be condensed as 'Patrones para Aprendizaje Automático en Ingeniería de Software'.

¿Alguna vez has hablado con tus compañeros ingenieros de Front-end o Back-end y has notado cuánto les importa la calidad del código? Escribir código legible, reutilizable y eficiente siempre ha sido un desafío en la comunidad de desarrollo de software. Conversaciones interminables ocurren todos los días a través de solicitudes de extracción en Github y hilos en Slack sobre este tema.

Cómo adaptar mejor los principios SOLID, cómo utilizar patrones de software efectivos, cómo dar los nombres más apropiados a funciones y clases, cómo organizar los módulos de código, etc. Todas estas discusiones pueden ser simples y ingenuas a primera vista, pero las implicaciones son altas y ampliamente conocidas por los desarrolladores senior. El costo de refactorización, el rendimiento, la reutilización, la legibilidad o, simplemente, la deuda técnica pueden obstaculizar la capacidad de una empresa para crecer de manera sostenible.

Esta situación no es diferente en el mundo del aprendizaje automático (ML). Los científicos de datos e ingenieros de ML suelen escribir mucho código. Hay conjuntos de bases de código muy diferentes con los que trabajan estos perfiles. Desde escribir código para realizar análisis exploratorios, código de experimentación para modelado, ETL para crear conjuntos de datos de entrenamiento, código de Airflow (u otro similar) para generar DAG, APIs REST, trabajos de transmisión, trabajos de monitoreo, etc.

MLOps es una extensión de DevOps. No una bifurcación

Todos ellos tienen objetivos muy diferentes, algunos no son críticos para la producción, otros sí, lo más probable (y honestamente), nunca serán leídos nuevamente por otro desarrollador, algunos pueden no romper la producción directamente pero tienen implicaciones sutiles y arriesgadas en el negocio, y obviamente, otros pueden causar un impacto severo en el usuario final o en los interesados del producto.

Patrones de software en ciencia de datos e ingeniería de ML | Fuente: Autor

En esta lista de artículos, repasaré todos estos diferentes tipos de bases de código desde un punto de vista muy honesto y pragmático, tratando de dar consejos y sugerencias para producir código de ML de alta calidad en producción. Pondré ejemplos del mundo real de mi propia experiencia trabajando en diferentes tipos de empresas (grandes corporaciones, startups) y de diferentes sectores (banca, venta al por menor, telecomunicaciones, educación, etc).

Mejores prácticas para cuadernos de exploración

Mejores prácticas para cuadernos de exploración | Fuente: Autor

Uso efectivo de Jupyter Notebooks para conocimientos empresariales

Comprende la utilización estratégica de Jupyter Notebooks desde una perspectiva de conocimientos empresariales y de producto. Descubre técnicas para aumentar su impacto en los análisis.

Creación de cuadernos con un propósito para análisis

Aprende el arte de adaptar los Jupyter Notebooks para análisis exploratorios y ad-hoc. Refina tus cuadernos para incluir solo contenido esencial que ofrezca los insights más claros sobre las preguntas planteadas.

Adaptación del lenguaje para diferentes audiencias

Ten en cuenta a la audiencia (técnica o con conocimientos empresariales) en tus esfuerzos de cuadernos. Utiliza terminología avanzada cuando sea apropiado, pero equilíbralo con un resumen ejecutivo sencillo que comunique las conclusiones clave de manera efectiva.

Optimización del diseño del cuaderno para mayor claridad

Descubre un diseño sugerido para estructurar los cuadernos que aumenta la claridad y comprensión. Organiza tu contenido para guiar a los lectores a través del análisis de manera lógica.

Trucos de reproducibilidad para insights confiables

Explora tácticas para garantizar la reproducibilidad de tus análisis basados en cuadernos. Descubre trucos y estrategias que contribuyen a mantener la confiabilidad de tus hallazgos.

Mejores prácticas para construir ETLs para ML

Mejores prácticas para construir ETLs para ML | Fuente: Autor

La importancia de los ETLs en proyectos de aprendizaje automático

Explorando un aspecto fundamental de cada proyecto de aprendizaje automático: los ETLs. Estas combinaciones de código Python y SQL desempeñan un papel crucial, pero pueden ser desafiantes de mantener robustas durante toda su vida útil.

Construyendo un modelo mental para los componentes ETL

Aprende el arte de construir una representación mental de los componentes dentro de un proceso ETL. Esta comprensión forma la base para una implementación efectiva y te permitirá entender rápidamente cualquier framework de código abierto o de terceros (¡incluso construir el tuyo propio!).

Aceptando las mejores prácticas: estandarización y reusabilidad

Descubre las mejores prácticas esenciales en torno a la estandarización y reusabilidad. Implementar estas prácticas puede mejorar la eficiencia y consistencia de los flujos de trabajo ETL.

Aplicando principios de diseño de software a la ingeniería de datos

Sumérgete en la integración de principios y patrones concretos de diseño de software dentro del ámbito de la ingeniería de datos. Explora cómo estos principios pueden elevar la calidad de tu trabajo ETL.

Direcciones y trucos arquitectónicos para pipelines de datos robustos

Obtén información sobre una amplia gama de directivas y estrategias arquitectónicas diseñadas para el desarrollo de pipelines de datos altamente confiables. Estos conocimientos están especialmente seleccionados para aplicaciones de aprendizaje automático.

Tutorial de ETL en profundidad en Machine Learning [Estudio de caso]

Mejores prácticas para construir algoritmos de entrenamiento e inferencia

Mejores prácticas para construir algoritmos de entrenamiento e inferencia | Fuente: Autor

La naturaleza del entrenamiento en el aprendizaje automático

El entrenamiento a menudo se percibe como una parte atractiva e imaginativa de las tareas de aprendizaje automático. Sin embargo, tiende a ser relativamente sencillo y breve, especialmente al desarrollar la iteración inicial del modelo. La complejidad puede variar según el contexto empresarial, con ciertas aplicaciones que requieren un desarrollo más riguroso que otras (por ejemplo, modelos de riesgo versus sistemas de recomendación).

Patrones fundamentales para simplificar el entrenamiento

Para agilizar el proceso de entrenamiento y reducir el código repetitivo, se pueden establecer patrones fundamentales. Estos patrones sirven como base para evitar la codificación excesiva para cada procedimiento de entrenamiento. Al adoptar estos patrones, los científicos de datos pueden dedicar más atención al análisis del impacto y rendimiento del modelo.

Transición a producción y desafíos

Después de construir el modelo de aprendizaje automático, el siguiente paso es su transición a un entorno de producción. Este paso introduce una serie de desafíos, como garantizar la disponibilidad de características, alinear adecuadamente las características, administrar la latencia de inferencia y más. Abordar estos desafíos de antemano es crucial para una implementación exitosa.

Diseño holístico para sistemas de aprendizaje automático

Para mitigar posibles problemas durante la implementación en producción, se recomienda un enfoque holístico para el diseño de sistemas de aprendizaje automático. Esto implica considerar la arquitectura y los componentes de todo el sistema, incluyendo el entrenamiento, la inferencia, los pipelines de datos y la integración. Al adoptar una perspectiva integral, se pueden identificar y resolver problemas potenciales en las primeras etapas del proceso de desarrollo.

Mejores prácticas para construir e integrar herramientas de experimentación de aprendizaje automático

Mejores prácticas para construir e integrar herramientas de experimentación de aprendizaje automático | Fuente: Autor

El papel de la experimentación en el aprendizaje automático

Sumérgete en el papel fundamental de la experimentación de aprendizaje automático. Explora cómo moldea el proceso de perfeccionamiento de modelos y optimización de su rendimiento.

Optimizando modelos a través de experimentos offline

Descubre el ámbito de los experimentos offline, donde se varían sistemáticamente los hiperparámetros del modelo para mejorar métricas clave como ROC y precisión. Descubre estrategias para lograr resultados óptimos en este entorno controlado.

Navegando la experimentación en línea: pruebas A/B y más allá

Explora el ámbito dinámico de la experimentación en línea, centrándote en las pruebas A/B y sus iteraciones avanzadas. Aprende cómo estas técnicas permiten la evaluación del rendimiento del modelo en el mundo real, adaptada al comportamiento del usuario.

Cerrando la brecha: de las métricas offline al impacto en el producto

Comprende la conexión crucial entre los esfuerzos del equipo de Ciencia de Datos para mejorar las métricas del modelo y el impacto final en el éxito del producto. Aprende estrategias para correlacionar de manera efectiva las mejoras en las métricas offline con los resultados del producto en el mundo real.

Técnicas de alineación: mejoras en el modelo y métricas del producto

Sumérgete en técnicas y enfoques que facilitan la alineación de las mejoras iterativas del modelo con métricas de producto tangibles, como la retención y tasas de conversión. Obtén información sobre cómo lograr una sinergia armoniosa entre las mejoras basadas en datos y los objetivos comerciales.

¿Qué sigue?

Ya hemos visto que en ML, la calidad del código es tan crucial como en el desarrollo de software tradicional. Los científicos de datos y los ingenieros de aprendizaje automático trabajan con varios conjuntos de código, cada uno con diferentes propósitos y con diferentes grados de impacto en el negocio y los usuarios finales. En esta lista, hemos explorado los aspectos clave de la producción de código de ML de alta calidad, cubriendo desde la exploración de conjuntos de datos hasta la implementación de herramientas de experimentación.

Con estos artículos, nuestro objetivo es brindarte una perspectiva integral, compartiendo conocimientos, consejos e información valiosa que pueden elevar tu código de producción de ML a nuevos niveles. Adopta estas mejores prácticas y estarás bien preparado para superar desafíos, minimizar la deuda técnica y ayudar al crecimiento de tu equipo.

Entonces, ya seas un aspirante a practicante de ML o un profesional experimentado, prepárate para mejorar tu experiencia en programación y asegurar el éxito de tus proyectos de aprendizaje automático. ¡Sumérgete en los artículos ahora y lleva tu estrategia de MLOps a niveles sin precedentes!

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Amplios horizontes La presentación de NVIDIA señala el camino hacia nuevos avances en Inteligencia Artificial

Los avances dramáticos en el rendimiento del hardware han dado lugar a la IA generativa y a una rica variedad de idea...

Inteligencia Artificial

Investigadores de la Universidad de Zurich desarrollan SwissBERT un modelo de lenguaje multilingüe para los cuatro idiomas nacionales de Suiza

El famoso modelo BERT ha sido recientemente uno de los principales modelos de lenguaje para el procesamiento del leng...

Inteligencia Artificial

Descubriendo el impacto de la IA generativa en la narración de datos y el análisis

Introducción En el amplio campo de la analítica de datos, uno de los desarrollos más profundos que cambia el juego es...

Inteligencia Artificial

Libre de Limitaciones La Validación de las Alucinaciones de la Máquina en el MoMA

El científico de datos principal en Refik Anadol Studio, Christian Burke, relata su experiencia trabajando en la exhi...

Inteligencia Artificial

Investigadores de Stanford y Microsoft presentan Inteligencia Artificial de Auto-Mejora Aprovechando GPT-4 para elevar el rendimiento del programa de andamiaje.

Casi todos los objetivos descritos en lenguaje natural pueden optimizarse mediante la consulta a un modelo de lenguaj...