Diretrizes para desenvolver soluções de ML de alta qualidade

Last reviewed 2022-02-17 UTC

Este documento reúne algumas diretrizes para ajudar você a avaliar, garantir e controlar a qualidade das soluções de machine learning (ML). Nele, há sugestões para cada etapa do processo, desde o desenvolvimento de modelos de ML, passando pela implantação e a exibição dos sistemas, até a produção. O documento amplia as informações discutidas no Guia de práticas para MLOps destacando e refinando os aspectos de qualidade em cada processo do ciclo de vida de MLOps.

Este documento é destinado a qualquer pessoa envolvida na criação, implantação e operação de soluções de ML. Para usar este documento, é necessário conhecer o MLOps em geral. Ele não pressupõe que você tenha conhecimento de nenhuma plataforma de ML específica.

Visão geral da qualidade da solução de machine learning

Em engenharia de software, muitos padrões, processos, ferramentas e práticas foram desenvolvidos para garantir a qualidade do software. O objetivo é garantir que o software funcione conforme esperado na produção e que atenda aos requisitos funcionais e não funcionais. Essas práticas incluem tópicos como teste de software, verificação e validação, de software, bem como geração de registros e monitoramento de software. Em DevOps, essas práticas costumam ser integradas e automatizadas em processos de CI/CD.

O MLOps é um conjunto de recursos e processos padronizados que cria, implanta e opera sistemas de ML de maneira rápida e confiável. Assim como outras soluções de software, as soluções de software de ML exigem que você integre e aplique essas práticas de qualidade de software durante todo o ciclo de vida do MLOps. Ao aplicar essas práticas, você ajuda a garantir a confiabilidade e a previsibilidade dos modelos, bem como a conformidade deles com seus requisitos.

No entanto, as tarefas de criação, implantação e operação de sistemas de ML trazem outros desafios que exigem determinadas práticas de qualidade que talvez não sejam relevantes para outros sistemas de software. Além das características da maioria dos outros sistemas de software, os sistemas de ML também são:

  • Sistemas dependentes de dados. A qualidade dos modelos treinados e as respectivas previsões dependem da validade dos dados usados para treinamento e enviados para solicitações de previsão. Qualquer sistema de software depende de dados válidos, mas os sistemas de ML deduzem a lógica para tomada de decisões dos dados automaticamente, por isso eles dependem especialmente da qualidade dos dados.

  • Sistemas duplos de treinamento e exibição. As cargas de trabalho de ML geralmente consistem em dois sistemas de produção distintos, mas relacionados: o sistema de treinamento e o de exibição. Um pipeline de treinamento contínuo produz modelos recém-treinados que são implantados para a exibição de previsões. Cada sistema exige um conjunto diferente de práticas de qualidade que equilibram a eficácia e a eficiência para produzir e manter um modelo de alto desempenho na produção. Além disso, inconsistências entre esses dois sistemas resultam em erros e baixo desempenho preditivo.

  • Propensos a inatividade. Muitas vezes, os modelos degradam depois de implantados na produção porque não são adaptados às mudanças no ambiente que representam, como alterações sazonais no comportamento de compra. Os modelos também podem não se adaptar às mudanças nos dados, como novos produtos e locais. Assim, acompanhar a eficácia do modelo na produção é mais um desafio para os sistemas de ML.

  • Sistemas automatizados de tomada de decisão. Ao contrário de outros sistemas de software, em que as ações são codificadas manualmente para um conjunto de requisitos e regras de negócios, os modelos de ML aprendem as regras com base em dados para tomar uma decisão. O viés implícito nos dados pode levar os modelos a produzir resultados parciais.

