{"id":25815,"date":"2023-09-01T18:35:35","date_gmt":"2023-09-01T18:35:35","guid":{"rendered":"https:\/\/building.nubank.com\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/"},"modified":"2024-03-05T15:31:21","modified_gmt":"2024-03-05T15:31:21","slug":"removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns","status":"publish","type":"post","link":"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/","title":{"rendered":"Removendo Riscos de Projetos de Aprendizado de M\u00e1quina (ML) em Tempo Real: Resolvendo Modos de Falha Comuns"},"content":{"rendered":"\n<p><em>Escrito por <\/em><a href=\"https:\/\/building.nubank.com\/authors\/felipe-almeida-data-scientist\/\">Felipe Almeida<\/a> e <em>revisado<\/em> por <a href=\"https:\/\/building.nubank.com\/authors\/rubens-bolgheroni\/\"><em>Rubens Bolgheroni&nbsp;<\/em><\/a><\/p>\n\n\n\n<p>Aprendizado de m\u00e1quina (ML) \u00e9 uma ferramenta poderosa, mas cara e arriscada. Ela \u00e9 poderosa porque costuma ser a \u00fanica solu\u00e7\u00e3o dimension\u00e1vel para problemas complexos. \u00c9 cara porque os recursos (profissionais especializados e pot\u00eancia de computa\u00e7\u00e3o) s\u00e3o caros. E \u00e9 <em>arriscada<\/em> porque os modelos quebram de formas muitas vezes estranhas e <em>silenciosas<\/em>: desvio de dados (<em>data drift<\/em>) ou recursos quebrados n\u00e3o ativam exce\u00e7\u00f5es, apesar de que as previs\u00f5es do modelo provavelmente ser\u00e3o ruins.<\/p>\n\n\n\n<p><em>Um projeto de aprendizado de m\u00e1quina (ML) \u00e9 o processo de levar uma ideia de fato para um sistema de software funcional usando um modelo de aprendizado de m\u00e1quina (ML).<\/em><\/p>\n\n\n\n<p>Escrevemos sobre os usos do aprendizado de m\u00e1quina (ML) em tempo real <a href=\"https:\/\/building.nubank.com\/pt-br\/real-time-machine-learning-models-in-real-life\/\">no passado<\/a>. Mas antes que voc\u00ea possa <em>pensar<\/em> em usar aprendizado de m\u00e1quina (ML) para ajudar sua empresa, precisa de um <strong>projeto<\/strong> que o transforme de uma ideia para um equipamento funcional, retornando resultados. E voc\u00ea <em>n\u00e3o<\/em> quer que o projeto <em>fracasse<\/em>, pois \u00e9 dinheiro e tempo que poderiam ter sido usados em outro lugar na empresa. Isso, obviamente, <a href=\"https:\/\/eugeneyan.com\/writing\/first-rule-of-ml\/\">presume que voc\u00ea <em>de fato<\/em> precise de um modelo de aprendizado de m\u00e1quina (ML) em primeiro lugar<\/a>.<\/p>\n\n\n\n<p>Por\u00e9m, mesmo que um projeto de aprendizado de m\u00e1quina (ML) <em>realmente fracasse<\/em>, \u00e9 melhor que seja <em>cedo<\/em>, antes que muito tempo e dinheiro sejam investidos nele. A Figura 1 abaixo mostra os diferentes resultados de um projeto, dependendo de ele ter retornado valor \u00e0 empresa e do tempo que levou at\u00e9 sua conclus\u00e3o.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"387\" src=\"https:\/\/lh7-us.googleusercontent.com\/E7T0YQMwqae-SjGs1BmFuj6tGoIZg-q2Qy7mnBdd0HfqVdys1GxH6k8boGSUEWOjWRSzMXzVjsPpIYz9jLK6FZNGytYdNrYnr3PWnXAJL-APzIvZdbu53QfYGZvb89kxITC7ktGcuKk8VT55cziTCQ\" alt=\"Interface gr\u00e1fica do usu\u00e1rio, PowerPoint\n\nDescri\u00e7\u00e3o gerada automaticamente\"><\/p>\n\n\n\n<p><strong><em>Figura 1<\/em><\/strong><em>: Os resultados do projeto raramente s\u00e3o bin\u00e1rios, mas uma const\u00e2ncia de &#8220;n\u00edveis&#8221; de sucesso. O sucesso depende do impacto dos resultados, mas levamos em considera\u00e7\u00e3o o tempo e os custos do projeto.<\/em><br><\/p>\n\n\n\n<p>E <em>por que<\/em> projetos de aprendizado de m\u00e1quina (ML) fracassam?<\/p>\n\n\n\n<p>H\u00e1 muitos motivos: problemas com dados e expectativas desalinhadas entre clientes e a equipe de modelagem, para citar alguns.<\/p>\n\n\n\n<p>Entretanto, projetos de aprendizado de m\u00e1quina (ML) em <em>tempo real<\/em> aumentam os riscos: eles possuem <em>ainda mais modos de fracasso<\/em> do que projetos regulares (sem ser em tempo real). Al\u00e9m de todos os riscos inerentes ao aprendizado de m\u00e1quina (ML), modelos em tempo real s\u00e3o sistemas de software que precisam ser integrados a outros sistemas em tempo real atrav\u00e9s de APIs, e costumam estar sujeitos a tempos de resposta restritos para <a href=\"https:\/\/building.nubank.com\/pt-br\/como-lidar-com-distorcao-entre-treinamento-e-exibicao-em-modelos-de-aprendizado-de-maquina-ml-em-tempo-real-um-breve-guia\/\">manter a paridade com o ambiente de treinamento<\/a>.<\/p>\n\n\n\n<p>Nesta postagem mostraremos <a href=\"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/#typical-project-timeline\">como \u00e9 um projeto de aprendizado de m\u00e1quina (ML) t\u00edpico<\/a> e depois veremos as formas mais comuns em que esses projetos podem fracassar.<a href=\"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/#real-time-ml-failure-modes\"> <\/a>Por fim, forneceremos instru\u00e7\u00f5es pr\u00e1ticas para resolver ou <em>reduzir o risco<\/em> de cada ponto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Linha temporal t\u00edpica de um projeto<\/h2>\n\n\n\n<p>Como mencionado antes, um <strong>projeto<\/strong> \u00e9 o processo que transforma uma ideia em realidade. No caso de aprendizado de m\u00e1quina (ML), isso inclui escolher um problema corporativo, entender se e como pode ser resolvido com aprendizado de m\u00e1quina (ML) e, por fim, criar um modelo e integr\u00e1-lo \u00e0 infraestrutura de TI b\u00e1sica da empresa.<\/p>\n\n\n\n<p>Os est\u00e1gios de um projeto de aprendizado de m\u00e1quina (ML) em tempo real t\u00edpico podem ser resumidos assim:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Concep\u00e7\u00e3o e entendimento do caso de uso<\/strong>: Entender como e <em>por quem<\/em> o modelo ser\u00e1 usado. \u00c0s vezes, o veredito pode ser que aprendizado de m\u00e1quina (ML) <em>n\u00e3o seja<\/em> a solu\u00e7\u00e3o correta.<\/li>\n\n\n\n<li><strong>An\u00e1lise de Dados e Modelagem<\/strong>: Quando o caso de uso estiver estabelecido, organize os dados e realize a explora\u00e7\u00e3o de dados. Ent\u00e3o, modele o problema: sele\u00e7\u00e3o de recursos e treinamento de modelo.<\/li>\n\n\n\n<li><strong>Defini\u00e7\u00e3o da camada de decis\u00e3o<\/strong>: No p\u00f3s-treinamento, entenda como os resultados do modelo ser\u00e3o <em>traduzidos<\/em> em escolhas corporativas. Isso pode incluir t\u00e9cnicas de otimiza\u00e7\u00e3o (por exemplo, qual a pontua\u00e7\u00e3o de corte ideal para que uma determinada m\u00e9trica da empresa seja maximizada?)<\/li>\n\n\n\n<li><strong>Implementa\u00e7\u00e3o \/ Integra\u00e7\u00e3o em Tempo Real<\/strong>: Integre o modelo \u00e0 infraestrutura de TI b\u00e1sica, conectando-o a outros servi\u00e7os para buscar recursos e retornar as decis\u00f5es aos servi\u00e7os de solicita\u00e7\u00e3o.<\/li>\n\n\n\n<li>Configure o monitoramento: Configure o registro de dados e ferramentas como Splunk ou Grafana para rastrear m\u00e9tricas e recursos do modelo.<\/li>\n<\/ol>\n\n\n\n<p>Tenha em mente que as etapas acima n\u00e3o s\u00e3o necessariamente <em>lineares<\/em>. Ou seja, elas n\u00e3o precisam acontecer em sequ\u00eancia.&nbsp;<\/p>\n\n\n\n<p>Por exemplo, pode ser necess\u00e1rio voltar \u00e0 fase de concep\u00e7\u00e3o durante o projeto para revisitar presun\u00e7\u00f5es que n\u00e3o eram verdadeiras. Al\u00e9m disso, cientistas de dados podem precisar treinar novamente o modelo se houver um problema com algum recurso que agora precise ser abandonado. A Figura 2 abaixo apresenta um resumo visual:<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"281\" src=\"https:\/\/lh7-us.googleusercontent.com\/oOkpv5OdKBfGT1yY3t23hETyfbkI6EKdj7K2zwW6otL06TfiF2oBx9HUa0KLm6UVS1oBudBtoreZhSjG466RRBOyNqQqqCIYg45k1w5vBg6EWamq-IsROe_IEgBILw3NgLG-nC2LZBk_m6ieQwMZ5w\" alt=\"Diagrama\n\nDescri\u00e7\u00e3o gerada automaticamente\"><\/p>\n\n\n\n<p><strong><em>Figura 2<\/em><\/strong><em>: Projeto de aprendizado de m\u00e1quina (ML) em tempo Real t\u00edpico. Observe que \u00e0s vezes pode ser necess\u00e1rio &#8220;voltar&#8221; aos est\u00e1gios anteriores dependendo de imprevistos, como dados inconsistentes e a necessidade de abandonar recursos do modelo, exigindo um novo treinamento. Al\u00e9m disso, algumas etapas podem ocorrer paralelamente.<\/em><br><\/p>\n\n\n\n<p>H\u00e1 dois tipos de projetos de aprendizado de m\u00e1quina (ML) em tempo real: introduzindo um novo modelo e atualizando um modelo existente:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Introduzindo um novo modelo<\/strong>: criar um novo modelo desde o princ\u00edpio e integr\u00e1-lo a um fluxo corporativo que atualmente n\u00e3o usa modelos.<\/li>\n\n\n\n<li><strong>Atualizando um modelo existente<\/strong>: atualizar ou substituir um modelo existente por uma vers\u00e3o aprimorada, com mais recursos, mais dados de treinamento, um novo algoritmo etc.<\/li>\n<\/ul>\n\n\n\n<p>Essa distin\u00e7\u00e3o \u00e9 \u00fatil porque atualizar um modelo <em>existente<\/em> \u00e9 menos <em>arriscado<\/em> que introduzir um novo modelo a um fluxo corporativo. Se a <em>maneira<\/em> com que o modelo \u00e9 usado for a mesma, voc\u00ea pode pular o est\u00e1gio de valida\u00e7\u00e3o do caso de uso, que \u00e9 onde est\u00e1 grande parte dos riscos.<\/p>\n\n\n\n<p>Independentemente de estarmos introduzindo um novo modelo ou atualizando um existente, todos os est\u00e1gios do projeto apresentam riscos. Agora veremos algumas das formas em que projetos de aprendizado de m\u00e1quina (ML) em tempo real fracassam.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Modos de fracasso de aprendizado de m\u00e1quina (ML) em tempo real<\/h2>\n\n\n\n<p>Como mencionado na introdu\u00e7\u00e3o, h\u00e1 <em>n\u00edveis<\/em> de fracasso em projetos de aprendizado de m\u00e1quina (ML). O fracasso de um projeto devido ao desempenho insatisfat\u00f3rio do modelo \u00e9 ruim. Mas um projeto fracassar <em>ap\u00f3s investir um tempo consider\u00e1vel<\/em> nele \u00e9 muito pior.<\/p>\n\n\n\n<p>de aprendizado tem suas vulnerabilidades singulares. Isso \u00e9 especialmente verdadeiro para projetos em tempo real, pois a instala\u00e7\u00e3o do modelo e a integra\u00e7\u00e3o de servi\u00e7os apresentam uma camada <em>adicional<\/em> de complexidade. Projetos de aprendizado de m\u00e1quina (ML) em tempo real bem-sucedidos reconhecem os riscos e os minimizam quando necess\u00e1rio.<\/p>\n\n\n\n<p><em>&#8220;Todos os projetos de aprendizado de m\u00e1quina (ML) bem-sucedidos s\u00e3o parecidos; cada projeto de aprendizado de m\u00e1quina (ML) fracassado foi malsucedido do seu pr\u00f3prio jeito&#8221;. \u2013 Leo Tolstoy, provavelmente<\/em><\/p>\n\n\n\n<p>A <strong>Tabela 1<\/strong> lista alguns dos modos de fracasso para projetos de aprendizado de m\u00e1quina (ML) em tempo real. Alguns deles refletem problemas de falha de comunica\u00e7\u00e3o e alinhamento corporativo; alguns refletem problemas de modelagem, e outros est\u00e3o relacionados a acidentes de engenharia e implementa\u00e7\u00e3o. Muitos deles tamb\u00e9m s\u00e3o relevantes para projetos de aprendizado de m\u00e1quina (ML) em <em>lotes<\/em> (ou seja, sem ser em tempo real).<\/p>\n\n\n\n<p>Tabela 1: Lista n\u00e3o exaustiva de modos de fracasso para projetos de aprendizado de m\u00e1quina (ML) em tempo real<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Modo de fracasso\/ Risco<\/strong><\/td><td><strong>Exemplo \/ Descri\u00e7\u00e3o<\/strong><\/td><\/tr><tr><td>O desempenho do modelo n\u00e3o \u00e9 bom o bastante<\/td><td>Um modelo de detec\u00e7\u00e3o de fraude tinha precis\u00e3o t\u00e3o baixa no momento do treinamento que n\u00e3o poderia ser usado devido a grandes taxas de falso-positivos.<\/td><\/tr><tr><td>O tempo de resposta do modelo \u00e9 longo demais<\/td><td>Ap\u00f3s o modelo ter sido instalado, a equipe percebeu que o tempo de resposta dele (buscar recursos e pontuar) \u00e9 inaceitavelmente longo, ent\u00e3o o modelo nunca foi usado.<\/td><\/tr><tr><td>O desempenho do modelo no momento da conclus\u00e3o \u00e9 diferente do momento de treinamento<\/td><td>O desempenho do modelo foi inesperadamente ruim na produ\u00e7\u00e3o, ent\u00e3o precisou ser descontinuado. Poss\u00edveis causas: distor\u00e7\u00e3o entre treinamento e exibi\u00e7\u00e3o, deslocamento de dados (<em>data drift<\/em>) e vazamento de dados.<\/td><\/tr><tr><td>O caso de uso n\u00e3o suporta tomadas de decis\u00f5es probabil\u00edsticas<\/td><td>Apesar de a precis\u00e3o do modelo ser boa, o fluxo corporativo n\u00e3o suporta um resultado &#8220;provavelmente verdadeiro&#8221;, talvez devido a responsabilidades legais. Cada decis\u00e3o do modelo precisa de confirma\u00e7\u00e3o humana, ent\u00e3o uma solu\u00e7\u00e3o totalmente baseada no modelo n\u00e3o \u00e9 vi\u00e1vel.<\/td><\/tr><tr><td>Os recursos escolhidos n\u00e3o est\u00e3o dispon\u00edveis no momento da conclus\u00e3o<\/td><td>Durante a implementa\u00e7\u00e3o, a equipe descobriu que alguns recursos com os quais o modelo foi treinado n\u00e3o est\u00e3o dispon\u00edveis em tempo real. Esses recursos tiveram que ser removidos, prejudicando severamente o desempenho do modelo e o inutilizando. Poss\u00edveis causas: distor\u00e7\u00e3o entre treinamento e exibi\u00e7\u00e3o e vazamento de dados.<\/td><\/tr><tr><td>O modelo n\u00e3o \u00e9 economicamente vi\u00e1vel<\/td><td>O custo de treinamento, implementa\u00e7\u00e3o e opera\u00e7\u00e3o do modelo \u00e9 t\u00e3o alto que n\u00e3o vale os ganhos financeiros que seu uso traria.<\/td><\/tr><tr><td><em>Feature creep<\/em><\/td><td>Gastou-se tempo demais tentando otimizar o desempenho do modelo, e demorou tanto para entrar em produ\u00e7\u00e3o que perdeu sua janela corporativa.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Agora veremos algumas etapas pr\u00e1ticas que voc\u00ea, profissional de aprendizado de m\u00e1quina (ML) ou gerente de projetos, pode realizar para resolver esses problemas. Elas n\u00e3o est\u00e3o listadas em nenhuma ordem particular, e todas provaram-se \u00fateis para n\u00f3s no Nubank.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Redu\u00e7\u00e3o de riscos: Eduque os clientes onde poss\u00edvel<\/h2>\n\n\n\n<p><strong>Riscos Resolvidos:<\/strong> Todos<\/p>\n\n\n\n<p>Muitos ainda veem o aprendizado de m\u00e1quina (ML) como &#8220;bruxaria&#8221; e possuem cren\u00e7as irrealistas do que \u00e9 poss\u00edvel fazer com isso. Voc\u00ea pode, e deve, ajudar os clientes a entender, ao menos superficialmente, como o aprendizado de m\u00e1quina (ML) funciona para que possam calibrar suas expectativas em n\u00edveis mais realistas, e isso ajuda voc\u00ea a trabalhar<\/p>\n\n\n\n<p>Pessoas de setores como bancos s\u00e3o mais acostumadas a trabalhar com modelos, mas <em>nem l\u00e1<\/em> seria inteligente <em>presumir<\/em> que entendem, mesmo em um n\u00edvel superficial, o que \u00e9 aprendizado de m\u00e1quina (ML).<\/p>\n\n\n\n<p>Aqui est\u00e3o tr\u00eas pontos essenciais que todos os usu\u00e1rios n\u00e3o t\u00e9cnicos deveriam entender sobre aprendizado de m\u00e1quina (ML):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Modelos s\u00e3o probabil\u00edsticos<\/strong>. Eles podem ter bom desempenho <em>na m\u00e9dia<\/em>, mas ter\u00e3o previs\u00f5es individuais erradas. \u00c0s vezes <em>muito<\/em> erradas.<\/li>\n\n\n\n<li><strong>Modelos precisam de uma camada de decis\u00e3o<\/strong>. T\u00e3o importante quanto o pr\u00f3prio modelo \u00e9 a l\u00f3gica que decide o que <em>fazer<\/em> com uma determinada previs\u00e3o do modelo. \u00c0s vezes isso \u00e9 chamado de camada de <em>pol\u00edtica<\/em>.<\/li>\n\n\n\n<li><strong>Modelos declinam ao longo do tempo<\/strong>. Eles precisam de manuten\u00e7\u00e3o e monitoramento ap\u00f3s serem enviados para produ\u00e7\u00e3o. E eles eventualmente precisam ser treinados novamente.<\/li>\n<\/ul>\n\n\n\n<p>Um bom jeito de ajudar os usu\u00e1rios finais a terem intui\u00e7\u00e3o sobre aprendizado de m\u00e1quina (ML) \u00e9 mostrar mapas de import\u00e2ncia de recurso, como o <em>mapa de enxame<\/em> (<em>beeswarm<\/em>) visto abaixo na Figura 3. Isso motiva discuss\u00f5es interessantes com usu\u00e1rios n\u00e3o t\u00e9cnicos e os ajuda a entender como a pontua\u00e7\u00e3o de um modelo \u00e9 calculada a partir de seus recursos.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"325\" src=\"https:\/\/lh7-us.googleusercontent.com\/fiHma252vomMwpHtx6cQhR0-rQWRTsGiSmMDfP8mmTHjbmxLPkGQTI_HXJs9_ntdPcElZ8-PDu7gE2GQztHqCd5x2Tb_UbZRyzEKAwBTtjkdIaTDdUR2-my1-I_UfOz4vzXx9hwmJ6_Vpn09BBv7wA\" alt=\"Gr\u00e1fico\n\nDescri\u00e7\u00e3o gerada automaticamente\"><\/p>\n\n\n\n<p><strong><em>Figura 3<\/em><\/strong><em>: <\/em><strong><em>Mapa de enxame de amostragem da <\/em><\/strong><a href=\"https:\/\/shap.readthedocs.io\/en\/latest\/example_notebooks\/api_examples\/plots\/beeswarm.html\"><strong><em>biblioteca SHAP<\/em><\/strong><\/a><em>. Trabalhar com mapas de import\u00e2ncia de recurso \u00e9 um \u00f3timo jeito de \u201censinar\u201d usu\u00e1rios n\u00e3o t\u00e9cnicos o b\u00e1sico de como um modelo funciona. Isso os ajuda a desenvolver intui\u00e7\u00e3o sobre o aprendizado de m\u00e1quina (ML) e tornar\u00e1 a intera\u00e7\u00e3o mais eficiente. <\/em><a href=\"https:\/\/shap.readthedocs.io\/en\/latest\/generated\/shap.plots.force.html\"><em>O mapa de for\u00e7a<\/em><\/a><em> tamb\u00e9m \u00e9 \u00fatil para explicar uma \u00fanica previs\u00e3o. <\/em><a href=\"https:\/\/shap.readthedocs.io\/en\/latest\/example_notebooks\/api_examples\/plots\/beeswarm.html\"><em>Fonte<\/em><br><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Redu\u00e7\u00e3o de riscos: Certifique-se de que os dados sejam bons<\/h2>\n\n\n\n<p><strong>Riscos Resolvidos:<\/strong> O desempenho do modelo n\u00e3o \u00e9 bom o bastante | O desempenho do modelo no momento da conclus\u00e3o \u00e9 diferente do momento de treinamento.<\/p>\n\n\n\n<p>O ditado &#8220;entra lixo, sai lixo&#8221; engloba a ess\u00eancia do aprendizado de m\u00e1quina (ML). \u00c9 sua responsabilidade garantir que os dados sejam bons o bastante para fins de modelagem.<\/p>\n\n\n\n<p><em>\u00c9 seu trabalho, como profissional de aprendizado de m\u00e1quina (ML), entender se os dados dispon\u00edveis s\u00e3o bons o bastante para modelagem, tanto no momento de treinamento quanto no momento da conclus\u00e3o.<\/em><\/p>\n\n\n\n<p>Como sempre, o aprendizado de m\u00e1quina (ML) em tempo real adiciona uma dimens\u00e3o a mais a esse problema, ent\u00e3o voc\u00ea precisa se preocupar n\u00e3o apenas com os dados de treinamento (se s\u00e3o suficientes e possuem boa qualidade), mas tamb\u00e9m com a forma de recuperar os dados no momento da conclus\u00e3o.<\/p>\n\n\n\n<p>Sugerimos uma abordagem de redu\u00e7\u00e3o de risco de tr\u00eas frontes: (a) fazer as perguntas corretas sobre os dados, (b) realizar an\u00e1lises de dados extensivas e (c) estabelecer uma rela\u00e7\u00e3o com a equipe de dados em tempo real:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fa\u00e7a as perguntas certas sobre os dados<\/h2>\n\n\n\n<p>No in\u00edcio do projeto, voc\u00ea deve fazer diversas perguntas sobre quais dados est\u00e3o dispon\u00edveis e como identific\u00e1-los. Aqui est\u00e3o algumas sugest\u00f5es:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Quantos dados temos? (Isto \u00e9, quantas fileiras, clientes e pontos de dados)<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Os dados s\u00e3o de quanto tempo atr\u00e1s?<\/li>\n\n\n\n<li>Os dados de treinamento s\u00e3o semelhantes aos dados no momento da conclus\u00e3o?<\/li>\n\n\n\n<li>Os dados antigos foram substitu\u00eddos de alguma forma? Podemos nos certificar de que os dados antigos s\u00e3o &#8220;imut\u00e1veis&#8221; e que podemos voltar \u00e0quele momento quando treinarmos o modelo?&nbsp;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Realize an\u00e1lises de dados extensivas<\/h2>\n\n\n\n<p>Quando voc\u00ea tem acesso aos dados, \u00e9 preciso realizar rotinas de automa\u00e7\u00e3o de design eletr\u00f4nico (EDA) para verificar a qualidade dos dados, e voc\u00ea precisa conferir minuciosamente cada informa\u00e7\u00e3o que recebeu sobre os dados para garantir que n\u00e3o haja decis\u00f5es equivocadas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Estabele\u00e7a uma rela\u00e7\u00e3o com a equipe de dados em tempo real assim que poss\u00edvel<\/h2>\n\n\n\n<p>As equipes respons\u00e1veis por tornar os dados dispon\u00edveis em tempo real normalmente n\u00e3o s\u00e3o as mesmas respons\u00e1veis por dados &#8220;inertes&#8221;.<\/p>\n\n\n\n<p>Descubra quem s\u00e3o essas pessoas e mantenha contato com elas para garantir que as informa\u00e7\u00f5es com as quais voc\u00ea treinar\u00e1 o modelo tamb\u00e9m estejam dispon\u00edveis quando voc\u00ea precisar fazer previs\u00f5es em tempo real. Certifique-se de que voc\u00ea entende a velocidade da busca de dados.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Redu\u00e7\u00e3o de riscos: Entenda como as previs\u00f5es do modelo ser\u00e3o usadas<\/h2>\n\n\n\n<p><strong>Riscos Resolvidos:<\/strong> O desempenho do modelo n\u00e3o \u00e9 bom o bastante | O tempo de resposta do modelo \u00e9 longo demais | O caso de uso n\u00e3o suporta tomadas de decis\u00f5es probabil\u00edsticas.<\/p>\n\n\n\n<p>Imagine criar um modelo perfeitamente bom, com \u00f3timo desempenho, s\u00f3 para v\u00ea-lo juntar poeira. O pior que pode acontecer com um projeto de aprendizado de m\u00e1quina (ML) \u00e9 produzir um modelo que nunca seja usado para tomar decis\u00f5es corporativas.<\/p>\n\n\n\n<p><em>Voc\u00ea precisa saber antecipadamente como as previs\u00f5es do modelo ser\u00e3o usadas, e por quem.&nbsp;<\/em><\/p>\n\n\n\n<p>Um dos motivos disso \u00e9 que a equipe de modelagem n\u00e3o dedicou tempo para entender com clareza <em>como<\/em> o modelo deve ser usado, e <em>por quem<\/em>.&nbsp;<\/p>\n\n\n\n<p>Uma parte essencial do entendimento do uso do modelo \u00e9 discutir a <em>camada de decis\u00e3o<\/em>: o c\u00f3digo ou processo corporativo que receber\u00e1 as previs\u00f5es do modelo e <em>decidir\u00e1<\/em> qual a\u00e7\u00e3o tomar com base nas previs\u00f5es. Falar sobre a camada de decis\u00e3o for\u00e7a as equipes de modelagem e cliente a discutirem como exatamente as previs\u00f5es do modelo ser\u00e3o usadas, e esclarecer qualquer confus\u00e3o no processo.<\/p>\n\n\n\n<p>A Figura 4 mostra um exemplo de como seria uma camada de decis\u00e3o bem simples para um simples modelo de risco de cr\u00e9dito.&nbsp;<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"336\" src=\"https:\/\/lh7-us.googleusercontent.com\/_IRmOOz3LCOViPmYH2WOU3dCJN1-bccwb86BmVvOdbxNRLv_i8h3SIUwRgS4CtjZ7GE97mj1kqkTUnT830T2DHxnZtwKLsNo2Hs407CbG8zbbUuiEgkmCQ8Pyb_YQSS7bqT3sDb3ehr4TA51u2ozTA\" alt=\"Diagrama\n\nDescri\u00e7\u00e3o gerada automaticamente\"><\/p>\n\n\n\n<p><strong><em>Figura 4<\/em><\/strong><em>: <\/em><strong><em>Um sistema de concess\u00e3o de cr\u00e9dito t\u00edpico com uma camada de decis\u00e3o simples<\/em><\/strong><em>. Uma &#8220;camada de decis\u00e3o&#8221; para um modelo pode ser t\u00e3o simples quanto uma \u00fanica condi\u00e7\u00e3o if\/else com base na previs\u00e3o do modelo.&nbsp; Se a pontua\u00e7\u00e3o de risco estiver abaixo de algum limite, conceder o empr\u00e9stimo, de outro modo, negue-o.<\/em>&nbsp;<\/p>\n\n\n\n<p>Al\u00e9m da discuss\u00e3o da camada de decis\u00e3o, quanto mais perguntas voc\u00ea fizer sobre o caso de uso do modelo, maior a chance de descobrir <em>presun\u00e7\u00f5es impl\u00edcitas<\/em> que podem causar problemas posteriormente.<\/p>\n\n\n\n<p>Algumas perguntas que voc\u00ea deve se fazer:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Engenharia<\/strong>\n<ul class=\"wp-block-list\">\n<li>Qual equipe ou servi\u00e7o usar\u00e1 o modelo?<\/li>\n\n\n\n<li>Como o servi\u00e7o de solicita\u00e7\u00e3o far\u00e1 solicita\u00e7\u00f5es ao modelo? Chamadas de http? Chamadas de async?<\/li>\n\n\n\n<li>Onde os recursos e as previs\u00f5es do modelo ser\u00e3o salvos ou <em>registrados<\/em>?<\/li>\n\n\n\n<li>Onde as verdadeiras metas ser\u00e3o salvas? (para que voc\u00ea possa monitorar o desempenho e treinar novamente o modelo depois)<\/li>\n\n\n\n<li>H\u00e1 restri\u00e7\u00f5es de tempo de resposta para o modelo?<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Empresa<\/strong>\n<ul class=\"wp-block-list\">\n<li>Qual ser\u00e1 o impacto na empresa se as previs\u00f5es do modelo estiverem erradas?\n<ul class=\"wp-block-list\">\n<li>Qual deve ser o &#8220;plano b&#8221; se o modelo parar de funcionar?<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Modelagem<\/strong>\n<ul class=\"wp-block-list\">\n<li>Precisaremos <a href=\"https:\/\/building.nubank.com\/pt-br\/muito-alem-do-shap-um-panorama-da-xai\/\"><em>explicar<\/em><\/a> as decis\u00f5es do modelo individualmente?<\/li>\n\n\n\n<li>As previs\u00f5es do modelo precisam ser probabilidades calibradas?<\/li>\n\n\n\n<li>Precisaremos de um <a href=\"https:\/\/building.nubank.com\/pt-br\/a-gentle-and-practical-introduction-to-a-b-tests\/\">teste A\/B<\/a> para medir o impacto do modelo?<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Redu\u00e7\u00e3o de riscos: Realize um pr\u00e9-mortem<\/h2>\n\n\n\n<p><strong>Riscos Resolvidos:<\/strong> Todos<\/p>\n\n\n\n<p>Um encontro <em>p\u00f3s-mortem<\/em> acontece ap\u00f3s um projeto fracassar. Seu objetivo \u00e9 entender as causas do fracasso para que possam ser evitadas no futuro.<\/p>\n\n\n\n<p>Um pr\u00e9-mortem \u00e9 semelhante, mas ocorre no in\u00edcio de um projeto. \u00c9 uma reuni\u00e3o para expor ideias, e seu objetivo n\u00e3o \u00e9 entender <em>por que<\/em> um projeto fracassou, e sim impedir que fracasse. Ele funciona com pessoas <em>fingindo<\/em> que o projeto fracassou e perguntando a elas: &#8220;por que fracassou?&#8221;.<em>&nbsp;<\/em><\/p>\n\n\n\n<p><em>Um pr\u00e9-mortem \u00e9 uma reuni\u00e3o para expor ideias que ocorre no in\u00edcio do projeto. Ele tenta responder \u00e0s perguntas: &#8220;Vamos fingir que o projeto fracassou. O que fez ele fracassar?&#8221;<\/em><\/p>\n\n\n\n<p>N\u00e3o h\u00e1 muitas regras sobre <em>como<\/em> a reuni\u00e3o deve ser conduzida, desde que ela ocorra.&nbsp;<\/p>\n\n\n\n<p>No fim de uma <em>boa<\/em> sess\u00e3o pr\u00e9-mortem, voc\u00ea deve ter n\u00e3o apenas um entendimento muito melhor dos riscos dos quais <em>j\u00e1 estava ciente<\/em>, mas tamb\u00e9m conhecimento dos <em>riscos at\u00e9 agora desconhecidos<\/em> que agora pode avaliar.<\/p>\n\n\n\n<p>Por isso \u00e9 importante que a reuni\u00e3o inclua pessoas com experi\u00eancias diferentes, como especialistas em neg\u00f3cios, outros profissionais de aprendizado de m\u00e1quina (ML) e, <em>de m\u00e1xima import\u00e2ncia para projetos de aprendizado de m\u00e1quina (ML) em tempo real<\/em>, engenheiros de software, para sinalizarem potenciais problemas de integra\u00e7\u00e3o e dados.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Redu\u00e7\u00e3o de riscos: Calcule a estimativa do projeto<\/h2>\n\n\n\n<p><strong>Riscos Resolvidos:<\/strong> O modelo n\u00e3o \u00e9 economicamente vi\u00e1vel<\/p>\n\n\n\n<p>Cada projeto de aprendizado de m\u00e1quina (ML) <em>aplicado<\/em> deve ter um impacto tang\u00edvel na empresa. Tal impacto costuma ser medido em unidades monet\u00e1rias (D\u00f3lar ou equivalente) ou outras <em>m\u00e9tricas<\/em> corporativas, como convers\u00e3o e engajamento, entre outros.<\/p>\n\n\n\n<p>Calcular a <em>estimativa<\/em> de um projeto significa entender o impacto do projeto em termos dessas m\u00e9tricas. Isso ajuda a reduzir os riscos do projeto porque voc\u00ea pode descobrir assim que poss\u00edvel se o projeto \u00e9 <em>economicamente vi\u00e1vel<\/em> e ajustar o curso se n\u00e3o for.<\/p>\n\n\n\n<p><em>Os benef\u00edcios adicionais de calcular a estimativa de um projeto incluem ordenar por classifica\u00e7\u00e3o quantitativamente os projetos e minimizar a influ\u00eancia indevida de pol\u00edticas de poder (HiPPOs)<\/em><\/p>\n\n\n\n<p>Se perguntando como calcular a estimativa? Sugerimos que isso seja feito em dois ciclos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Primeiro ciclo de estimativa (in\u00edcio do projeto) <\/strong>&nbsp;Antes de qualquer modelagem ser feita, crie um <em>valor aproximado<\/em> da estimativa para ver se vale a pena seguir com o projeto.&nbsp; N\u00e3o h\u00e1 problema em fazer presun\u00e7\u00f5es sobre o desempenho do modelo. O objetivo \u00e9 detectar amea\u00e7as <em>existenciais<\/em> ao projeto, como no exemplo abaixo:\n<ul class=\"wp-block-list\">\n<li>Exemplo 1: De acordo com o primeiro valor, usar o modelo teria um saldo positivo, mesmo com sua precis\u00e3o t\u00e3o baixa quanto 20%. Faz sentido.<\/li>\n\n\n\n<li>Exemplo 2: O modelo s\u00f3 faria sentido economicamente se seu desempenho estivesse acima de 99%. Arriscado demais, \u00e9 melhor abortar.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Segundo ciclo de estimativa (defini\u00e7\u00e3o da camada de decis\u00e3o): <\/strong>Durante o est\u00e1gio de defini\u00e7\u00e3o da camada de decis\u00e3o (veja a Figura 2), devemos ter o <em>conjunto de teste<\/em> do modelo, que \u00e9 um bom comparativo para avaliar o desempenho do modelo no momento da conclus\u00e3o. Com o conjunto de teste \u00e9 poss\u00edvel <em>atualizar<\/em> a estimativa produzida no primeiro ciclo.\n<ul class=\"wp-block-list\">\n<li>Example 2: Com o conjunto de teste, as proje\u00e7\u00f5es indicam um aumento de 50% nas convers\u00f5es de e-mail, resultando em mais 1 milh\u00e3o de d\u00f3lares anualmente. Portanto, o projeto <em>est\u00e1<\/em> economicamente justificado.<\/li>\n\n\n\n<li>Exemplo 2: Com o conjunto de teste, agora estimamos um lucro total de 50 mil d\u00f3lares em um ano. Mas a compensa\u00e7\u00e3o da equipe sozinha \u00e9 mais de 100 mil d\u00f3lares naquele per\u00edodo. N\u00e3o faz sentido economicamente seguir com o projeto, pois seu custo \u00e9 maior que os benef\u00edcios.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Redu\u00e7\u00e3o de riscos: Selecione recursos com base na import\u00e2ncia e no esfor\u00e7o de implementa\u00e7\u00e3o<\/h2>\n\n\n\n<p><strong>Riscos Resolvidos:<\/strong> <em>Feature creep<\/em> | Os recursos escolhidos n\u00e3o est\u00e3o dispon\u00edveis no momento da conclus\u00e3o<\/p>\n\n\n\n<p>Em modelos de lote (ou seja, sem ser tempo real), os recursos s\u00e3o mais ou menos iguais em termos do esfor\u00e7o necess\u00e1rio para implement\u00e1-los. Claro, alguns podem precisar de um pouco mais de consulta de SQL envolvida, alguns <em>joins<\/em> extras, mas raramente \u00e9 mais que isso.<\/p>\n\n\n\n<p>Entretanto, recursos em tempo real variam muito em termos do esfor\u00e7o de engenharia necess\u00e1rio. Alguns recursos podem ser buscados com uma simples chamada de HTTP no momento da conclus\u00e3o. Outros podem precisar que voc\u00ea crie um servi\u00e7o e um ponto final para que o modelo possa usar no momento da conclus\u00e3o.<\/p>\n\n\n\n<p><em>Em projetos de aprendizado de m\u00e1quina (ML) em tempo real, \u00e9 preciso levar o esfor\u00e7o de implementa\u00e7\u00e3o em considera\u00e7\u00e3o quando selecionar recursos.<\/em><\/p>\n\n\n\n<p>Durante a sele\u00e7\u00e3o de recurso voc\u00ea <em>tamb\u00e9m<\/em> precisa levar em considera\u00e7\u00e3o o trabalho necess\u00e1rio para implementar um determinado recurso, presumindo que esteja <em>dispon\u00edvel<\/em> na infraestrutura em tempo real! Na Figura 5 abaixo, vemos uma classifica\u00e7\u00e3o de recursos de 4 maneiras, dependendo das duas dimens\u00f5es relevantes para selecionar recursos: poder preditivo e esfor\u00e7o de implementa\u00e7\u00e3o.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"419\" src=\"https:\/\/lh7-us.googleusercontent.com\/NmKJM1sR9ZKsLs5zoFYliCW0YIiZVa78shBfPOHkdP7PcUcF-DMTPFIEw-79F3_Uya3yPTrf7hfpL8Ffy25ikdclRaP1XF4u1AJpnRUWN74ef6chsTEVfzOvhQCBLbkYbIm4xyd8T1FYp7aUoPrsbg\" alt=\"Diagrama\n\nDescri\u00e7\u00e3o gerada automaticamente\"><\/p>\n\n\n\n<p><strong><em>Figura 5<\/em><\/strong><em>: <\/em><strong><em>Nem todos os recursos no aprendizado de m\u00e1quina (ML) em tempo real nascem iguais: <\/em><\/strong><em>Al\u00e9m de ponderar a import\u00e2ncia de um recurso (por exemplo, SHAP), tamb\u00e9m precisamos levar em considera\u00e7\u00e3o o esfor\u00e7o de engenharia necess\u00e1rio para usar um determinado recurso no momento da conclus\u00e3o. Os recursos com maior custo-benef\u00edcio s\u00e3o os que possuem grande poder preditivo, embora sejam simples do ponto de vista da implementa\u00e7\u00e3o (canto superior esquerdo).<\/em>&nbsp;<\/p>\n\n\n\n<p>Quanto \u00e0 classifica\u00e7\u00e3o de recursos em termos de esfor\u00e7o de implementa\u00e7\u00e3o, sugerimos come\u00e7ar com as quest\u00f5es na Tabela 2. Como de costume, os recursos mais f\u00e1ceis s\u00e3o os dispon\u00edveis em um <em>feature store<\/em> (com o benef\u00edcio extra de n\u00e3o precisar se preocupar com <a href=\"https:\/\/building.nubank.com\/pt-br\/como-lidar-com-distorcao-entre-treinamento-e-exibicao-em-modelos-de-aprendizado-de-maquina-ml-em-tempo-real-um-breve-guia\/\">distor\u00e7\u00e3o entre treinamento e exibi\u00e7\u00e3o<\/a>).<\/p>\n\n\n\n<p>Tabela 2: A facilidade de implementa\u00e7\u00e3o para recursos em tempo real, presumindo uma arquitetura de microsservi\u00e7os s\u00edncrona.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Descri\u00e7\u00e3o<\/strong><\/td><td><strong>Esfor\u00e7o de implementa\u00e7\u00e3o<\/strong><\/td><\/tr><tr><td>O recurso est\u00e1 prontamente dispon\u00edvel em um <em>feature store<\/em><\/td><td><strong>BAIXO<\/strong><\/td><\/tr><tr><td>O recurso n\u00e3o est\u00e1 em um <em>feature store<\/em>, mas j\u00e1 est\u00e1 em uso por outro modelo, ent\u00e3o pode ser facilmente reaproveitado.<\/td><td><strong>BAIXO<\/strong><\/td><\/tr><tr><td>O recurso est\u00e1 prontamente dispon\u00edvel em um ponto final HTTP externo<\/td><td><strong>BAIXO<\/strong><\/td><\/tr><tr><td>O recurso est\u00e1 dispon\u00edvel atrav\u00e9s de um \u00fanico ponto final HTTP, mas precisa de <em>certo<\/em> pr\u00e9-processamento.<\/td><td><strong>BAIXO \/ M\u00c9DIO<\/strong><\/td><\/tr><tr><td>O recurso precisa de informa\u00e7\u00f5es de <em>diversos<\/em> pontos finais HTTP.<\/td><td><strong>M\u00c9DIO<\/strong><\/td><\/tr><tr><td>O recurso existe em uma base de dados de produ\u00e7\u00e3o, mas precisamos criar um ponto final para busc\u00e1-lo.<\/td><td><strong>M\u00c9DIO<\/strong><\/td><\/tr><tr><td>O recurso existe em uma base de dados de produ\u00e7\u00e3o que n\u00e3o \u00e9 acess\u00edvel. Um novo servi\u00e7o precisa ser criado para acess\u00e1-la.<\/td><td><strong>GRANDE<\/strong><\/td><\/tr><tr><td>N\u00e3o est\u00e1 claro como acessar o recurso no momento da conclus\u00e3o, se for poss\u00edvel. \u00c9 preciso descobrir mais para avaliar o problema.<\/td><td><strong>GRANDE + PRECISA DE MAIS DESCOBERTA<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Quando um conjunto razo\u00e1vel de recursos estiver decidido, a lideran\u00e7a do projeto deve declarar um <em>congelamento de recursos<\/em>, para que apenas os selecionados sejam inclu\u00eddos no projeto. Isso reduz o risco de <em>feature creep<\/em>, uma situa\u00e7\u00e3o em que novos recursos continuam sendo adicionados ao modelo e o projeto nunca termina.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Redu\u00e7\u00e3o de riscos: Resolvendo primeiro os recursos de maior risco<\/h2>\n\n\n\n<p><strong>Riscos Resolvidos<\/strong>:&nbsp; O desempenho do modelo no momento da conclus\u00e3o \u00e9 diferente do momento de treinamento | Os recursos escolhidos n\u00e3o est\u00e3o dispon\u00edveis no momento da conclus\u00e3o | O desempenho do modelo n\u00e3o \u00e9 bom o bastante<\/p>\n\n\n\n<p>Se voc\u00ea seguir a m\u00e1xima <a href=\"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/#de-risk-select-features-based-on-importance-and-implementation-effort\">&#8220;selecione recursos com base no esfor\u00e7o&#8221;<\/a>, ter\u00e1 uma estimativa aproximada do esfor\u00e7o de engenharia necess\u00e1rio para implementar cada recurso. Entretanto, as estimativas de esfor\u00e7o de engenharia costumam ser imprecisas e dif\u00edceis de acertar, semelhante a <a href=\"https:\/\/www.microsoftpressstore.com\/store\/software-estimation-demystifying-the-black-art-9780735690851\">bruxaria<\/a>.<\/p>\n\n\n\n<p>Normalmente (mas nem sempre), os recursos que exigem maior esfor\u00e7o tamb\u00e9m ser\u00e3o os mais <em>arriscados<\/em> de implementar. &#8220;Arriscados&#8221; quer dizer que podem comprometer o sucesso do projeto.<\/p>\n\n\n\n<p>Comece a implementa\u00e7\u00e3o com eles para resolver logo esse risco. Em outras palavras, a implementa\u00e7\u00e3o r\u00e1pida de recursos arriscados \u00e0 <em>esquerda<\/em> na linha temporal do projeto.<\/p>\n\n\n\n<p><em>A resolu\u00e7\u00e3o das partes mais incertas de um projeto primeiro, para expor logo os riscos ocultos, \u00e0s vezes \u00e9 chamada de estrat\u00e9gia &#8220;shift-left&#8221; (deslocar para a esquerda).<\/em><\/p>\n\n\n\n<p>Por qu\u00ea? Porque deslocar essas tarefas arriscadas para a esquerda possibilita que potenciais <em>estraga-prazeres<\/em> sejam descobertos cedo: Pontos finais externos que s\u00e3o lentos demais para suas necessidades. Servi\u00e7os que n\u00e3o conseguem lidar com a dimens\u00e3o das solicita\u00e7\u00f5es feitas. Recursos que ficaram completamente indispon\u00edveis.<\/p>\n\n\n\n<p>Quanto mais cedo a equipe de modelagem estiver ciente de problemas de recurso, mais cedo podem se adaptar, usando representa\u00e7\u00f5es ou at\u00e9 abandonando-os de vez.<\/p>\n\n\n\n<p><em>Descobrir estraga-prazeres no in\u00edcio do projeto ajuda a prevenir o pior modo de fracasso poss\u00edvel: descobrir que o projeto fracassou depois de muito esfor\u00e7o j\u00e1 ter sido aplicado a ele.<\/em><\/p>\n\n\n\n<p>Assim que os recursos tiverem sido escolhidos, voc\u00ea pode come\u00e7ar a trabalhar na descoberta de implementa\u00e7\u00e3o (exposi\u00e7\u00e3o de ideias, desenvolver estrat\u00e9gias de implementa\u00e7\u00e3o, discutir com outros engenheiros etc.). Quanto antes melhor.<\/p>\n\n\n\n<p><em>Deslocar o risco para a esquerda<\/em> \u00e9 um bom conselho em todas as partes de <em>qualquer<\/em> projeto, especialmente durante a implementa\u00e7\u00e3o de recurso em aprendizado de m\u00e1quina (ML) em tempo real, devido \u00e0s mudan\u00e7as em cascata que ativar\u00e3o novas rodadas de modelagem e adapta\u00e7\u00e3o da camada de decis\u00e3o (veja a Figura 2).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Redu\u00e7\u00e3o de riscos: Instale o modelo no modo sombra assim que poss\u00edvel\u00a0<\/h2>\n\n\n\n<p><strong>Riscos Resolvidos:<\/strong> O tempo de resposta do modelo \u00e9 longo demais | O desempenho do modelo no momento da conclus\u00e3o \u00e9 diferente do momento de treinamento | Os recursos escolhidos n\u00e3o est\u00e3o dispon\u00edveis no momento da conclus\u00e3o&nbsp;&nbsp;<\/p>\n\n\n\n<p>A \u00faltima parte da implementa\u00e7\u00e3o, onde voc\u00ea <em>conecta<\/em> o servi\u00e7o de solicita\u00e7\u00e3o ao modelo em tempo real, \u00e9 <em>a parte mais arriscada do projeto<\/em> da perspectiva da engenharia. Muitos imprevistos acontecem na hora de conectar servi\u00e7os regulares a modelos de aprendizado de m\u00e1quina (ML) em tempo real.<\/p>\n\n\n\n<p>Mas n\u00e3o precisa ser assim. Adotando uma instala\u00e7\u00f5es em modo sombra desde o princ\u00edpio, \u00e9 poss\u00edvel simular um fluxo de ponta a ponta sem esperar a culmina\u00e7\u00e3o do projeto.<\/p>\n\n\n\n<p><em>Modo sombra &#8211; instala\u00e7\u00e3o padr\u00e3o com uma surpresa: os resultados do modelo s\u00e3o ignorados pelos servi\u00e7os de solicita\u00e7\u00e3o.<\/em><\/p>\n\n\n\n<p><a href=\"https:\/\/alexgude.com\/blog\/machine-learning-deployment-shadow-mode\/\"><strong>Instala\u00e7\u00e3o em modo sombra<\/strong><\/a> \u00e9 o nome de um padr\u00e3o de aprendizado de m\u00e1quina (ML) aplicado atrav\u00e9s do qual voc\u00ea implementa um modelo de aprendizado de m\u00e1quina (ML) em tempo real, mas ignora a resposta <em>no \u00faltimo instante<\/em>, por exemplo, usando um <a href=\"https:\/\/martinfowler.com\/articles\/feature-toggles.html\"><em>feature flag<\/em><\/a>. Instala\u00e7\u00f5es em modo sombra s\u00e3o \u00f3timas para redu\u00e7\u00e3o de riscos em projetos porque possibilita a observa\u00e7\u00e3o do funcionamento do modelo em um cen\u00e1rio de &#8220;vida real&#8221; sem exposi\u00e7\u00e3o a nenhum risco corporativo. A Figura 6 fornece uma representa\u00e7\u00e3o visual.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"478\" src=\"https:\/\/lh7-us.googleusercontent.com\/DjVgigXjzMYg99MI7U3ciDwrejtU1RirTKXcw4nlFt2muPEsvS2pILk2ulhIOVTPDcntKAioNvsqoZPfFUY2p2mb_SxbSauXwSQUe74cXk09zVU7xHS5f0EyCdSDFzpZRTu77yiVz0pOLwA-n2Wh-Q\" alt=\"Diagrama\n\nDescri\u00e7\u00e3o gerada automaticamente\"><\/p>\n\n\n\n<p><strong><em>Figura 6<\/em><\/strong><em>: <\/em><strong><em>Instala\u00e7\u00e3o Regular x Em Modo Sombra de modelos de aprendizado de m\u00e1quina (ML) em tempo real<\/em><\/strong><em>: Tudo \u00e9 igual, exceto pelo fato de que as pontua\u00e7\u00f5es do modelo s\u00e3o descartadas, e o servi\u00e7o de solicita\u00e7\u00e3o segue como se nada tivesse acontecido. Uma instala\u00e7\u00e3o em modo sombra reduz os riscos de um projeto porque possibilita a detec\u00e7\u00e3o de muitos problemas no momento da produ\u00e7\u00e3o como desempenho sob carga, integra\u00e7\u00e3o com servi\u00e7os de recurso, problemas com o esbo\u00e7o etc.<\/em>&nbsp;<\/p>\n\n\n\n<p>Instalar um modelo no modo sombra \u00e9 \u00fatil por si s\u00f3. Mas fazer isso no in\u00edcio do projeto, ou at\u00e9 antes de todos os recursos serem implementados, \u00e9 melhor ainda.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>O c\u00f3digo de busca de recurso e o modelo passar\u00e3o por testes de estresse sob circunst\u00e2ncias de produ\u00e7\u00e3o, expondo problemas de tempo de resposta e outros conforme forem implementados.<\/li>\n\n\n\n<li>Tarefas de monitoramento s\u00e3o desbloqueadas quando se tem uma instala\u00e7\u00e3o em modo sombra. Mesmo se o modelo n\u00e3o estiver em uso, \u00e9 poss\u00edvel criar a infraestrutura de monitoramento (fun\u00e7\u00f5es de registro, pain\u00e9is, relat\u00f3rios etc.).<\/li>\n<\/ul>\n\n\n\n<p>A Figura 7 abaixo mostra que: habilitando o modo sombra no in\u00edcio reduz os riscos do projeto <em>e<\/em> o deixa mais eficiente.<\/p>\n\n\n\n<p><img loading=\"lazy\" decoding=\"async\" width=\"567\" height=\"427\" src=\"https:\/\/lh7-us.googleusercontent.com\/V-5P_xnBn876lT95MBNdfglZHjmVk63WtmvjxDyyB3mlNeCszYObK-qQDasKpB1tXMsB4FWBx2D2CnzNX3DARf2ug6CrWLm2MXOB9mdpnucMtqLRbXchYC1jPJqmQ_bLlNQOKu9AsIjAZVo8XqAgMw\" alt=\"Diagrama, Desenho t\u00e9cnico\n\nDescri\u00e7\u00e3o gerada automaticamente\"><\/p>\n\n\n\n<p><strong><em>Figura 7<\/em><\/strong><em>: <\/em><strong><em>Quanto antes voc\u00ea habilitar o modo sombra, melhor:<\/em><\/strong><em> Instalar um novo modelo em modo sombra logo no in\u00edcio reduz os riscos do projeto e o deixa mais eficiente devido a oportunidades de paraleliza\u00e7\u00e3o. Evidentemente, as pontua\u00e7\u00f5es do modelo n\u00e3o ser\u00e3o \u00fateis se a maioria dos recursos for NULL. Voc\u00ea conseguir\u00e1 expor riscos de engenharia assim que poss\u00edvel, e poder\u00e1 configurar o monitoramento imediatamente.<\/em>&nbsp;<\/p>\n\n\n\n<p>Claro, o modo sombra pode exigir trabalho de configura\u00e7\u00e3o antecipado, mas vira o jogo para projetos de aprendizado de m\u00e1quina (ML), garantindo intera\u00e7\u00f5es mais tranquilas e seguras do modelo em tempo real.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p>A verdade \u00e9 que aprendizado de m\u00e1quina (ML) em tempo real \u00e9 dif\u00edcil porque envolve modelos de aprendizado de m\u00e1quina (ML) e servi\u00e7os em tempo real, ambos sendo um sistema complexo que depende de diversas partes que precisam funcionar perfeitamente.&nbsp;<\/p>\n\n\n\n<p>Listamos muitos dos modos de fracasso de aprendizado de m\u00e1quina (ML) em tempo real, mas observe que muitos deles est\u00e3o relacionados ao aprendizado de m\u00e1quina (ML) em geral, com algumas particularidades para a configura\u00e7\u00e3o de tempo real.<\/p>\n\n\n\n<p>Tamb\u00e9m sugerimos diversas pr\u00e1ticas para ajudar a evitar esses modos de fracasso. Entretanto, mesmo quando seguir todas elas, ainda \u00e9 poss\u00edvel que o projeto fracasse, a vida \u00e9 assim mesmo, mas as chances de sucesso ser\u00e3o maiores.<br>E lembre-se, tudo nesta postagem \u00e9 relacionado a <em>tirar o modelo do papel<\/em>. Depois disso, ainda \u00e9 um caminho dif\u00edcil para continuar operando. Ap\u00f3s a primeira instala\u00e7\u00e3o, voc\u00ea precisar\u00e1 <a href=\"https:\/\/building.nubank.com\/pt-br\/machine-learning-model-monitoring-9-tips-from-the-trenches\/\">monitorar<\/a> cuidadosamente (especialmente <a href=\"https:\/\/building.nubank.com\/pt-br\/como-lidar-com-distorcao-entre-treinamento-e-exibicao-em-modelos-de-aprendizado-de-maquina-ml-em-tempo-real-um-breve-guia\/\">distor\u00e7\u00e3o entre treinamento e exibi\u00e7\u00e3o<\/a>) e <a href=\"https:\/\/building.nubank.com\/pt-br\/melhores-praticas-para-aprendizado-de-maquina-em-tempo-real-alertas\/\">criar alertas<\/a> para garantir que tudo funcione bem.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nesta postagem, listaremos pr\u00e1ticas para reduzir consideravelmente o risco de falhas em projetos de aprendizado de m\u00e1quina em tempo real.<\/p>\n","protected":false},"author":178110136,"featured_media":25012,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[2503,2502],"tags":[2504,2540,2571,2570],"ppma_author":[2366],"class_list":["post-25815","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-analytics","category-data-science-machine-learning-pt-br","tag-ciencia-de-dados","tag-machine-learning-pt-br","tag-model-monitoring-pt-br","tag-observability-pt-br"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Removendo Riscos de Projetos de Aprendizado de M\u00e1quina (ML) em Tempo Real: Resolvendo Modos de Falha Comuns - Building Nubank<\/title>\n<meta name=\"description\" content=\"Nesta postagem, listaremos pr\u00e1ticas para reduzir consideravelmente o risco de falhas em projetos de aprendizado de m\u00e1quina em tempo real.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Removendo Riscos de Projetos de Aprendizado de M\u00e1quina (ML) em Tempo Real: Resolvendo Modos de Falha Comuns - Building Nubank\" \/>\n<meta property=\"og:description\" content=\"Nesta postagem, listaremos pr\u00e1ticas para reduzir consideravelmente o risco de falhas em projetos de aprendizado de m\u00e1quina em tempo real.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/\" \/>\n<meta property=\"og:site_name\" content=\"Building Nubank\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-01T18:35:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-05T15:31:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2023\/04\/datomic-is-free-now-Feature_1200x675.jpg?fit=1200%2C675&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Felipe Almeida - Machine Learning Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@queirozfcom\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Felipe Almeida - Machine Learning Engineer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"28 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\\\/\"},\"author\":{\"name\":\"Felipe Almeida - Machine Learning Engineer\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/2bce0340e6a654811bb0aea0e58092c5\"},\"headline\":\"Removendo Riscos de Projetos de Aprendizado de M\u00e1quina (ML) em Tempo Real: Resolvendo Modos de Falha Comuns\",\"datePublished\":\"2023-09-01T18:35:35+00:00\",\"dateModified\":\"2024-03-05T15:31:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\\\/\"},\"wordCount\":5259,\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/datomic-is-free-now-Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"keywords\":[\"ci\u00eancia de dados\",\"machine learning\",\"Model Monitoring\",\"observability\"],\"articleSection\":[\"Data &amp; Analytics\",\"Data science &amp; Machine Learning\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\\\/\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\\\/\",\"name\":\"Removendo Riscos de Projetos de Aprendizado de M\u00e1quina (ML) em Tempo Real: Resolvendo Modos de Falha Comuns - Building Nubank\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/datomic-is-free-now-Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"datePublished\":\"2023-09-01T18:35:35+00:00\",\"dateModified\":\"2024-03-05T15:31:21+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/2bce0340e6a654811bb0aea0e58092c5\"},\"description\":\"Nesta postagem, listaremos pr\u00e1ticas para reduzir consideravelmente o risco de falhas em projetos de aprendizado de m\u00e1quina em tempo real.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/datomic-is-free-now-Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/datomic-is-free-now-Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"width\":1200,\"height\":675,\"caption\":\"people working at nubank\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Removendo Riscos de Projetos de Aprendizado de M\u00e1quina (ML) em Tempo Real: Resolvendo Modos de Falha Comuns\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#website\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/\",\"name\":\"Building Nubank\",\"description\":\"We make the extraordinary happen\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/2bce0340e6a654811bb0aea0e58092c5\",\"name\":\"Felipe Almeida - Machine Learning Engineer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2024\\\/03\\\/Screenshot-2024-03-26-at-14.06.59.png1dcbca3b60d19e8fb28ae3829d8da80a\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2024\\\/03\\\/Screenshot-2024-03-26-at-14.06.59.png\",\"contentUrl\":\"https:\\\/\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2024\\\/03\\\/Screenshot-2024-03-26-at-14.06.59.png\",\"caption\":\"Felipe Almeida - Machine Learning Engineer\"},\"description\":\"Felipe Almeida is responsible for engineering and managing Data Science &amp; Machine Learning projects at Nubank. He has a Bachelor's degree in Computer Science and a Master's degree in Computer Engineering, both from UFRJ. Felipe has experience working with e-commerce, credit and fraud. Before joining Nubank in 2019, he worked in companies such as Ita\u00fa-Unibanco and VTEX. In his spare time, he likes to exercise and learn foreign languages. He is active on twitter and he blogs at https:\\\/\\\/queirozf.com\",\"sameAs\":[\"http:\\\/\\\/queirozf.com\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/felipeqbalmeida\",\"https:\\\/\\\/x.com\\\/queirozfcom\"],\"url\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/author\\\/felipe-almeida-data-scientist\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Removendo Riscos de Projetos de Aprendizado de M\u00e1quina (ML) em Tempo Real: Resolvendo Modos de Falha Comuns - Building Nubank","description":"Nesta postagem, listaremos pr\u00e1ticas para reduzir consideravelmente o risco de falhas em projetos de aprendizado de m\u00e1quina em tempo real.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/","og_locale":"pt_BR","og_type":"article","og_title":"Removendo Riscos de Projetos de Aprendizado de M\u00e1quina (ML) em Tempo Real: Resolvendo Modos de Falha Comuns - Building Nubank","og_description":"Nesta postagem, listaremos pr\u00e1ticas para reduzir consideravelmente o risco de falhas em projetos de aprendizado de m\u00e1quina em tempo real.","og_url":"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/","og_site_name":"Building Nubank","article_published_time":"2023-09-01T18:35:35+00:00","article_modified_time":"2024-03-05T15:31:21+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2023\/04\/datomic-is-free-now-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","type":"image\/jpeg"}],"author":"Felipe Almeida - Machine Learning Engineer","twitter_card":"summary_large_image","twitter_creator":"@queirozfcom","twitter_misc":{"Escrito por":"Felipe Almeida - Machine Learning Engineer","Est. tempo de leitura":"28 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/#article","isPartOf":{"@id":"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/"},"author":{"name":"Felipe Almeida - Machine Learning Engineer","@id":"https:\/\/building.nubank.com\/pt-br\/#\/schema\/person\/2bce0340e6a654811bb0aea0e58092c5"},"headline":"Removendo Riscos de Projetos de Aprendizado de M\u00e1quina (ML) em Tempo Real: Resolvendo Modos de Falha Comuns","datePublished":"2023-09-01T18:35:35+00:00","dateModified":"2024-03-05T15:31:21+00:00","mainEntityOfPage":{"@id":"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/"},"wordCount":5259,"image":{"@id":"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2023\/04\/datomic-is-free-now-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","keywords":["ci\u00eancia de dados","machine learning","Model Monitoring","observability"],"articleSection":["Data &amp; Analytics","Data science &amp; Machine Learning"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/","url":"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/","name":"Removendo Riscos de Projetos de Aprendizado de M\u00e1quina (ML) em Tempo Real: Resolvendo Modos de Falha Comuns - Building Nubank","isPartOf":{"@id":"https:\/\/building.nubank.com\/pt-br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/#primaryimage"},"image":{"@id":"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2023\/04\/datomic-is-free-now-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","datePublished":"2023-09-01T18:35:35+00:00","dateModified":"2024-03-05T15:31:21+00:00","author":{"@id":"https:\/\/building.nubank.com\/pt-br\/#\/schema\/person\/2bce0340e6a654811bb0aea0e58092c5"},"description":"Nesta postagem, listaremos pr\u00e1ticas para reduzir consideravelmente o risco de falhas em projetos de aprendizado de m\u00e1quina em tempo real.","breadcrumb":{"@id":"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/#primaryimage","url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2023\/04\/datomic-is-free-now-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","contentUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2023\/04\/datomic-is-free-now-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","width":1200,"height":675,"caption":"people working at nubank"},{"@type":"BreadcrumbList","@id":"https:\/\/building.nubank.com\/pt-br\/removendo-riscos-de-projetos-de-aprendizado-de-maquina-ml-em-tempo-real-resolvendo-modos-de-falha-comuns\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/building.nubank.com\/pt-br\/"},{"@type":"ListItem","position":2,"name":"Removendo Riscos de Projetos de Aprendizado de M\u00e1quina (ML) em Tempo Real: Resolvendo Modos de Falha Comuns"}]},{"@type":"WebSite","@id":"https:\/\/building.nubank.com\/pt-br\/#website","url":"https:\/\/building.nubank.com\/pt-br\/","name":"Building Nubank","description":"We make the extraordinary happen","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/building.nubank.com\/pt-br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/building.nubank.com\/pt-br\/#\/schema\/person\/2bce0340e6a654811bb0aea0e58092c5","name":"Felipe Almeida - Machine Learning Engineer","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/building.nubank.com\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-26-at-14.06.59.png1dcbca3b60d19e8fb28ae3829d8da80a","url":"https:\/\/building.nubank.com\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-26-at-14.06.59.png","contentUrl":"https:\/\/building.nubank.com\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-26-at-14.06.59.png","caption":"Felipe Almeida - Machine Learning Engineer"},"description":"Felipe Almeida is responsible for engineering and managing Data Science &amp; Machine Learning projects at Nubank. He has a Bachelor's degree in Computer Science and a Master's degree in Computer Engineering, both from UFRJ. Felipe has experience working with e-commerce, credit and fraud. Before joining Nubank in 2019, he worked in companies such as Ita\u00fa-Unibanco and VTEX. In his spare time, he likes to exercise and learn foreign languages. He is active on twitter and he blogs at https:\/\/queirozf.com","sameAs":["http:\/\/queirozf.com\/","https:\/\/www.linkedin.com\/in\/felipeqbalmeida","https:\/\/x.com\/queirozfcom"],"url":"https:\/\/building.nubank.com\/pt-br\/author\/felipe-almeida-data-scientist\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2023\/04\/datomic-is-free-now-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pbKBB5-6In","jetpack_sharing_enabled":true,"authors":[{"term_id":2366,"user_id":178110136,"is_guest":0,"slug":"felipe-almeida-data-scientist","display_name":"Felipe Almeida - Machine Learning Engineer","avatar_url":{"url":"https:\/\/building.nubank.com\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-26-at-14.06.59.png","url2x":"https:\/\/building.nubank.com\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-26-at-14.06.59.png"},"0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/posts\/25815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/users\/178110136"}],"replies":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/comments?post=25815"}],"version-history":[{"count":6,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/posts\/25815\/revisions"}],"predecessor-version":[{"id":28529,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/posts\/25815\/revisions\/28529"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/media\/25012"}],"wp:attachment":[{"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/media?parent=25815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/categories?post=25815"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/tags?post=25815"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/ppma_author?post=25815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}