Novos usos de analytics, data science e machine learning não podem queimar as etapas da engenharia de software, principalmente a especificação técnica. Na SciCrop eu aprendi isso a duras penas.
A especificação técnica desempenha um papel importante nos projetos de Machine Learning, pois ela documenta os requisitos, as restrições e as expectativas para o projeto. Isso inclui detalhes sobre os dados de entrada, a arquitetura do modelo, as métricas de desempenho esperadas e os requisitos de implementação. Além disso, a especificação técnica também pode incluir instruções sobre como o modelo deve ser treinado, testado e implantado. Isso ajuda a garantir que todos os envolvidos no projeto estejam alinhados e trabalhando em direção aos mesmos objetivos.
No paper “Software best practices for machine learning” (1) de Nicolas Munar Gonzales, publicado pela Faculdade de Engenharia da Universidade dos Andes em 2022, o autor examina o papel da especificação técnica na criação de sistemas de Machine Learning e como ela é crítica para atingir qualidade e satisfazer as necessidades do cliente.
Enquanto a especificação técnica para projetos de Machine Learning compartilha algumas semelhanças com a especificação técnica para projetos de engenharia de software, ela também tem algumas diferenças importantes devido às particularidades dos projetos de Machine Learning. E em relação a estas diferenças, essa é a sequência do que não pode faltar nas especificações de ML e as que mais causaram problemas quando foram feitas incorretamente:
- Especificação de requisitos do cliente: Projetos de Machine Learning geralmente envolvem a criação de modelos para atender a necessidades específicas do cliente. A especificação técnica para projetos de Machine Learning deve incluir detalhes sobre os requisitos do cliente, incluindo objetivos de negócios, restrições e expectativas;
- Dados: Projetos de Machine Learning geralmente envolvem uma grande quantidade de dados. A especificação técnica para projetos de Machine Learning deve incluir detalhes sobre a qualidade, a quantidade e a origem dos dados que serão utilizados para treinar e testar o modelo;
- Modelos: Projetos de Machine Learning geralmente envolvem o desenvolvimento de modelos complexos. A especificação técnica para projetos de Machine Learning deve incluir detalhes sobre a arquitetura do modelo, os algoritmos utilizados e as métricas de desempenho esperadas;
- Implantação: Projetos de Machine Learning geralmente envolvem a implantação de modelos em sistemas em produção. A especificação técnica para projetos de Machine Learning deve incluir detalhes sobre como o modelo será implantado, incluindo requisitos de hardware e software, e como ele será monitorado e mantido após a implantação.
Agora se você quiser uma visão mais completa sobre as melhores práticas de desenvolvimento de projetos de analytics e aprendizado de máquina eu recomendo a leitura do artigo “Best Practices for Applying Deep Learning to Novel Applications” (2) por Leslie N. Smith, publicado pelo “US Navy Center for Applied Research in Artificial Intelligence” em 2017. Este texto discute recomendações práticas para aqueles interessados no uso de machine learning e em como gerenciar o desenvolvimento destas aplicações.