Quando um modelo de ML implantado produz previsões ruins, a baixa qualidade de ML pode ser o resultado de uma grande variedade de problemas. Alguns desses problemas podem ser causados por bugs típicos que estão em qualquer programa. No entanto, os problemas específicos de ML também podem incluir desvios e anomalias nos dados, além da ausência de procedimentos adequados de avaliação e validação de modelos como parte do processo de treinamento. Outro problema potencial é o formato de dados inconsistente entre a interface integrada do modelo e a API de exibição. Além disso, o desempenho do modelo degrada com o tempo, mesmo sem esses problemas, e também pode falhar silenciosamente se não for monitorado de maneira correta. Portanto, inclua diferentes tipos de testes e monitoramento de modelos e sistemas de ML durante o desenvolvimento e a implantação e na produção.

Diretrizes de qualidade para o desenvolvimento de modelos

Ao desenvolver um modelo de ML durante a fase experimental, você tem os dois conjuntos de métricas de destino a seguir que podem ser usados para avaliar o desempenho do modelo:

  • Métricas de otimização do modelo. Esta métrica reflete a eficácia preditiva do modelo. A métrica inclui acurácia e medida-f em tarefas de classificação, erro percentual absoluto médio em tarefas de regressão e previsão, ganho cumulativo descontado em tarefas de ranking e escores de perplexidade e BLEU em modelos de linguagem. Quanto melhor o valor desta métrica, melhor será o modelo para uma determinada tarefa. Em alguns casos de uso, para garantir a imparcialidade, é importante alcançar uma eficácia preditiva semelhante com diferentes frações dos dados. Por exemplo, em informações demográficas de clientes.
  • Métricas de satisfação do modelo. Essa métrica reflete uma restrição operacional que o modelo precisa satisfazer, como a latência de previsão. Você define um limite de latência como um valor específico, como 200 milissegundos. Os modelos que não atingirem o limite não serão aceitos. Outro exemplo de métrica de satisfação é o tamanho do modelo, que é importante quando você quer implantar o modelo em hardware de baixa potência, como dispositivos móveis e integrados.

Durante o experimento, você desenvolve, treina, avalia e depura seu modelo para melhorar a eficácia dele em relação às métricas de otimização, sem violar os limites das métricas de satisfação.

Diretrizes para experimentos

  • Tenha limites predefinidos e fixos para as métricas de otimização e para as de satisfação.
  • Implemente uma rotina de avaliação simplificada que use um modelo e dados e produza um conjunto de métricas de avaliação. Implemente a rotina para que ela funcione independentemente do tipo do modelo, como árvores de decisão ou redes neurais, ou do framework do modelo, como TensorFlow ou Scikit-learn.
  • Tenha um modelo de referência para comparação. Essa referência pode consistir em heurística fixada no código ou pode ser um modelo simples que prevê a média ou o valor de destino do modo. Use o modelo de referência para verificar o desempenho do modelo de ML. Se o modelo de ML não for melhor que o modelo de referência, haverá um problema fundamental no modelo de ML.
  • Rastreie todos os experimentos realizados para ajudar na reprodutibilidade e na melhoria incremental. Para cada experimento, armazene valores de hiperparâmetros, seleção de atributos e sementes aleatórias.

Diretrizes para a qualidade dos dados

  • Corrija todas as classes desequilibradas no início dos experimentos escolhendo a métrica de avaliação correta. Além disso, aplique técnicas como a ponderação de instâncias de classes minoritárias ou a redução instâncias de classes majoritárias.
  • Compreenda a fonte de dados em questão e realize o pré-processamento de dados e a engenharia de atributos relevantes para preparar o conjunto de dados de treinamento. Esse tipo de processo precisa ser repetível e automatizável.
  • Verifique se você tem uma divisão de dados de teste (validação) separada para a avaliação final do modelo. A divisão de teste não pode ser vista durante o treinamento e não deve ser usada para ajuste de hiperparâmetro.
  • Verifique se as divisões de treinamento, validação e teste representam igualmente seus dados de entrada. A amostragem dessa divisão de teste depende da natureza dos dados e da tarefa de ML em questão. Por exemplo, a divisão estratificada é relevante para tarefas de classificação, enquanto a divisão cronológica é relevante para tarefas de série temporal.
  • Faça com que as divisões de validação e teste sejam pré-processadas separadamente da divisão de dados de treinamento. Se as divisões forem pré-processadas em uma combinação, o resultado será um vazamento de dados. Por exemplo, quando você usa estatísticas para transformar dados para normalizar ou agrupar atributos numéricos em intervalos, calcula as estatísticas dos dados de treinamento e as aplica para normalizar as divisões de validação e teste.
  • Gere um esquema de conjunto de dados que inclua os tipos de dados e algumas propriedades estatísticas dos atributos. É possível usar esse esquema para encontrar dados anômalos ou inválidos durante o experimento e o treinamento.
  • Verifique se os dados de treinamento estão embaralhados adequadamente em lotes e se atendem aos requisitos de treinamento de modelo. Por exemplo, esta tarefa pode ser aplicada a distribuições de instância positivas e negativas.
  • Tenha um conjunto de dados de validação separado para o ajuste de hiperparâmetros e a seleção de modelo. Também é possível usar o conjunto de dados de validação para realizar paradas antecipadas. Caso contrário, você pode deixar o modelo treinar por todo o conjunto de iterações máximas. No entanto, apenas salve um novo snapshot do modelo se o desempenho dele no conjunto de dados de validação melhorar em relação ao snapshot anterior.

