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

Datos portables predijeron las infecciones por COVID

¿Está cerca la convergencia entre los dispositivos vestibles para consumidores y los dispositivos médicos?

Inteligencia Artificial

Investigadores de Corea del Sur proponen VITS2 un avance en los modelos de síntesis de voz de una sola etapa para una mayor naturalidad y eficiencia.

El artículo presenta VITS2, un modelo de síntesis de texto a voz de una sola etapa que sintetiza un habla más natural...

Inteligencia Artificial

Los científicos de la computación utilizan la IA para identificar aplicaciones riesgosas

Brian Levine de la Universidad de Massachusetts Amherst y una docena de científicos informáticos han desarrollado un ...

Aprendizaje Automático

Conoce BITE Un Nuevo Método Que Reconstruye la Forma y Poses 3D de un Perro a Partir de una Imagen, Incluso con Poses Desafiantes como Sentado y Acostado.

Múltiples campos, incluyendo la biología y la conservación, así como el entretenimiento y el desarrollo de contenido ...

Inteligencia Artificial

Desbloqueando el poder del contexto con Google IA una competencia entre prefixLM y causalLM en el aprendizaje en contexto

La Guerra de Troya es famosa, donde Aquiles grabó su nombre en la historia para siempre al derrotar al príncipe Hécto...

Inteligencia Artificial

Microsoft redefine los 7 TB de 'Project Silica' como solución de almacenamiento en la nube usando vidrio como medio

Microsoft dijo que su tecnología de almacenamiento de medios de vidrio Project Silica puede conservar aproximadamente...