Experimentos

Os experimentos impulsionam a viabilidade de um projeto. Elas são hipóteses testáveis e reproduzíveis. Ao realizar experimentos, o objetivo é fazer melhorias contínuas e incrementais avaliando uma variedade de arquiteturas e recursos de modelo. Ao realizar experimentos, faça o seguinte:

  • Determinar a performance de referência. Comece estabelecendo uma métrica de linha de base. O valor de referência atua como um padrão de medição para comparar experimentos.

    Em alguns casos, a solução atual que não usa ML pode fornecer a primeira métrica de referência. Se não houver uma solução, crie um modelo de ML com uma arquitetura simples, alguns recursos e use as métricas como referência.

  • Faça pequenas mudanças únicas. Faça apenas uma pequena mudança por vez, por exemplo, nos hiperparâmetros, na arquitetura ou nos recursos. Se a mudança melhorar o modelo, as métricas dele vão se tornar a nova linha de base para comparar futuros experimentos.

    Confira a seguir exemplos de experimentos que fazem uma única mudança pequena:

    • incluir o recurso X.
    • use 0,5% de desistência na primeira camada oculta.
    • Use a transformação logarítmica do atributo Y.
    • mude a taxa de aprendizado para 0,001.
  • Registrar o progresso dos experimentos. Provavelmente, você vai precisar fazer muitos experimentos. Os experimentos com qualidade de previsão baixa (ou neutra) em comparação com a linha de base ainda são úteis para acompanhar. Eles indicam quais abordagens não funcionam. Como o progresso geralmente não é linear, é importante mostrar que você está trabalhando no problema destacando todas as maneiras que você encontrou que não funcionam, além do seu progresso no aumento da qualidade de referência.

Como cada treinamento completo em um conjunto de dados do mundo real pode levar horas (ou dias), execute vários experimentos independentes simultaneamente para explorar o espaço rapidamente. À medida que você continua iterando, você se aproxima cada vez mais do nível de qualidade necessário para a produção.

Ruído nos resultados do experimento

É possível encontrar ruídos nos resultados experimentais que não são provenientes de mudanças no modelo ou nos dados, o que dificulta a determinação de se uma mudança feita realmente melhorou o modelo. Confira abaixo exemplos de coisas que podem produzir ruído nos resultados experimentais:

  • Embaralhar dados: a ordem em que os dados são apresentados ao modelo pode afetar o desempenho dele.

  • Inicialização de variáveis: a maneira como as variáveis do modelo são inicializadas também pode afetar o desempenho.

  • Paralelismo assíncrono: se o modelo for treinado usando o paralelismo assíncrono, a ordem em que as diferentes partes do modelo são atualizadas também poderá afetar a performance dele.

  • Conjuntos de avaliação pequenos: se o conjunto de avaliação for muito pequeno, ele pode não ser representativo do desempenho geral do modelo, produzindo variações irregulares na qualidade do modelo.

A execução de um experimento várias vezes ajuda a confirmar os resultados.

Alinhar as práticas de experimentação

Sua equipe precisa ter um entendimento claro do que é exatamente um "experimento", com um conjunto definido de práticas e artefatos. Você vai precisar de documentação que descreve o seguinte:

  • Artefatos. Quais são os artefatos de um experimento? Na maioria dos casos, um experimento é uma hipótese testada que pode ser reproduzida, normalmente registrando os metadados (como os recursos e hiperparâmetros) que indicam as mudanças entre os experimentos e como elas afetam a qualidade do modelo.

  • Práticas de programação. Todos vão usar os próprios ambientes experimentais? Qual é a probabilidade (ou facilidade) de unificar o trabalho de todos em bibliotecas compartilhadas?

  • Reprodutibilidade e rastreamento. Quais são os padrões de reprodutibilidade? Por exemplo, a equipe deve usar o mesmo pipeline de dados e as mesmas práticas de versionamento ou é possível mostrar apenas os gráficos? Como os dados experimentais serão salvos: como consultas SQL ou instantâneos de modelo? Onde os registros de cada experimento serão documentados: em um documento, uma planilha ou um CMS para gerenciar experimentos?

Previsões incorretas

Nenhum modelo do mundo real é perfeito. Como seu sistema vai lidar com previsões incorretas? Comece a pensar cedo sobre como lidar com eles.