Diretrizes para a qualidade do modelo

  • Verifique se os modelos não têm problemas fundamentais que impedem que aprendam qualquer relação entre as entradas e as saídas. Para alcançar essa meta, treine o modelo com pouquíssimos exemplos. Se o modelo não tiver alta acurácia para esses exemplos, pode haver um bug na implementação do modelo ou na rotina de treinamento.
  • Ao treinar redes neurais, monitore os valores de NaN na sua perda e a porcentagem de pesos que têm valores zero em todo o treinamento do modelo. Esses valores NaN ou zero podem indicar cálculos aritméticos incorretos ou então desaparecimento ou explosão de gradientes. Visualizar as alterações na distribuição de valores de peso ao longo do tempo pode ajudar a detectar as mudanças internas de covariável que retardam a velocidade do treinamento. É possível aplicar a normalização em lote para aliviar essa redução na velocidade.
  • Compare o desempenho do modelo nos dados de treinamento e nos de teste para entender se o modelo está com overfitting ou underfitting. Se você encontrar algum desses problemas, faça as melhorias correspondentes. Por exemplo, se houver underfitting, é bom aumentar a capacidade de aprendizado do modelo. Se houver overfitting, aplique a regularização.
  • Analise instâncias classificadas de maneira incorreta, principalmente as instâncias com alta confiança de previsão e as classes mais confundidas na matriz de confusão multiclasse. Esses erros podem indicar exemplos de treinamento com rótulos incorretos. Os erros também podem identificar uma oportunidade para pré-processar dados, como remover outliers, ou criar novos atributos para ajudar a discriminar entre essas classes.
  • Analise as pontuações de importância dos atributos e limpe aqueles que não trazem melhorias para a qualidade do modelo. Os modelos permissivos têm preferência em relação aos complexos.

Diretrizes de qualidade para a implantação de pipeline de treinamento

Ao implementar o modelo e o pipeline de treinamento do modelo, crie um conjunto de testes em uma rotina de CI/CD. Esses testes são executados automaticamente à medida que você envia novas alterações de código ou antes de você implantar o pipeline de treinamento no ambiente de destino.

