mais lidos
Life at Nu
Conheça a sede do Nubank em Pinheiros, São Paulo/Brasil jan 11
Design
A nova aparência do Nubank: conheça nossa nova logo maio 17
Culture & Values
Como os valores e a cultura da Nu moldam os produtos que criamos ago 7
Carreiras
Reunimos grandes mentes de diversas origens que permitem a discussão e o debate e melhoram a resolução de problemas.
Saiba mais sobre nossas carreiras



Esse post foi revistado por: Luis Moneda, Gabriela Mourao e Cristiano Breuel.
Modelos de aprendizado de máquina (ML) são softwares bem delicados, sendo necessários monitoramentos cuidadosos para garantir um bom funcionamento e sucesso no uso.
Isto é importante principalmente quando decisões corporativas são feitas automaticamente usando as conclusões de tais modelos. Isto significa que modelos com erros normalmente terão impactos significativos na experiência do usuário final.
Modelos são tão bons quanto os dados que consomem. Por isso, o monitoramento dos dados inseridos (e das conclusões) é essencial para que o modelo cumpra seu verdadeiro objetivo: ser útil para levar a boas decisões e fazer com que o negócio atinja sua meta.
Aqui estão algumas dicas práticas e independentes de estruturas que você pode usar para ter uma estratégia de monitoramento mais robusta ao usar modelos de aprendizado de máquina na produção.
(Diversas dicas podem se misturar, já que devem ser usadas como parte de uma estratégia integrada e não de forma isolada)
Médias não contam toda a história
Contexto
Você monitora valores médios para características numéricas nos modelos que usa. Isto acontece porque você quer detectar problemas de dados, entender quando e se distribuições de rótulos e características mudam etc.
Alegação
Monitoramentos de valores médios não contam toda a história porque presumem algumas coisas que não necessariamente refletem a realidade. Por exemplo:
Para resumir, pode haver um problema que afeta seus dados de forma significativa, mas as médias de valores podem não sofrer nenhuma alteração e é por isso que você deve incluir outros ângulos.
Sugestões
Conheça nossas oportunidades
Camadas de política/decisão precisam de monitoramento adicional
Contexto
O modelo é usado para tomar decisões (negar/aprovar empréstimos, exibir ou não um anúncio etc.) usando alguma forma de política.
Você monitora modelos com base em uma perspectiva técnica (valores de característica, precisão, exatidão etc.), mas não é óbvio quando as decisões são feitas a partir daí (essa é a camada de política/decisão).
Alegação
Não é suficiente monitorar modelos com base em uma perspectiva técnica porque não fica claro para outras partes interessadas como isso afeta o negócio.
É importante também monitorar as decisões usando o modelo para garantir que ele esteja cumprindo o valor de negócio esperado.
Sugestões
Divida o monitoramento em subgrupos para obter mais detalhes
Contexto
Você é responsável por cuidar de modelos de aprendizado de máquina frequentemente usados para pontuar diversos exemplos individuais diariamente.
Você monitora características/pontuações em painéis e há diversos padrões “interessantes” que deseja investigar, mas normalmente leva muito tempo para identificar os motivos de tais problemas.
Alegação
Uma forma de facilitar o entendimento de dados e/ou padrões de modelos é dividir o monitoramento de dados em subgrupos (subníveis dos dados sendo pontuados pelo modelo) e monitorá-los separadamente.
Isto é porque diversos problemas de dados têm um impacto significativo em alguns subníveis de exemplos, mas podem “desaparecer” porque seus impactos absolutos não são suficientes para serem observados ao olhar os valores agregados no conjunto de dados geral.
Sugestões
Codificação de característica apropriada torna o monitoramento mais fácil
Contexto
Características usadas em modelos normalmente são pré-processadas ou codificadas para permitir o uso em alguns classificadores.
Isto é um problema às vezes, já que é difícil monitorar visualmente ou programaticamente características complexas e feitas com cuidado, mas que não são óbvias desde o começo.
Alegação
Ou codificar (ou decodificar) características com cuidado, você pode monitorar mais facilmente. Isto acontece porque estruturas de monitoramento são melhores com valores numéricos e categóricos. Se você usa tipos diferentes de características (como incorporações de palavras ou coordenadas de geolocalização), talvez seja melhor decodificá-las (como em linhas e nomes de cidades, respectivamente) para que você possa analisar essas questões com mais facilidade em relatórios e mapas.
Além disso, talvez você queira monitorar os valores originais (não processados, não codificados), já que isto torna mais fácil a comunicação com outras equipes e também a solução de problemas quando eles aparecem.
Sugestões
Consistência reduz a carga mental de monitoramento
Contexto
Você é responsável por manter/operar um ou mais modelos de aprendizado de máquina, sendo que cada um deles tem diversas características, usadas de forma distinta e tudo mais.
Você tem à sua disposição diversos painéis e relatórios sendo gerados, mas o esforço necessário para analisá-los é muito grande e levará bastante tempo.
Alegação
É possível reduzir a carga cognitiva e o tempo necessário para analisar painéis e relatórios de monitoramento.
Uma forma de fazer isso é por meio da consistência e padronização, para que custos de mudança de contexto possam ser minimizados e sua equipe possa ser mais eficiente.
Sugestões
Monitore tarefas/rotinas de monitoramento em si (meta monitoramento)
Contexto
Você usa rotinas auxiliares, tarefas em massa ou scripts ad-hoc para processar dados de registros de modelos. Você usa estas rotinas para analisar as características do modelo, além das pontuações e valores agregados dos resultados. Você também pode usar estas ferramentas para gerar alertas sob certas condições.
Alegação
Rotinas/tarefas de monitoramento de modelo em massa são apenas outros softwares e, normalmente, param de funcionar de vez em quando (alguém mudou o nome de uma tabela e o script não funciona, suas credenciais expiraram etc.).
Se você conta com tarefas/rotinas/scripts de monitoramento e alerta para condições de problemas, a ausência de alertas pode levar você a acreditar que está tudo bem, quando na verdade as tarefas de monitoramento não foram executadas ou houve algum problema com elas.
Você precisa monitorar as próprias tarefas de monitoramento para evitar esse problema (meta monitoramento).
Sugestões
Padrões para monitoramento em massa
Contexto
Você tem tarefas em massa que analisam dados de registros de modelos e calculam uma média agregada neles (valor médio de característica a cada dia, pontuações médias etc.), mas alguém precisa examinar os dados para ver se está tudo bem.
Alegação
É fácil criar relatórios de monitoramento que são ignorados porque ninguém teve tempo de abrir os painéis/notebooks e observar os resultados. Aqui estão algumas formas de torná-los mais úteis e eficientes.
Sugestões
Apenas modelos em tempo real: monitoramento de distorção entre treinamento e exibição
Contexto
Modelos usados para interferir em tempo real são normalmente treinados de acordo com dados históricos recuperados de uma base de dados, em massa.
Isto cria o risco do trajeto dos dados usados para treinamento não ser o mesmo da interferência (normalmente chamadas de HTTP para serviços externos com o objetivo de obter características). Isto é chamado de distorção entre treinamento e exibição.
Alegação
Distorção entre treinamento e exibição é um grande risco a ser considerado ao implementar modelos em tempo real. Isto deve ser monitorado continuamente, pelo tempo em que o modelo estiver em funcionamento.
As causas mais comuns de incompatibilidades são mudanças em serviços externos dos quais o modelo depende para obter dados de características em tempo real.
Sugestões
Apenas modelos em tempo real: padrões de alerta
Agora, temos um artigo dedicado sobre este assunto: Melhores práticas para aprendizado de máquina em tempo real: alertas
Contexto
Você criou alguns alertas em tempo real (e-mails, mensagens de Slack, notificações push em dispositivos móveis etc.) para lhe alertar sobre qualquer comportamento inesperado do modelo, como valores de características estranhos, características ausentes, pontuações muito altas/baixas etc.
Alegação
É muito fácil ficar com alertas que são muito chamativos (são exibidos com muita frequência e não são mais levados a sério) ou não funcionam (nunca são disparados, mesmo quando deviam).
Você precisa manter os alertas relevantes e fáceis de resultar em uma ação (incluindo informações suficientes para alguém saber se é um problema real).
Sugestões
Conclusão
Estas são algumas dicas que achamos úteis para monitorar diversos modelos de aprendizado de máquina (ML) aqui no Nubank.
Eles são usados em diversos contextos de negócios (crédito, fraude, CX, operações etc.), e acreditamos que têm um grande alcance para serem usados em outras empresas também.
Conheça nossas oportunidades