Uma estratégia de práticas recomendadas incentiva os usuários a rotular corretamente as previsões incorretas. Por exemplo, os apps de e-mail capturam e-mails classificados incorretamente registrando os e-mails que os usuários movem para a caixa de spam, bem como o inverso. Ao capturar rótulos de informações empíricas dos usuários, você pode projetar ciclos de feedback automatizados para coleta de dados e reenvio de modelos.

Embora as pesquisas incorporadas à interface capturem o feedback do usuário, os dados são geralmente qualitativos e não podem ser incorporados aos dados de reenvio.

Implementar uma solução completa

Enquanto a equipe está fazendo experimentos no modelo, é uma boa ideia começar a criar partes do pipeline final (se você tiver os recursos para isso).

O estabelecimento de diferentes partes do pipeline, como a ingestão de dados e o reenvio do modelo, facilita a transferência do modelo final para a produção. Por exemplo, ter um pipeline de ponta a ponta para ingerir dados e gerar previsões pode ajudar a equipe a começar a integrar o modelo ao produto e a realizar testes de usuários iniciais.

Solução de problemas de projetos interrompidos

Você pode estar em cenários em que o progresso de um projeto é interrompido. Talvez sua equipe esteja trabalhando em um experimento promissor, mas não conseguiu melhorar o modelo por semanas. O que você deve fazer? Confira a seguir algumas abordagens possíveis:

  • Estratégica. Talvez seja necessário reformular o problema. Depois de passar um tempo na fase de experimentação, você provavelmente entende melhor o problema, os dados e as possíveis soluções. Com um conhecimento mais profundo do domínio, você provavelmente poderá definir o problema com mais precisão.

    Por exemplo, talvez você queira usar a regressão linear para prever um valor numérico. Infelizmente, os dados não foram bons o suficiente para treinar um modelo de regressão linear viável. Talvez uma análise mais detalhada revele que o problema pode ser resolvido prevendo se um exemplo está acima ou abaixo de um valor específico. Isso permite reformular o problema como uma classificação binária.

    Se o progresso for mais lento do que o esperado, não desista. Melhorias incrementais ao longo do tempo podem ser a única maneira de resolver o problema. Como observado anteriormente, não espere o mesmo progresso de semana para semana. Muitas vezes, conseguir uma versão de um modelo pronta para produção exige muito tempo. A melhoria do modelo pode ser irregular e imprevisível. Períodos de progresso lento podem ser seguidos por picos de melhoria ou o contrário.

  • Técnica. Diagnosticar e analisar previsões incorretas. Em alguns casos, é possível encontrar o problema isolando algumas previsões incorretas e diagnosticando o comportamento do modelo nessas instâncias. Por exemplo, você pode descobrir problemas com a arquitetura ou os dados. Em outros casos, conseguir mais dados pode ajudar. Você pode receber um sinal mais claro que sugere que você está no caminho certo, ou ele pode produzir mais ruído, indicando que há outros problemas na abordagem.

    Se você estiver trabalhando em um problema que exige conjuntos de dados rotulados por humanos, pode ser difícil conseguir um conjunto de dados rotulado para avaliação do modelo. Encontre recursos para conseguir os conjuntos de dados necessários para a avaliação.

Talvez não seja possível encontrar uma solução. Limite o tempo da sua abordagem e pare se você não tiver feito progresso dentro do prazo. No entanto, se você tiver uma definição de problema forte, provavelmente ela exigirá uma solução.

Teste seu conhecimento

Um membro da equipe encontrou uma combinação de hiperparâmetros que melhora a métrica do modelo de referência. O que os outros membros da equipe devem fazer?
Talvez incorpore um hiperparâmetro, mas continue com os experimentos.
Correto. Se um dos hiperparâmetros parecer uma escolha razoável, teste. No entanto, nem todas as escolhas de hiperparâmetros fazem sentido em todos os contextos experimentais.
Mudar todos os hiperparâmetros no experimento atual para corresponder aos do colega de trabalho.
Hiperparâmetros que melhoraram um modelo não significam que também vão melhorar um modelo diferente. Os outros membros da equipe precisam continuar com os experimentos, o que pode melhorar ainda mais a referência mais tarde.
Comece a criar um pipeline de ponta a ponta que será usado para implementar o modelo.
Um modelo que melhora a referência não significa que ele será o modelo que será usado na produção. Eles precisam continuar com os experimentos, que podem melhorar ainda mais a linha de base mais tarde.