Titulo Estágio
AI: Advanced Monitoring
Áreas de especialidade
Engenharia de Software
Sistemas Inteligentes
Local do Estágio
Instituto Pedro Nunes
Enquadramento
Pretende-se com este estágio investigar, desenhar e implementar um sistema completo e autónomo de monitorização de modelos de machine learning em produção. A Stratio possui diversos modelos que transitam de um estado de proof of concept para produção, que compreende fases como aquisição de dados, pré-processamento e execução, que necessitam de analisar dados provenientes de milhares de veículos por dia num conjunto de centenas de milhões de leituras diárias, procurando sempre garantir a modularidade, escalabilidade e eficiência de todo o sistema.
Este estágio procura assim desenvolver uma pipeline de monitorização de modelos de machine learning que permita detetar desvios do comportamento normal e esperado destes modelos. Pretende-se também detetar quando estes modelos necessitam de ser re-treinados ou identificar casos de incapacidade de generalização.
A Stratio Automotive opera na indústria automóvel e dispõe de mecanismos de aquisição, monitorização e análise de dados provenientes de diversos sensores existentes em veículos de diversas frotas e fabricantes automóveis a nível mundial. A Stratio possui ferramentas capazes de detectar e prever anomalias e falhas em veículos automóveis recorrendo para isso a algoritmos de machine learning capazes de analisar dados provenientes de centenas de sensores do veículo e detetar comportamentos anómalos ou situações de risco que ponham em causa o normal funcionamento do veículo, permitindo assim otimizar custos na sua manutenção ou gestão de operações.
O fluxo de dados compreende ainda três etapas cada uma com uma responsabilidade distinta na gestão e tratamento de dados. Inicialmente a aquisição de dados é feita com um dispositivo proprietário, DataBox®, que é instalado no veículo onde recolhe e envia em tempo real milhões de leituras de sensores por dia de diferentes componentes como bateria, motor, transmissão, travões, suspensão etc. De seguida estes dados são analisados e persistidos para que posteriormente sejam usados e analisados pelos modelos de machine learning proprietários, Cortex®, da Stratio. Estes resultados são depois visualizados em uma plataforma cliente e são também acionados alertas e notificações sobre todas as ocorrências identificadas.
A Stratio possui uma equipa de data scientists responsáveis pela criação destes modelos que analisam e treinam diariamente novos algoritmos que após várias fases de treino e validação necessitam de ser produtizados de forma a serem utilizados numa maior escala e propagados para todos os veículos existentes. Alem disso as fases de aquisição de dados para treino, validação e produção são diferentes uma vez que a Stratio processa dados em tempo real, necessitando assim que estes modelos sejam adequados a essa realidade. Os próprios outputs gerados necessitam também de ser tratados de forma a poderem serem mais tarde visualizados nas respetivas aplicações clientes.
TECNOLOGIAS ENVOLVIDAS:
A Stratio Automotive segue na vanguarda das tecnologias emergentes e que asseguram um melhor desempenho, usabilidade e flexibilidade na sua adequação e utilização a todos os processos de desenvolvimento de software, pelo que procura acima de tudo a utilização de tecnologias open-source, que suportem ambos deployments on-premises e inter-cloud.
Assim sendo a Stratio encoraja a adoção de várias tecnologias desde que a sua utilização seja comprovada como benéfica e resultante de melhorias em função da solução existente, atualmente o stack tecnológico em uso na solução existente compreende as seguintes tecnologias:
• .NET Core 3.0
• Python 3.7
• Linux, Windows Servers
• Azure e AWS
• Apache Kafka
• Elasticsearch
• Microsoft Sql Server
• Visual Code, Jupyter Notebooks
• Docker
• Kubernetes
• Jenkins, Sonar e Nexus
• GIT
• Jira e Confluence
Objetivo
Pretende-se assim criar uma pipeline de monitorização completamente autónoma, modular e escalável, paralela a existente atualmente na Stratio, para monitorizar todos os modelos que são colocados em produção. Esta monitorização usará como recursos várias estratégias usadas atualmente na indústria e recomendadas pelo State Of Art existente. Esta monitorização inclui realizar análises em tempo real de possíveis desvios das distribuições apresentadas por cada modelo desde dados de input, feature engineering, a predições que são geradas por cada modelo.
O presente projeto/estágio pretende atingir os seguintes objetivos genéricos:
• Investigar o State Of Art atualmente existente;
• Analisar os requisitos existentes na Stratio;
• Desenhar uma arquitetura do sistema;
• Implementar a solução encontrada;
• Validar e testar toda a solução;
• Documentar e retirar conclusões acerca do trabalho desenvolvido;
Plano de Trabalhos - Semestre 1
O projeto/estágio consistirá nas seguintes atividades e respetivas tarefas:
T1 – Analise do estado de arte – Analise do respetivo estado de arte que compreende investigação de tecnologias usadas, ferramentas, workflows e padrões de desenho a usar.
T2 – Análise de requisitos – Levantamento de requisitos funcionais e não funcionais aos quais a solução deve responder.
T3 – Desenho da arquitetura – Desenho da arquitetura, respetivos componentes, tecnologias e ferramentas a usar e de que forma estes se interligam.
T4 - Escrita do relatório intermédio
Plano de Trabalhos - Semestre 2
T5 – Implementação – Implementação da solução encontrada.
T6 – Validação – Validação, testes e recolha de métricas em função dos requisitos identificados.
T7 – Documentação – Escrita de documentação de todo o trabalho realizado.
T8 - Elaboração do Relatório final de estágio
Condições
Horário das 09h:00 às 18h:00
Observações
Observação: Qualquer dos 4 percursos do Mestrado em Engenharia Informática são elegíveis para esta proposta.
ELEMENTOS ADICIONAIS
-Metodologia: Este projecto estará enquadrado na equipa de software da Stratio que usa actualmente metodologias ágeis como Scrum ou Kanban com várias sprints e/ou releases.
Existem várias reuniões ao longo do ciclo de desenvolvimento, nomeadamente:
• Daily Meeting: Reunião diária ao início do dia em que são descritos os trabalhos realizados no dia anterior, possíveis problemas encontrados e trabalho a realizar no dia corrente.
• Refinement: Reunião semanal que permite algum grooming do backlog de tarefas a entrar na próxima sprint.
• Sprint Planning: Reunião antes do início de cada sprint para decidir que conjunto de tarefas entram para a próxima sprint.
• Sprint Retrospective: Reunião no final de cada sprint para identificar pontos positivos e potenciais melhorias de processos com base na experiência dessa sprint.
• Demo: Reunião de demostração do trabalho realizado nessa sprint a alguns stakeholders.
Orientador
Tiago Neto Afonso Villa de Brito
tiagobrito@stratioautomotive.com 📩