Ao trabalhar em um projeto de aprendizado de máquina que possui um pipeline “passo a passo”, devemos tomar cuidado com onde alocamos nossos recursos para à obtenção de uma aplicação cada vez mais poderosa.
Quando as inferências realizadas por uma aplicação composta por um único modelo possuem ótima precisão, não precisamos empregar uma estrutura mais complexa e, muito menos, nos aprofundar em técnicas de otimização de pipeline.
É importante ressaltar: de maneira alguma uma aplicação de aprendizado de máquina que não requer um conjunto de modelos operando em sequência pode ser considerada “inferior” em relação a uma aplicação que possui esse requisito. A necessidade de construir um pipeline, ou a sua ausência, é diretamente relacionada a algumas características do problema proposto – tanto quanto dos recursos disponíveis pela equipe.
Fatores como o tamanho do conjunto de dados disponível e, principalmente, os resultados obtidos no processo iterativo de melhoria da métrica de otimização são de extrema importância para a definição da estrutura da aplicação.
Atacando problemas complexos – com pipelines complexos ou não!
Ao nos depararmos com uma situação em que a utilização de um pipeline de processamento é adequada, devemos nos perguntar primeiramente: não possuímos dados suficientes para obter uma performance semelhante, utilizando apenas um modelo em nossa aplicação?
Nem sempre é o caso de dispormos de tamanho conjunto de dados, mas é muito importante que façamos essa pergunta antes de inserirmos um pipeline em nossa aplicação, para não acabarmos adicionando complexidade desnecessária.
Análise de teto
Encontrada a necessidade de um pipeline, começamos a trabalhar na implementação da estrutura. Após a primeira iteração de desenvolvimento, chegamos ao seguinte questionamento: como saber em qual componente devemos priorizar a utilização dos recursos do projeto para otimizar a principal métrica selecionada?
A análise de teto é a principal técnica que nos ajudará a resolver esse questionamento. Com ela, comparamos o ganho potencial das melhorias que podemos realizar em cada passo de nosso pipeline versus seu custo de realização, seja ele referente ao tempo de implementação, pesquisa, ou ao processo de obtenção de mais amostras para treinamento.
Não arrisque perder três, seis ou mais meses de trabalho de sua equipe
Por mais trivial que pareça, a análise de teto nem sempre é aplicada, trazendo um custo imenso aos times e organizações. Algumas equipes podem passar vários meses trabalhando na otimização de um componente de sua pipeline que irá contribuir apenas com uma fatia minúscula do resultado final.
Para evitar que isso aconteça, a análise de teto, que leva em conta os recursos disponíveis, deve ser realizada a cada iteração do desenvolvimento, a fim de priorizar o trabalho que trará um resultado significativo