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.
- Aprovechando los Modelos Generativos para Impulsar el Aprendizaje Semi-Supervisado
- Repensando la Integridad Académica en la Era de la IA Un Análisis Comparativo de ChatGPT y Estudiantes Universitarios en 32 Cursos
- ¿Cómo construir un chatbot PDF sin Langchain?
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.
![](https://i0.wp.com/neptune.ai/wp-content/uploads/2023/09/Software-patterns-in-data-science-and-ML-engineering-1920x1005.png?resize=1920%2C1005&ssl=1)
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
![](https://i0.wp.com/neptune.ai/wp-content/uploads/2023/09/Best-practices-for-exploratory-notebooks.png?resize=572%2C572&ssl=1)
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
![](https://i0.wp.com/neptune.ai/wp-content/uploads/2023/09/Best-practices-for-building-ETLs-for-machine-learning.png?resize=552%2C552&ssl=1)
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
![](https://i0.wp.com/neptune.ai/wp-content/uploads/2023/09/Best-Practices-For-Building-Training-and-Inference-Algorithms.png?resize=556%2C556&ssl=1)
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
![](https://i0.wp.com/neptune.ai/wp-content/uploads/2023/09/Best-practices-for-building-and-integrating-ML-experimentation-tooling.png?resize=550%2C550&ssl=1)
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!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Formas de iterar arreglos en JavaScript
- Ejecuta múltiples modelos de IA generativa en GPU utilizando puntos de enlace multi-modelo de Amazon SageMaker con TorchServe y ahorra hasta un 75% en costos de inferencia
- Ajuste fino de Llama 2 para generación de texto en Amazon SageMaker JumpStart
- Crea una aplicación empresarial segura con Generative AI y RAG utilizando Amazon SageMaker JumpStart
- El ‘Equipo de Arte de Arteana’ se reúne el creador independiente Rafi Nizam crea un programa infantil de alta calidad con un presupuesto limitado
- Un legado poderoso la madre del investigador alimentó su pasión por la fusión nuclear
- Analógico y Digital Lo Mejor de Ambos Mundos en un Sistema Eficiente en Energía