Cenário comum
Uma técnica específica é aplicada para alcançar os objetivos esperados em um projeto, porém nenhum resultado satisfatório é obtido. O time técnico, ao receber determinada demanda, realiza a análise e chega à seguinte conclusão: trata-se de um caso propício para um projeto de aprendizado de máquina.
Após o projeto ser aprovado, levando em conta o tempo e o investimento necessários, são levantados os requisitos. E é aí que um cenário muito comum, mas de maneira alguma positivo, pode acontecer. Esse levantamento constitui uma lista semelhante a esta:
- o modelo deve ter a maior precisão possível
- o modelo deve ter o menor tempo de execução de inferência possível
- o modelo deve ter o menor memory footprint possível
Alguns valores são utilizados para substituir os termos em negrito e normalmente são próximos do melhor resultado possível para determinada métrica.
Tendo essas definições, o time começa o trabalho. Pergunto ao leitor: qual é o resultado que você acredita ser alcançado ao trabalhar em um projeto com tais requisitos, por mais experiente que o grupo de trabalho seja?
Resultado comum
Iteração atrás de iteração, e os requisitos não parecem ser atingidos. O modelo é preciso, mas não respeita o tempo de execução. Ao ser otimizado para atingir o tempo máximo permitido, acaba consumindo mais memória do que o ideal, ou tem uma precisão significativamente menor. No caso raro de todos os requisitos possuírem uma performance “ok”, a equipe se dividirá para otimizar as várias métricas e, com isso, as situações acima citadas podem acontecer repetidas vezes.
Atenção: um passo por vez!
Ao definirmos nossas métricas de avaliação, temos que trabalhar com dois conceitos importantes: métricas de otimização e métricas satisfatórias.
A métrica de otimização deve ser única no projeto, e as iterações de desenvolvimento para a melhoria do modelo devem possuí-la exclusivamente como foco principal de melhoria.
Já as métricas satisfatórias são tresholds que devemos utilizar como guias, mas não trabalhamos continuamente para otimizá-las. Utilizamos essas métricas como limites que não devem ser ultrapassados.
Na concepção do projeto e ao início de cada ciclo iterativo, defina qual a métrica de otimização e quais as satisfatórias
É muito importante que, ao começar o projeto ou uma nova iteração do mesmo para obter melhores resultados, o time possua uma visão clara, podendo distinguir facilmente entre os diferentes tipos de métricas. O trabalho de definição das métricas é diretamente relacionado aos resultados esperados de um novo projeto ou analogamente aos problemas levantados na análise dos resultados de um modelo gerado anteriormente.
Ao ter essa definição em mãos, a equipe será mais ágil, alcançará um resultado mais alinhado às expectativas e também possuirá um caminho claro para evoluir o modelo e, consequentemente, aumentar a assertividade em relação aos objetivos estabelecidos.