En este curso, presentamos un enfoque de aprendizaje basado en proyectos para enseñar MLOps. El curso se centra en la demostración y la experiencia con prácticas y herramientas de ingeniería de software emergentes con el fin de automatizar la construcción de componentes habilitados para ML (aprendizaje automático, o machine learning). El curso incluye sesiones de laboratorio que cubren el ciclo de vida de los componentes de ML de extremo a extremo, desde la creación de modelos hasta la implementación de producción.
Profesorado
Responsable
Silverio Juan Martínez Fernández (
)
Otros
Matías Sebastián Martínez Martínez (
)
Santiago Del Rey Juarez (
)
Horas semanales
Teoría
1.8
Problemas
0
Laboratorio
1.8
Aprendizaje dirigido
0
Aprendizaje autónomo
6.4
Competencias
Competencias Transversales
Sostenibilidad y compromiso social
CT2 - Conocer y comprender la complejidad de los fenomenos economicos y sociales tipicos de la sociedad del bienestar; capacidad para relacionar el bienestar con la globalizacion y la sostenibilidad; habilidad para utilizar de forma equilibrada y compatible la tecnica, la tecnologia, la economia y la sostenibilidad.
Trabajo en equipo
CT3 - Ser capaz de trabajar como miembro de un equipo interdisciplinar ya sea como un miembro mas, o realizando tareas de direccion con la finalidad de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles.
Lengua extranjera
CT5 - Conocer una tercera lengua, preferentemente el inglés, con un nivel adecuado oral y escrito y en consonancia con las necesidades que tendrán los titulados y tituladas.
Básicas
CB8 - Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades.
CB9 - Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.
Competencias Técnicas Genéricas
Genéricas
CG3 - Definir, diseñar e implementar sistemas complejos que cubran todas las fases en proyectos de ciencia de datos
CG4 - Diseñar y poner en marcha proyectos de ciencia de datos en dominios específicos de forma innovadora
Competencias Técnicas
Específicas
CE5 - Modelar, diseñar e implementar sistemas complejos de datos, incluyendo la visualización de datos
CE7 - Identificar las limitaciones impuestas por la calidad de datos en un problema de ciencia de datos y aplicar técnicas para disminuir su impacto
CE10 - Identificar los métodos de aprendizaje automático y modelización estadística a utilizar para resolver un problema específico de ciencia de datos y aplicarlos de forma rigurosa
Objetivos
Interpretar los conceptos básicos de la Ingeniería del Software para sistemas ML (machine learning), especialmente en relación al uso y explotación de prácticas MLOps.
Competencias relacionadas:
CT5,
CG3,
CE5,
Aplicar y analizar las prácticas de MLOps para construir modelos de ML, fomentando la reproducibilidad y la garantía de calidad.
Competencias relacionadas:
CT2,
CT3,
CE7,
CE10,
CB8,
CB9,
Aplicar y analizar las prácticas de MLOps para implementar modelos de ML, fomentando el desarrollo de APIs y la entrega de componentes.
Competencias relacionadas:
CT3,
CG3,
CG4,
CE5,
CB8,
CB9,
Describir los conceptos y métodos relacionados con el seguimiento de los datos obtenidos durante el uso de los sistemas de ML, con el fin de permitir ciclos de retroalimentación en respuesta a los cambios.
Competencias relacionadas:
CT3,
CG3,
CG4,
CE5,
CB8,
CB9,
Contenidos
Conceptos básicos de Ingeniería de Software para sistemas ML (MLOps)
Motivación de la necesidad de ingeniería de software para sistemas ML. Introducción a MLOps y conceptos clave. Ingeniería de requisitos para ML. Plataformas de desarrollo colaborativo.
Prácticas de MLOps para construir modelos de ML
La complejidad y diversidad de los proyectos de ciencia de datos y los sistemas de ML exigen técnicas de ingeniería para garantizar que se construyan de manera sólida y preparada para el futuro. En este capítulo, abordamos las mejores prácticas de ingeniería de software para software de proyectos de ciencia de datos, incluidos los componentes de ML: sistemas de control de versiones; seguimiento y reproducibilidad de la canalización de ML; medición de software para ML; garantía de calidad para ML.
Prácticas de MLOps para implementar modelos de ML
La complejidad y diversidad de los sistemas de ML requieren técnicas de ingeniería para garantizar que se implementen de manera sólida y lista para la producción. En este capítulo, abordamos las mejores prácticas de ingeniería de software para componentes de ML: arquitectura de software para ML; implementar modelos de ML; API para ML; embalaje de componentes ML; automatización de canalizaciones de ML.
Monitoreo de datos obtenidos durante el uso de sistemas ML
Un problema clave en el desarrollo de software es la evolución del sistema ML en respuesta a las nuevas necesidades. El análisis de los datos obtenidos durante el uso del sistema ML por parte de sus usuarios, incluidos sus comentarios explícitos, permite conocer sus necesidades reales, de las que en ocasiones ni siquiera ellos son plenamente conscientes. Cada vez más nos encontramos con sistemas de software que necesitan ser conscientes de su contexto para prestar un correcto servicio. Esta restricción les obliga a monitorear los datos de contexto continuamente, descubrir cambios significativos y reaccionar en tiempo de ejecución (eventualmente, casi en tiempo real). Este tema describe el problema y revisa algunas técnicas básicas: monitoreo y telemetría; Ciclos MLOps y bucles de retroalimentación.
Actividades
ActividadActo evaluativo
Estudio de conceptos básicos de Ingeniería de Software para sistemas ML (MLOps)
Desarrollo práctico de un proyecto end-to-end de prácticas MLOps en el contexto de sistemas basados en ML
El alumno desarrollará progresivamente una práctica que le permita ejercitar los conceptos básicos introducidos en la parte teórica. Se desarrollará en equipos de 4-5 alumnos. El software resultante, debidamente documentado, se cargará en un repositorio de códigos. El equipo presentará un informe, escrito en inglés, resumiendo los principales aspectos de la práctica. Esto es, el proceso de construir e implementar un componente ML de un sistema basado en ML y una evaluación de la precisión de los modelos y algoritmos utilizados. Objetivos:1234 Contenidos:
Presentación del resumen de un artículo existente sobre MLOps
El alumno presentará el resumen de un artículo científico. Todos los estudiantes deben presentar (al menos) una vez. Los presentadores deben hacer al menos una pregunta a las otras presentaciones para fomentar las discusiones. Los profesores preparan una lista de artículos. Objetivos:1 Semana:
14
Teoría
1.8h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6.4h
Presentación del desarrollo práctico de un proyecto end-to-end de prácticas MLOps en el contexto de sistemas basados en ML
Los contenidos teóricos de la asignatura se imparten en las clases de teoría. Estas clases se complementan con ejemplos prácticos y problemas que los estudiantes deben resolver en las horas de Aprendizaje Autónomo.
En las sesiones de laboratorio se consolidan los conocimientos adquiridos en las clases de teoría mediante la resolución de problemas y desarrollo de prácticas relacionados con los contenidos teóricos. Durante las clases de laboratorio, el profesor irá introduciendo nuevas técnicas y dejará una parte importante de la clase para que los estudiantes trabajen en los ejercicios propuestos.
Método de evaluación
La nota se calcula ponderando la nota del proyecto (peso 90%) y la nota de una presentación de un artículo en teoría (peso 10%). Ambas actividades son obligatorias.
En la nota de proyecto se califican la realización del proyecto y el trabajo individual. Como resultado, la nota final de proyecto de cada estudiante se determina a partir de la fórmula siguiente:
NotaProyecto = NotaEquipo * FactorIndividual
La nota global NotaEquipo del proyecto tiene en cuenta la aplicación de prácticas de ingeniería del software.
El factor individual FactorIndividual es un factor multiplicativo entre 0 y 1.2 (e igualmente, no puede hacer crecer la nota final NotaProyecto por encima de 10). Este factor se obtiene a partir de la evaluación que hace el profesor sobre la participación del estudiante en la entrega y de la evaluación que hacen el resto de compañeros del grupo sobre la participación del estudiante en la entrega.
2023 IEEE/ACM 45th International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET) -
Lanubile, Filippo; Martínez-Fernández, Silverio; Quaranta, Luigi, 2023 IEEE/ACM 45th International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET) ,
2023.
https://arxiv.org/pdf/2302.01048.pdf