Diretrizes

  • Faça testes de unidade da funcionalidade de engenharia de atributos.
  • Faça testes de unidade da codificação das entradas para o modelo.
  • Faça testes de unidade dos módulos implementados pelo usuário (personalizados) dos modelos de maneira independente. Por exemplo, faça um teste de unidade da convolução de gráficos personalizados, das camadas de pooling ou das camadas de atenção personalizadas.
  • Faça testes de unidade em qualquer função de perda ou avaliação personalizada.
  • Faça testes de unidade dos tipos e formas de saída do modelo em relação às entradas esperadas.
  • Faça testes de unidade para verificar se a função fit do modelo está funcionando sem erros em alguns pequenos lotes de dados. Os testes precisam garantir que a perda diminua e que o tempo de execução da etapa de treinamento seja conforme esperado. Essas verificações são necessárias porque as alterações no código do modelo podem introduzir bugs que atrasam o processo de treinamento.
  • Faça testes de unidade da funcionalidade de salvar e carregar o modelo.
  • Faça testes de unidade das interfaces de exibição do modelo exportadas em relação às entradas brutas e às saídas esperadas.
  • Teste os componentes das etapas do pipeline com entradas simuladas e artefatos de saída.
  • Implante o pipeline em um ambiente de teste e realize testes de integração no pipeline de ponta a ponta. Nesse processo, use alguns dados de teste para garantir que o fluxo de trabalho seja executado corretamente e produza os artefatos esperados.
  • Use a implantação de sombra ao implantar uma nova versão do pipeline de treinamento no ambiente de produção. Uma implantação de sombra ajuda a garantir que a versão recém-implantada do pipeline seja executada em dados ativos em paralelo à versão anterior do pipeline.

Diretrizes de qualidade para treinamento contínuo

O processo de treinamento contínuo consiste em orquestrar e automatizar a execução de pipelines de treinamento. Os fluxos de trabalho típicos de treinamento incluem etapas como ingestão e divisão de dados, transformação de dados, além de treinamento, avaliação e registro de modelos. Alguns pipelines de treinamento consistem em fluxos de trabalho mais complexos. Outras tarefas podem incluir o treinamento de modelos autosupervisionados que usam dados não rotulados ou a criação de um índice vizinho próximo aproximado para embeddings. A entrada principal de qualquer pipeline de treinamento é de novos dados de treinamento, e a saída principal é um novo modelo candidato a ser implantado na produção.

O pipeline de treinamento é executado na produção automaticamente, com base em uma programação (por exemplo, diária ou semanalmente) ou em um gatilho (por exemplo, quando novos dados rotulados estão disponíveis). Portanto, é preciso adicionar etapas de controle de qualidade ao fluxo de trabalho de treinamento, especificamente etapas de validação de dados e validação de modelo. Essas etapas validam as entradas e as saídas dos pipelines.

Adicione a etapa de validação de dados após a etapa de ingestão de dados no fluxo de trabalho de treinamento. A etapa de validação de dados cria o perfil dos novos dados de treinamento de entrada que são ingeridos no pipeline. Durante a criação do perfil, o pipeline usa um esquema de dados predefinido, criado durante o processo de desenvolvimento de ML, para detectar anomalias. Dependendo do caso de uso, ignore ou remova apenas alguns registros inválidos do conjunto de dados. No entanto, outros problemas nos dados recém-processados podem interromper a execução do pipeline de treinamento. Portanto, identifique e resolva esses problemas.

Diretrizes para a validação de dados

  • Verifique se os atributos dos dados de treinamento extraídos estão completos e se correspondem aos esquemas esperados, ou seja, se não há atributos ausentes e adicionados. Verifique também se os atributos correspondem aos volumes projetados.
  • Valide os tipos de dados e as formas dos atributos no conjunto de dados que são ingeridos no pipeline de treinamento.
  • Verifique se os formatos de atributos específicos, como datas, horários, URLs, códigos postais e endereços IP, correspondem às expressões regulares esperadas. Além disso, verifique se os atributos estão dentro de intervalos válidos.
  • Valide a fração máxima de valores ausentes para cada atributo. Uma grande fração de valores ausentes em um atributo específico pode afetar o treinamento do modelo. Os valores ausentes costumam indicar uma fonte de atributos não confiável.
  • Valide os domínios dos atributos de entrada. Por exemplo, verifique se há alterações em um vocabulário de atributos categóricos ou no intervalo de atributos numéricos e ajuste o pré-processamento de dados adequadamente. Como outro exemplo, os intervalos de atributos numéricos podem mudar se uma atualização no sistema upstream que preencher os atributos usar unidades de medida diferentes. Por exemplo, o sistema upstream pode mudar a moeda de dólares para ienes ou as distâncias de quilômetros para metros.
  • Verifique se as distribuições de cada atributo correspondem às suas expectativas. Por exemplo, você pode testar se o valor mais comum de um atributo para um tipo de pagamento é cash e se esse tipo de pagamento representa 50% de todos os valores. No entanto, esse teste poderá falhar se houver uma alteração no tipo de pagamento mais comum para credit_card. Uma alteração externa como essa pode exigir alterações no modelo.

