Feedback em Desenvolvimento de Software e ML: Uma Perspectiva Unificada

Wander Buraslan
4 min readDec 20, 2023

--

Na Engenharia de Software (ES), um contexto bastante conhecido em engenharia de requisitos trata-se do processo de desenvolvimento de software em incrementos, definida por Sommerville (2011), o desenvolvimento incremental é responsável por trazer três vantagens interessantes, respectivamente, custo, feedback e entrega.

É mais fácil obter feedback dos clientes sobre o desenvolvimento que foi feito. Os clientes podem fazer comentários sobre as demonstrações do software e ver o quanto foi implementado. Os clientes têm dificuldade em avaliar a evolução por meio de documentos de projeto de software — Sommerville

Meu objetivo principal é exemplificar um processo conhecido na ES e como podemos compreender o conceito de retreinamento de modelos de Aprendizado de Máquina (AM) através dele, se é que podemos argumentar que exista alguma convergência nestas definições. Especificamente, vamos falar sobre feedback, no qual acredito que seja mais relevante para o tema deste artigo.

Torna-se muito claro a visão de Software em como um sistema deve ser desenvolvido em colaboração com os Stakeholders. No entanto, a magia da imaginação se manifesta quando fantasiamos que o modelo, nada mais, nada menos, é um possível prestador de serviços. Nós, claro, assumimos a responsabilidade de apontar onde esse prestador precisa melhorar. Afinal de contas, ele nos fornecerá um resultado, uma métrica que apresentará o quanto ele conhece sobre a base na qual está sendo treinado.

Desde a década de 1970, houve uma expansão significativa no uso de tecnologias capazes de desempenhar papeis na resolução de problemas cotidianos. Anteriormente, esses problemas eram abordados por especialistas em campos específicos, que auxiliavam a IA (Inteligência Artificial) na busca pela resposta desejada.

Entretanto, à medida que o uso de tecnologias capazes de resolver problemas do mundo real se tornou mais complexa, assim como teve o aumento do número de informações, a necessidade de avanços computacionais se tornou fundamental. Isso resultou em um aumento na velocidade e capacidade de armazenamento dos dados gerados pelas tarefas executadas por programas.

O processo de utilizar essa grande gama de informações passou a ser da responsabilidade de uma máquina; consequentemente, nossa responsabilidade como engenheiro é entender se esses dados estão sendo bem aproveitados pelo modelo, seja por meio de métricas ou qualquer outro método de avaliação apropriado.

Autor: Maitelli et al. (2022)

Conforme apresentado na figura acima, podemos visualizar um fluxo praticamente condicional quando falamos a respeito da validação de performance na etapa de prever resultados e treinamento do modelo. Esta etapa, por exemplo, será responsável por nos dizer como o modelo está se comportando após o processo de treino e teste, ou seja, estamos realizando um processo de validação do modelo como um todo.

O retreinamento de um modelo de AM consiste em apresentar novos dados, com o objetivo de ampliar o escopo de treinamento do modelo, ou seja, aprimorar a generalização. Busca-se que o modelo alcance métricas mais estáveis em comparação com as métricas anteriores. Dessa forma, o modelo que será implantado em produção proporcionará previsões mais precisas e, consequentemente, resultados melhores.

O que desejo apresentar como perspectiva, é que o processo de feedback citado por Sommerville não se distancia tanto do que conhecemos dentro do processo de desenvolvimento de modelos de AM. No entanto, além do feedback, cabe salientar os aspectos negativos que circundam o desenvolvimento incremental, os quais se alinham perfeitamente quando compreendemos a etapa de melhoria do modelo de AM em produção.

O tempo, por exemplo, torna-se desafiador em ambos os contextos que abordo neste artigo. No desenvolvimento de software, o tempo e o dinheiro estão relacionados à reestruturação, principalmente quando consideramos sistemas robustos, complexos e de longa duração. Por outro lado, para o modelo de AM, dependendo da problemática, o tempo pode impactar negativamente os resultados, levando a uma deterioração das métricas.

Por exemplo, se tivermos que classificar pessoas que estão utilizando ou não máscaras de proteção em construções civis por meio de visão computacional, o tempo se tornará um fator relativo. Talvez seja mais demorado para um modelo de AM se deteriorar nesse contexto em comparação com um modelo que lide com dados financeiros, os quais geralmente apresentam impacto sazonal.

Por fim, com objetivo de encerrar a perspectiva que iniciamos neste artigo, o AM apresenta conceitos, mesmo que indiretamente relacionados à ES, que garantem que essas técnicas ou entendimentos não se percam, independentemente do que estamos desenvolvendo, seja em relação ao tempo ou à trajetória de desenvolvimento do produto. A estruturação de um serviço visa flexibilizar resultados tanto no presente quanto no futuro. Ou seja, buscamos cada vez mais aumentar a durabilidade dos serviços que implementamos em produção.

Referências

FACELI, K.; LORENA, A. C.; GAMA, J. *Inteligência Artificial: Uma Abordagem de Aprendizado de Máquina.* 2ª edição. [S.l.]: LTC, 2021. 1 p.

Maitelli, André & Maitelli, Carla & Brasil, Jéssica & Nascimento, Joao & Gomes, Heitor & Araujo, Juliano. (2022). Diagnosis of Operating Conditions in Pumped Methods of Artificial Lift Using Machine Learning. Rio Oil and Gas Expo and Conference. 22. 111–112. 10.48072/2525–7579.rog.2022.111.

SOMMERVILLE, I. *Engenharia de Software.* 9ª edição. ed. Pearson Prentice Hall, 2011. ISBN 978–85–7936–108–1.

--

--

Wander Buraslan

Estudante de Engenharia de Software em busca de desenvolvimento profissional, com o objetivo de analisar dados e compartilhar resultado com as pessoas.