View on GitHub

manual-da-engenharia-para-codar

Este é o manual para compromissos de "código com" a engenharia.

Lista de Verificação para Produção de Modelo de ML

O objetivo desta lista de verificação é garantir que:

A lista de verificação fornece diretrizes para a criação deste plano de produção. Deve ser utilizada por equipes/organizações que já construíram/treinaram um modelo de ML e agora estão considerando colocá-lo em produção.

Lista de Verificação

Antes de colocar um modelo de ML individual em produção, os seguintes aspectos devem ser considerados:

Por favor, observe que pode haver cenários em que não seja possível verificar todos os itens desta lista de verificação. No entanto, é aconselhável passar por todos os itens e tomar decisões informadas com base em seu caso de uso específico.

A performance do seu modelo será diferente na produção do que na fase de treinamento

Uma vez implantado na produção, o modelo pode apresentar um desempenho muito pior do que o esperado. Esse desempenho ruim pode ser resultado de:

Existe uma linha de base bem definida? O modelo está se saindo melhor do que a linha de base?

Uma boa maneira de pensar em uma linha de base para um modelo é o modelo mais simples que se pode imaginar: seja um limite simples, uma suposição aleatória ou um modelo linear muito básico. Esta linha de base é o ponto de referência que seu modelo precisa superar. Uma linha de base bem definida é diferente para cada tipo de problema e não há uma abordagem única para todos os casos.

Como exemplo, consideremos alguns tipos comuns de problemas de aprendizado de máquina:

Algumas perguntas a fazer ao comparar com uma linha de base:

Nota: Em alguns casos, a paridade humana pode ser muito ambiciosa como linha de base, mas isso deve ser decidido caso a caso. A precisão humana é uma das opções disponíveis, mas não a única.

Recursos:

As métricas de desempenho de aprendizado de máquina estão definidas tanto para o treinamento quanto para a pontuação?

A metodologia de traduzir as métricas de treinamento para as métricas de pontuação deve ser bem definida e compreendida. Dependendo do tipo de dados e do modelo, o cálculo das métricas do modelo pode ser diferente na produção e no treinamento. Por exemplo, o procedimento de treinamento calculou métricas por um longo período de tempo (um ano, uma década) com diferentes características sazonais, enquanto o procedimento de pontuação calculará as métricas em um intervalo de tempo restrito (por exemplo, uma semana, um mês, um trimestre). Métricas de desempenho de ML bem definidas são essenciais na produção para que uma diminuição ou aumento no desempenho do modelo possa ser detectada com precisão.

Coisas a serem consideradas:

O modelo foi benchmarked?

O modelo treinado a ser colocado em produção está bem benchmarked se as métricas de desempenho de aprendizado de máquina (como precisão, recall, RMSE ou o que for apropriado) forem medidas no conjunto de treinamento e teste. Além disso, a divisão entre conjunto de treinamento e teste deve estar bem documentada e ser reproduzível.

É possível obter ou inferir a verdade fundamental na produção?

Sem uma verdade fundamental confiável, as métricas de aprendizado de máquina não podem ser calculadas. É importante identificar se a verdade fundamental pode ser obtida à medida que o modelo pontua novos dados por meio de meios manuais ou automáticos. Se a verdade fundamental não puder ser obtida de forma sistemática, outras proxies e metodologias devem ser investigadas para obter alguma medida do desempenho do modelo.

Uma opção é usar seres humanos para rotular amostras manualmente. Um aspecto importante da rotulagem humana é levar em consideração a precisão humana. Se dois indivíduos diferentes rotularem uma imagem, é provável que os rótulos sejam diferentes para algumas amostras. É importante entender como os rótulos foram obtidos para avaliar a confiabilidade da verdade fundamental (daí falarmos sobre a precisão humana).

Para maior clareza, consideremos os seguintes exemplos (de forma alguma uma lista exaustiva):

A distribuição de dados dos conjuntos de treinamento, teste e validação (se aplicável) foi analisada?

A distribuição de dados dos seus conjuntos de treinamento, teste e validação (se aplicável) deve ser analisada para garantir que todos eles provenham da mesma distribuição. Se isso não for o caso, algumas opções a serem consideradas são: reembaralhar, reamostrar, modificar os dados, coletar mais amostras ou remover recursos do conjunto de dados.