Adicione uma etapa de validação do modelo antes da etapa de registro para garantir que apenas os modelos que atendem aos critérios de validação sejam registrados para implantação na produção.

Diretrizes para a validação de modelos

  • Para a avaliação final do modelo, use uma divisão de teste separada que não tenha sido usada para treinamento de modelo ou ajuste de hiperparâmetros.
  • Compare o modelo candidato com a divisão de dados de teste, calcule as métricas de avaliação relevantes e verifique se o modelo ultrapassa os limites de qualidade predefinidos.
  • Verifique se a divisão de dados de teste representa os dados como um todo para contabilizar padrões de dados variados. Para dados de série temporal, verifique se a divisão de teste contém dados mais recentes do que a divisão de treinamento.
  • Teste a qualidade do modelo em partes importantes de dados, como usuários por país ou filmes por gênero. Ao testar dados divididos, você evita um problema em que problemas de desempenho refinados são mascarados por uma métrica de resumo global.
  • Avalie o modelo atual (campeão) em relação à divisão de dados de teste e compare-o com o modelo candidato (desafiante) que o pipeline de treinamento produz.
  • Valide o modelo com base em indicadores de imparcialidade para detectar um viés implícito. Por exemplo, o viés implícito pode ser induzido por diversidade insuficiente nos dados de treinamento. Os indicadores de imparcialidade podem revelar problemas de causa raiz que você precisa resolver antes de implantar o modelo na produção.

Durante o treinamento contínuo, é possível validar o modelo com métricas de otimização e de satisfação. É possível validar o modelo apenas com as métricas de otimização e adiar a validação com base na métrica de satisfação até a fase de implantação do modelo. Se você planeja implantar variações do mesmo modelo para diferentes ambientes ou cargas de trabalho de exibição, pode ser mais apropriado adiar a validação em relação à métrica de satisfação. Diferentes ambientes de exibição ou cargas de trabalho (como ambientes de nuvem ou de dispositivo ou ambientes em tempo real versus ambientes de exibição em lote) podem exigir limites de métrica diferentes. Se você estiver implantando em vários ambientes, o pipeline de treinamento contínuo vai poder treinar dois ou mais modelos, em que cada modelo é otimizado para o ambiente de implantação de destino. Veja mais informações e um exemplo em Implantações duplas na Vertex AI.

À medida que você coloca pipelines de treinamento contínuo com fluxos de trabalho complexos na produção, é preciso monitorar os metadados e os artefatos que o pipeline produz. O monitoramento dessas informações ajuda a rastrear e depurar qualquer problema que possa surgir na produção. O rastreamento das informações também ajuda a reproduzir as saídas dos pipelines para melhorar a implementação em iterações de desenvolvimento de ML subsequentes.

Diretrizes para monitorar metadados e artefatos de ML

  • Monitore a linhagem do código-fonte, dos pipelines implantados, dos componentes dos pipelines, das execuções de pipeline, do conjunto de dados em uso e dos artefatos produzidos.
  • Monitore os hiperparâmetros e as configurações de execução do pipeline.
  • Monitore entradas de chaves e artefatos de saída das etapas do pipeline, como estatísticas de conjuntos de dados, anomalias de conjunto de dados (se houver), dados e esquemas transformados, pontos de verificação do modelo e resultados de avaliação do modelo.
  • Monitore as etapas condicionais do pipeline executadas em resposta às condições e garanta a observabilidade. Para isso, adicione mecanismos de alteração caso as etapas principais não sejam executadas ou falhem.

Diretrizes de qualidade para a implantação de modelos

