Precisamos falar sobre a documentação no machine learning

figura1_capa_robot-reading-a-book

Muita gente está dando os primeiros passos no machine learning e esquecendo um importante elemento: a documentação. Neste post vou falar um pouco sobre este artefato de software que muitas vezes acaba sendo esquecido.

A documentação técnica para desenvolvedores em geral não é muito bem vista por quem precisa fazê-la. Isto quer dizer que na maioria das vezes o responsável técnico pela solução prefere gastar seus conhecimentos, habilidades e recursos codificando e resolvendo problemas na prática do que documentando, descrevendo e facilitando o acesso ao que foi criado para outras pessoas. Infelizmente com o machine learning não é diferente.



Se considerarmos o perfil de quem trabalha com machine learning é razoável admitir que, no mínimo, o profissional deve saber lidar com dados, ter pensamento lógico, analítico e ser extremamente criterioso e atento a detalhes. Contudo, enquanto este mix de habilidade favorece a criação da solução, tais profissionais muitas vezes deixam a desejar no que diz respeito à habilidades sociais e de comunicação. E este é um dos principais motivos pela qual que a documentação de projetos de machine learning fica comprometida.

Apesar da documentação ser importante, ela não ajuda muito que não sabe do que isso se trata e por onde começar. Visando este público eu desenvolvi um curso presencial de introdução ao machine learning com foco em Python. Este curso rápido ainda possui alguns vagas e recomendo aos interessados acessarem este link que contêm mais informações e o procedimento para a inscrição.

Em geral, a documentação do machine learning envolve diversos elementos comuns àqueles de quem trabalha com banco de dados. De fato, já escrevi sobre este assunto e sobre documentação de APIs. Aqui reitero que investir na documentação vale muito a pena não só para novatos, mas para qualquer pessoa envolvida no projeto.

Um dos pontos da documentação exclusiva no machine learning é a descrição do que foi experimentado, uma vez que é comum avaliar, testar e validar diversas abordagens enquanto não se toma a decisão final de qual algoritmo, os parâmetros, os dados e outros fatores muito importantes a serem utilizados que fazem a diferença na prática. Esta descrição pode ser em formato de diário onde destaca-se a cada dia o que foi feito, como foi feito, porque foi feito e o que foi obtido.

too-many-questions

Este tipo de descrição evita que novos integrantes no projeto fiquem comentando algo como “já tentou X?”, “E se você fizer Y desde jeito?” ou “você pode melhorar Z aplicando a nova técnica W”. Nem sempre quem está com a mão na massa tem tempo ou paciência para explicar todos os detalhes para responder a comentários deste tipo, especialmente para novos integrantes da equipe. Portanto, faz muito sentido documentar claramente decisões de projeto baseado no que foi experimentado.

Outro aspecto da documentação de projetos de ML importante é relacionado ao pipeline, o seja, o fluxo de etapas realizadas. Atualmente diversas ferramentas vêm emprego interfaces interativas e visuais com ícones que representam etapas como abrir arquivos, separar dados, filtrar linhas, criação de novas features, teste de modelos, avaliação de resultados, geração de gráficos, etc. Exemplos incluem o Orange, o Weka e a interface do Azure.

figura4_orangepython

Este tipo de representação visual ajuda a documentar o projeto de ML, mas ainda é pouco. É preciso que tais diagramas sejam acompanhados de descrições, documentos, arquivos, layouts, scripts, arquivos com código fonte e outros artefatos que ajudem a compreender como, porquê e quando foram tomadas as decisões e atitudes que levaram o projeto de ML a ter a forma em que ele se encontra em um determinado momento.

Outro aspecto interessante relacionado à documentação é a inclusão de etapas do ML, como o treinamento do modelo e validação, na integração contínua de projetos de software. Isto quer dizer que é preciso, por exemplo, ligar os processos de build e deploy de uma ferramenta/software/aplicação com certas etapas do ML para garantir que tudo fique em sincronia. Apesar de importante, devido à pouca experiência com este tipo de projeto que envolve dados muitas empresas ainda engatinham neste tipo de integração e documentação.

Esta entrada foi publicada em Machine learning e marcada com a tag , , , , , , , , , , . Adicione o link permanente aos seus favoritos.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *