Sistemas de Aprendizaje Automático en Producción

Usted está aquí

Créditos
6
Tipos
Optativa
Requisitos
Esta asignatura no tiene requisitos, pero tiene capacidades previas
Departamento
ESSI
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

  1. 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,
  2. 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,
  3. 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,
  4. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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

Actividad Acto evaluativo


Estudio de conceptos básicos de Ingeniería de Software para sistemas ML (MLOps)


Objetivos: 1
Contenidos:
Teoría
3.6h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
1.8h

Estudio de prácticas de MLOps para construir modelos ML


Objetivos: 2
Contenidos:
Teoría
7.2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3.6h

Estudio de prácticas de MLOps para desplegar modelos ML


Objetivos: 3
Contenidos:
Teoría
7.2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3.6h

Estudio de conceptos para el seguimiento de datos obtenidos durante el uso de sistemas ML


Objetivos: 4
Contenidos:
Teoría
7.2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3.6h

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: 1 2 3 4
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
25.2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
70.6h

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
Tipo: examen de teoría
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


Objetivos: 1 2 3 4
Semana: 14
Tipo: examen de laboratorio
Teoría
0h
Problemas
0h
Laboratorio
1.8h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6.4h

Metodología docente

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 teórica (peso 10%). Ambas actividades son obligatorias.

Bibliografía

Básica:

  • Building intelligent systems: a guide to machine learning engineering - Hulten, Geoff, Apress, 2018. ISBN: 9781484234327

Complementaria:

Capacidades previas

Las dadas por las asignaturas de los cuatrimestres anteriores del máster. Fundamentos del aprendizaje automático.