Vamos supor que você tem um modelo treinado e validado do ponto de vista das métricas de otimização, e o modelo está aprovado do ponto de vista da governança, conforme descrito adiante na governança do modelo. O modelo está armazenado no registro de modelo e está pronto para ser implantado na produção. Neste ponto, é preciso implementar um conjunto de testes para verificar se o modelo é adequado para exibir no ambiente de destino. Você também precisa automatizar esses testes em uma rotina de CI/CD de modelo.

Diretrizes

  • Verifique se o artefato do modelo pode ser carregado e invocado com êxito com as dependências de ambiente de execução. É possível realizar essa verificação colocando o modelo em uma versão em sandbox do ambiente de serviço. Essa verificação ajuda a garantir que as operações e os binários usados pelo modelo estejam presentes no ambiente.
  • Valide as métricas de satisfação do modelo (se houver) em um ambiente de preparo, como tamanho e latência do modelo.
  • Faça testes de unidade das interfaces de exibição de artefatos de modelo em um ambiente de preparo com entradas brutas e saídas esperadas.
  • Faça testes de unidade do artefato do modelo em um ambiente de preparo para um conjunto de casos típicos e de borda de solicitações de previsão. Por exemplo, faça um teste de unidade em uma instância de solicitação em que todos os atributos estão definidos como None.
  • Faça um teste preliminar na API de serviço do modelo depois que ela for implantada no ambiente de destino. Para executar esse teste, envie uma única instância ou um lote de instâncias para o serviço de modelo e valide a resposta do serviço.
  • Faça um teste canário da versão do modelo recém-implantada em um pequeno stream de dados de exibição ao vivo. Esse teste garante que o novo serviço de modelo não produza erros antes que o modelo seja exposto a um grande número de usuários.
  • Faça testes em um ambiente de preparo que possa ser revertido para uma versão anterior do modelo de exibição de maneira rápida e segura.
  • Realize experimentos on-line para testar o modelo recém-treinado usando um pequeno subconjunto da população de exibição. Esse teste mede o desempenho do novo modelo em comparação com o atual. Depois de comparar o desempenho do novo modelo com o desempenho do atual, você pode liberar completamente o novo modelo para exibir todas as solicitações de previsão em tempo real. As técnicas de experimentação on-line incluem testes A/B e bandido multi-armado (MAB).

Diretrizes de qualidade para a exibição de modelos

O desempenho preditivo dos modelos de ML implantados e exibidos na produção costuma degradar ao longo do tempo. Essa degradação pode ser causada por inconsistências que foram introduzidas entre os atributos de exibição e os atributos esperados pelo modelo. Essas inconsistências são chamadas de distorção entre treinamento e exibição. Por exemplo, um modelo de recomendação pode estar esperando um valor de entrada alfanumérico para um atributo, como um código de produto visualizado mais recentemente. Em vez disso, o nome do produto em vez do código do produto é transmitido durante a exibição, devido a uma atualização do aplicativo que está consumindo o serviço do modelo.

Além disso, o modelo pode ficar desatualizado à medida que as propriedades estatísticas dos dados de exibição se deslocam ao longo do tempo, e os padrões aprendidos pelo modelo implantado atual deixam de ser precisos. Em ambos os casos, o modelo não pode mais fornecer previsões com acurácia.

Para evitar essa degradação do desempenho preditivo do modelo, monitore continuamente a eficácia do modelo. O monitoramento permite verificar de maneira regular e proativa que o desempenho do modelo não está degradando.