Diferenças significativas nas distribuições de dados dos diferentes conjuntos de dados podem afetar grandemente o desempenho do modelo. Algumas perguntas potenciais a fazer:

Recursos:

Foram estabelecidos objetivos e limites rígidos para o desempenho, velocidade de previsão e custos, de modo que possam ser considerados se forem necessárias compensações?

Alguns modelos de aprendizado de máquina alcançam alto desempenho de ML, mas são caros e demorados para serem executados. Nesses casos, um modelo menos performático e mais barato pode ser preferido. Portanto, é importante calcular as métricas de desempenho do modelo (precisão, precisão, recall, RMSE etc.), mas também coletar dados sobre o custo de execução do modelo e quanto tempo levará para executar. Uma vez que esses dados sejam reunidos, uma decisão informada deve ser tomada sobre qual modelo será colocado em produção.

Métricas do sistema a serem consideradas:

Como o modelo será integrado a outros sistemas e qual será o impacto?

Modelos de Aprendizado de Máquina não existem isoladamente, mas fazem parte de um sistema muito maior. Esses sistemas podem ser sistemas antigos e proprietários ou novos sistemas sendo desenvolvidos como resultado da criação de um novo modelo de aprendizado de máquina. Em ambos os casos, é importante entender onde o modelo real se encaixará, qual saída é esperada do modelo e como essa saída será usada pelo sistema maior. Além disso, é essencial decidir se o modelo será usado para inferência em lote e/ou em tempo real, pois os caminhos de produção podem ser diferentes.

Possíveis perguntas para avaliar o impacto do modelo:

Como a qualidade dos dados de entrada será monitorada?

À medida que os sistemas de dados se tornam cada vez mais complexos no cenário atual, é especialmente vital empregar protocolos de monitoramento, alerta e correção de qualidade de dados. Seguir as melhores práticas de validação de dados pode prevenir problemas insidiosos que se infiltram nos modelos de aprendizado de máquina, reduzindo a utilidade do modelo na melhor das hipóteses e introduzindo riscos na pior das hipóteses. A validação de dados reduz o risco de interrupções nos dados (aumentando a folga) e dívidas técnicas, além de apoiar o sucesso a longo prazo de modelos de aprendizado de máquina e outras aplicações que dependem dos dados.

As melhores práticas de validação de dados incluem:

Observe que a validação de dados é distinta da detecção de deriva de dados. A validação de dados detecta erros nos dados (por exemplo, um dado está fora da faixa esperada), enquanto a detecção de deriva de dados descobre mudanças legítimas nos dados que são verdadeiramente representativas do fenômeno em questão (por exemplo, as preferências do usuário mudam). Problemas de validação de dados devem acionar o roteamento e a correção, enquanto a deriva de dados deve acionar a adaptação ou o retrabalho de um modelo.

Recursos:

Como será monitorada a deriva nas características dos dados?

A detecção de deriva de dados descobre mudanças legítimas nos dados de entrada que são verdadeiramente representativas do fenômeno em questão e não são errôneas (por exemplo, mudança nas preferências do usuário). É imperativo entender se os novos dados em produção serão significativamente diferentes dos dados na fase de treinamento. Também é importante verificar se as informações de distribuição de dados podem ser obtidas para qualquer um dos novos dados que estão chegando. O monitoramento de deriva pode informar quando as mudanças estão ocorrendo e quais são suas características (por exemplo, abruptas vs. graduais) e guiar estratégias eficazes de adaptação ou retrabalho para manter o desempenho.

Possíveis perguntas a fazer:

Recursos:

Como o desempenho será monitorado?

É importante definir como o modelo será monitorado quando estiver em produção e como esses dados serão usados para tomar decisões. Por exemplo, quando um modelo precisa ser re-treinado devido à degradação do desempenho e como identificar as causas subjacentes dessa degradação podem fazer parte dessa metodologia de monitoramento.

Idealmente, o monitoramento do modelo deve ser feito automaticamente. No entanto, se isso não for possível, deve haver uma verificação manual periódica do desempenho do modelo.

O monitoramento do modelo deve levar a:

Foram consideradas quaisquer preocupações éticas?

Todos os projetos de Aprendizado de Máquina passam pelo processo de AI Responsável para garantir que eles sigam os 6 princípios de AI Responsável da Microsoft.