Diretrizes

  • Registre uma amostra de payloads de solicitação-resposta em um armazenamento de dados para análise regular. A solicitação é a instância de entrada, e a resposta é a previsão produzida pelo modelo para essa instância de dados.
  • Implemente um processo automatizado para criar perfis dos dados de solicitação-resposta armazenados ao calcular estatísticas descritivas. Calcule e armazene essas estatísticas de exibição em intervalos regulares.
  • Identifique a distorção de serviço de treinamento causada pela alteração e desvio dos dados, comparando as estatísticas de dados de exibição com as estatísticas de referência dos dados de treinamento. Além disso, analise como as estatísticas de dados de exibição mudam com o tempo.
  • Identifique desvio de conceito analisando como as atribuições dos atributos das previsões mudam com o tempo.
  • Identifique as instâncias de dados de exibição consideradas outliers em relação aos dados de treinamento. Para encontrar esses outliers, use técnicas de detecção de novidades e monitore como a porcentagem de outliers nos dados de exibição muda ao longo do tempo.
  • Defina alertas para quando o modelo alcançar os limites de pontuação de desvio nos principais atributos preditivos no conjunto de dados.
  • Se os rótulos estiverem disponíveis, ou seja, os dados empíricos, junte-os aos rótulos previstos das instâncias de exibição para realizar uma avaliação contínua. Essa abordagem é semelhante ao sistema de avaliação que você implementa como teste A/B durante o experimento on-line. A avaliação contínua pode identificar não apenas a capacidade preditiva do modelo na produção, mas também identificar com que tipo de solicitação ele funciona bem ou mal.
  • Defina objetivos para as métricas do sistema que são importantes para você e meça o desempenho dos modelos de acordo com esses objetivos.
  • Monitore a eficiência do serviço para garantir que o modelo seja exibido em escala na produção. Esse monitoramento também ajuda a prever e gerenciar o planejamento da capacidade, além de estimar o custo da infraestrutura de exibição. Monitore métricas de eficiência, incluindo uso de CPU, uso de GPU, uso de memória, latência do serviço, capacidade de processamento e taxa de erros.

Governança do modelo

A governança do modelo é uma função principal nas empresas que fornece diretrizes e processos para ajudar os funcionários a implementar os princípios de IA da empresa. Esses princípios podem incluir evitar modelos que criem ou apliquem vieses e poder justificar decisões tomadas por IA. A função da governança do modelo garante que haja um human in the loop. Ter uma revisão humana é especialmente importante para cargas de trabalho confidenciais e de alto impacto, geralmente voltadas para o usuário. Cargas de trabalho como essa podem incluir a pontuação de risco de crédito, a classificação de candidatos, a aprovação de apólices de seguro e a propagação de informações nas mídias sociais.

Diretrizes

  • Tenha uma matriz de atribuição de responsabilidade para cada modelo por tarefa. A matriz precisa considerar equipes multifuncionais (linhas de negócios, engenharia de dados, ciência de dados, engenharia de ML, risco e conformidade, entre outras) em toda a hierarquia da organização.
  • Mantenha a documentação e os relatórios do modelo no registro do modelo vinculado à versão de um modelo, Por exemplo, usando cartões de modelo. Esses metadados incluem informações sobre os dados usados para treinar o modelo, o desempenho do modelo e as limitações conhecidas.
  • Implemente um processo de revisão do modelo antes de aprová-lo para implantação na produção. Nesse tipo de processo, você mantém versões da lista de verificação do modelo, documentação suplementar e todas as informações adicionais que as partes interessadas solicitarem.
  • Avalie o modelo em conjuntos de dados de referência, também conhecidos como conjuntos de dados de ouro, que abrangem casos padrão e extremos. Além disso, valide o modelo em relação aos indicadores de imparcialidade para ajudar a detectar o viés implícito.
  • Explique aos usuários do modelo o comportamento preditivo do modelo como um todo e em instâncias de entrada de amostra específicas. Essas informações ajudam a entender atributos importantes e possíveis comportamentos indesejáveis do modelo.
  • Analise o comportamento preditivo do modelo usando as ferramentas de análise What-if para entender a importância de diferentes atributos de dados. Essa análise também pode ajudar a visualizar o comportamento do modelo em vários modelos e subconjuntos de dados de entrada.
  • Teste o modelo contra ataques adversários para garantir que fique robusto contra a exploração na produção.
  • Monitore alertas sobre o desempenho preditivo de modelos que estão na produção, com alterações de conjunto de dados e desvios. Configure os alertas para notificar as partes interessadas no modelo.
  • Gerencie o experimento, o lançamento e a reversão dos modelos on-line.

A seguir