{"id":26059,"date":"2022-12-05T18:13:09","date_gmt":"2022-12-05T18:13:09","guid":{"rendered":"https:\/\/building.nubank.com\/best-practices-for-real-time-machine-learning-alerting\/"},"modified":"2024-02-23T16:48:11","modified_gmt":"2024-02-23T16:48:11","slug":"mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando","status":"publish","type":"post","link":"https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/","title":{"rendered":"Mejores pr\u00e1cticas para el Aprendizaje Autom\u00e1tico en Tiempo Real: Alertando"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Escrito por Felipe Almeida<br>Con aportes de Caique Lima y Luiz Felix<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/building.nubank.com\/real-time-machine-learning-models-in-real-life\/\">El Aprendizaje Autom\u00e1tico en Tiempo Real<\/a> se refiere a la integraci\u00f3n del aprendizaje autom\u00e1tico en sistemas que funcionan continuamente; esto a menudo significa modelos que generan puntuaciones y predicciones <strong>a pedido<\/strong>, cuando se solicitan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como cualquier software de este tipo, las cosas <strong>pueden<\/strong> salir mal, y a menudo <strong>lo<\/strong> <strong>hacen<\/strong>, de diversas formas. Es una m\u00e1quina bien engrasada en la que una pieza defectuosa suele tener <strong>impactos negativos posteriores<\/strong>, como por ejemplo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Problemas de tiempo de respuesta debido al aumento repentino de la carga&nbsp;<\/li>\n\n\n\n<li>Fallos debido a problemas ascendentes<\/li>\n\n\n\n<li>Fallos debido a malas implementaciones<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s de lo anterior, existen muchos <strong>otros tipos de fallas<\/strong> que se aplican espec\u00edficamente a los modelos de Aprendizaje Autom\u00e1tico:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Funciones faltantes o rotas<\/strong> que provocan predicciones err\u00f3neas<\/li>\n\n\n\n<li>Cambios repentinos en la <strong>distribuci\u00f3n de la poblaci\u00f3n<\/strong> que provocan predicciones err\u00f3neas<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">La principal diferencia entre el software normal y el habilitado para ML es que los modelos de ML pueden <strong>fallar silenciosamente<\/strong>.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es decir, los sistemas de aprendizaje autom\u00e1tico pueden estar produciendo predicciones err\u00f3neas aunque <strong>no<\/strong> <strong>haya excepciones expl\u00edcitas ni mensajes de error<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En las siguientes secciones analizamos las lecciones aprendidas y las mejores pr\u00e1cticas recopiladas a partir de a\u00f1os de aplicaci\u00f3n del ML a problemas de la vida real en Nubank.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Alertas vs Monitoreo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/building.nubank.com\/ml-model-monitoring-9-tips-from-the-trenches\/\">El monitoreo de modelos<\/a> se refiere a comprender y abordar el comportamiento <strong>latente<\/strong>, mientras que la alerta generalmente se refiere a detectar problemas <strong>urgentes<\/strong> que deben abordarse de inmediato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como tal, el enfoque del monitoreo suele ser detectar problemas con el objetivo de <strong>comprender e investigar <\/strong>lo que est\u00e1 sucediendo.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, existe una estrecha relaci\u00f3n entre alerta y monitoreo: la primera acci\u00f3n que toma alguien que aborda una alerta puede ser precisamente abrir paneles de monitoreo para comparar datos a corto plazo con datos a mediano plazo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El objetivo de las alertas es<strong> hacer que el sistema funcione normalmente lo m\u00e1s r\u00e1pido posible.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Alertas<\/strong><\/td><td><strong>Monitoreo<\/strong><\/td><\/tr><tr><td>Centrarse en la acci\u00f3n r\u00e1pida<\/td><td>Centrarse en la comprensi\u00f3n y la investigaci\u00f3n exhaustivas<\/td><\/tr><tr><td>Corto plazo (horas, minutos)<\/td><td>Medio plazo (d\u00edas, semanas, meses)<\/td><\/tr><tr><td>Consumo pasivo (te <em>alerta<\/em>)<\/td><td>Consumo activo (t\u00fa <em>eliges<\/em> mirar los paneles)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Se sigue aplicando el monitoreo operativo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00a1<strong>Los sistemas habilitados para ML tambi\u00e9n son software<\/strong>! Esto significa que todos los problemas habituales que pueden ocurrirle a cualquier otro sistema tambi\u00e9n pueden ocurrirle a los sistemas basados en ML.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n se presentan algunos puntos del monitoreo regular de software que tambi\u00e9n se aplican a los sistemas ML:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Estado del sistema operativo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Al igual que con cualquier otro software de producci\u00f3n en tiempo real, es posible que desee recibir alertas de m\u00e9tricas y controles de estado peri\u00f3dicos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Errores del sistema<\/li>\n\n\n\n<li>Tiempos de respuesta<\/li>\n\n\n\n<li>Problemas de escalado (CPU, RAM, etc.)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Registro\/Rastreo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Necesitar\u00e1s las herramientas habituales de <strong>registro<\/strong> y <strong>rastreo<\/strong> <strong>distribuido<\/strong> para centralizar y permitir el an\u00e1lisis de los datos de registro.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto es esencial en las alertas porque la mayor\u00eda de las alertas verdaderas generalmente desencadenar\u00e1n alg\u00fan tipo de <strong>investigaci\u00f3n<\/strong>; aqu\u00ed es donde entra en juego una infraestructura de registro s\u00f3lida.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Algunas herramientas comunes en este espacio son Splunk, Datadog y New Relic.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Horarios de guardia<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Es una pr\u00e1ctica est\u00e1ndar en los equipos de ingenier\u00eda general tener <strong>horarios de guardia<\/strong> para que siempre haya alguien disponible para abordar asuntos urgentes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Las alertas deben estandarizarse siempre que sea posible<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La estandarizaci\u00f3n ayuda a impulsar la eficiencia y te ayuda a escalar tus procesos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n te permite ver una colecci\u00f3n de cosas como versiones diferentes de la misma cosa, disminuyendo as\u00ed la <strong>carga cognitiva<\/strong> al interactuar con sistemas grandes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las alertas no son diferentes, aqu\u00ed hay algunos ejemplos de lo que se puede\/debe estandarizar a este respecto:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Todas las alertas deben <strong>comunicarse<\/strong> a trav\u00e9s de las mismas herramientas siempre que sea posible (Opsgenie, Slack, correos electr\u00f3nicos ad-hoc, etc.)<\/li>\n\n\n\n<li>Todas las alertas deben (cuando sea posible) tener el mismo <strong>formato<\/strong>: texto est\u00e1ndar, colores est\u00e1ndar, estilos est\u00e1ndar.<\/li>\n\n\n\n<li>Todas las alertas deben utilizar <strong>m\u00e9tricas similares<\/strong> para transmitir informaci\u00f3n (por ejemplo, promedios, percentiles, m\u00ednimo, m\u00e1ximo, recuentos, etc.)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Incluir el comportamiento esperado\u00a0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Al escribir el texto de la alerta, no te limites a decir lo que est\u00e1 mal, <strong>di lo que se esperaba<\/strong> y siempre incluye el <strong>per\u00edodo de tiempo<\/strong> evaluado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto ayuda a las personas a comprender cu\u00e1n cr\u00edtica es la alerta y qu\u00e9 tan r\u00e1pido deben actuar, lo que aumenta la eficiencia y reduce las posibilidades de falsos positivos.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Bueno<\/strong><\/td><td><strong>Malo<\/strong><\/td><\/tr><tr><td>\u201c<strong>Alerta<\/strong>: Se esperaba que la m\u00e9trica X estuviera entre 100 y 150, <strong>obtuve<\/strong> <strong>250 <\/strong>en los \u00faltimos 30 minutos\u201d<\/td><td>\u201c<strong>Alerta<\/strong>: El valor actual para la m\u00e9trica X es <strong>250<\/strong>\u201d<\/td><\/tr><tr><td>\u201c<strong>Alerta<\/strong>: El valor de la m\u00e9trica X fue <strong>500<\/strong> en la \u00faltima hora. Se esperaba 100 (desvest\u00e1ndar=25) seg\u00fan datos hist\u00f3ricos\u201d.<\/td><td>\u201c<strong>Alerta<\/strong>: El valor de la m\u00e9trica X est\u00e1 por encima del valor esperado: <strong>500<\/strong>\u201d<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Las alertas deben ser procesables<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Siempre que sea posible, agregua un <strong>v\u00ednculo<\/strong> o un<strong> curso de acci\u00f3n claro<\/strong> para ayudar a los socorristas a actuar en respuesta a las alertas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto es \u00fatil tanto para ingenieros experimentados como para principiantes que quiz\u00e1s nunca antes hayan enfrentado un problema espec\u00edfico.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una manera a\u00fan mejor de hacerlo es tener <strong>manuales<\/strong> est\u00e1ndar con gu\u00edas sobre c\u00f3mo abordar los problemas m\u00e1s comunes, d\u00f3nde acudir en busca de ayuda, etc. Esto garantiza procesos estandarizados y disminuye los riesgos de error humano.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Preg\u00fantate al crear una alerta: \u201c\u00bfCu\u00e1l es la primera informaci\u00f3n que el socorrista deber\u00e1 buscar al abordar la alerta? \u00bfC\u00f3mo puedo hacerlo m\u00e1s f\u00e1cil para ellos?<\/em><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Bueno<\/strong><\/td><td><strong>Malo<\/strong><\/td><\/tr><tr><td>\u201c<strong>Alerta<\/strong>: Se esperaban cero mensajes fallidos en los \u00faltimos 30 minutos, obtuvimos 1,000.&nbsp;<br><br>Haga clic aqu\u00ed para abrir DLQ y volver a intentar la configuraci\u00f3n\u201d<\/td><td>\u201c<strong>Alerta<\/strong>: 1,000 expedientes fallidos en el DLQ\u201d<\/td><\/tr><tr><td>\u201c<strong>Alerta<\/strong>: El Modelo X no ha respondido a los controles de salud durante 5 minutos.&nbsp;<br><br>Haz clic aqu\u00ed para ver el manual de estrategias para problemas y soluciones comunes\u201d.<\/td><td>\u201c<strong>Alerta: <\/strong>El Modelo X no responde\u201d<\/td><\/tr><tr><td>\u201c<strong>Alerta<\/strong>: El tiempo de respuesta promedio para el Modelo X en los \u00faltimos 30 minutos es de 500ms (se esperaba 300ms).&nbsp;<br><br>Haz clic aqu\u00ed para editar la configuraci\u00f3n de escala\u201d<\/td><td>\u201c<strong>Alerta<\/strong>: El tiempo medio de respuesta del Modelo X es de 500 ms\u201d.<\/td><\/tr><tr><td>\u201c<strong>Alerta<\/strong>: El 50% de los eventos puntuados por el modelo X han recibido puntuaciones altas en los \u00faltimos 30 minutos (se esperaba un 1%).&nbsp;<br><br>Haz clic aqu\u00ed para editar este indicador de funci\u00f3n o comun\u00edquese con los ingenieros de #some-slack-channel para obtener ayuda\u201d.<\/td><td>\u201c<strong>Alerta<\/strong>: El 50% de los eventos puntuados por el modelo X han recibido puntuaciones altas en los \u00faltimos 30 minutos\u201d<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Las alertas deben ser f\u00e1cilmente configurables\u00a0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las alertas para los modelos de aprendizaje autom\u00e1tico eventualmente <strong>quedar\u00e1n<\/strong> obsoletas con el tiempo.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto puede suceder por una multitud de razones: la <strong>distribuci\u00f3n<\/strong> <strong>subyacente<\/strong> de los datos cambi\u00f3 con el tiempo, los requisitos comerciales o de ingenier\u00eda han cambiado, o incluso se lanz\u00f3 otra alerta que ya abarca la actual.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las alertas<strong> dejan de funcionar de dos maneras<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Hipersensible: <\/strong>Se vuelven demasiado sensibles y empiezan a sonar con demasiada frecuencia (esto suele denominarse <strong>fatiga de alerta<\/strong>)<\/li>\n\n\n\n<li><strong>Subsensible: <\/strong>Se vuelven demasiado directos y nunca vuelven a disparar.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">En otras palabras, es posible que sea necesario cambiar la relaci\u00f3n precisi\u00f3n\/recuperaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hazlo para que cualquiera pueda f\u00e1cilmente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Editar la configuraci\u00f3n de alerta<\/strong> (cambiar umbrales para <strong>calibrar<\/strong> la relaci\u00f3n se\u00f1al\/ruido, etc.)<\/li>\n\n\n\n<li><strong>Posponer<\/strong> la alerta por un tiempo<\/li>\n\n\n\n<li><strong>Deshabilitar<\/strong> la alerta por completo<\/li>\n\n\n\n<li>Confirmar<strong> la alerta<\/strong> (<em>m\u00e1s sobre esto m\u00e1s adelante<\/em>)<strong>.<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Bueno<\/strong><\/td><td><strong>Malo<\/strong><\/td><\/tr><tr><td>\u201c<strong>Alerta<\/strong>: &lt;\u2026texto de alerta\u2026&gt;<br><br>Haz clic aqu\u00ed para editar la configuraci\u00f3n de alerta\u201d<\/td><td>\u201c<strong>Alerta<\/strong>: &lt;\u2026texto de alerta\u2026&gt;\u201d<\/td><\/tr><tr><td>\u201c<strong>Alerta<\/strong>: &lt;\u2026texto de alerta\u2026&gt;<br><br>Haz clic aqu\u00ed para editar la configuraci\u00f3n de alerta<br>Haz clic aqu\u00ed para posponer esta alerta durante 6 horas\u201d.<\/td><td>\u201c<strong>Alerta<\/strong>: &lt;\u2026texto de alerta\u2026&gt;\u201d<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Ten en cuenta a tu audiencia<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las alertas deben redactarse teniendo en cuenta a la audiencia deseada; esto garantizar\u00e1 que el <strong>mensaje<\/strong> <strong>que<\/strong> <strong>deseas<\/strong> <strong>transmitir<\/strong> <strong>llegue<\/strong> al otro lado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diferentes personas <a href=\"https:\/\/building.nubank.com\/data-scientist-machine-learning-engineer-roles-how-are-they-different-how-are-they-alike\/\">desempe\u00f1an un papel<\/a> en la entrega a producci\u00f3n de un sistema funcional habilitado para ML. Estos incluyen, por ejemplo: ingenieros, profesionales de DS\/ML y gente de productos\/negocios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dependiendo de qui\u00e9n sea tu p\u00fablico objetivo, querr\u00e1s adaptar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El <strong>lenguaje usado<\/strong>&nbsp;<\/li>\n\n\n\n<li>Las <strong>m\u00e9tricas<\/strong> utilizadas (m\u00e9tricas de ingenier\u00eda para ingenier\u00eda, m\u00e9tricas estad\u00edsticas para la gente de DS\/ML, m\u00e9tricas comerciales para producto\/negocio)<\/li>\n\n\n\n<li>La <strong>acci\u00f3n<\/strong> a tomar (la gente de ingenier\u00eda querr\u00e1 observar m\u00e9tricas del sistema de bajo nivel, la gente de negocios en realidad solo est\u00e1 interesada en el impacto en el negocio)<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Audiencia de Ingenieros<\/strong><\/td><td><strong>Audiencia de Profesionales de DS\/ML<\/strong><\/td><td><strong>Producto\/Audiencia Empresarial<\/strong><\/td><\/tr><tr><td>\u201c<strong>Alerta<\/strong>: La tasa de tiempo de espera para el modelo Y en tiempo real es del 50% durante los \u00faltimos 5 minutos (se esperaba entre 1 y 5%)<br><br><br><br>Haz clic aqu\u00ed para ver la configuraci\u00f3n de escala y estado del pod\u201d.<\/td><td>\u201c<strong>Alerta<\/strong>: La caracter\u00edstica X utilizada por el modelo Y tarda un promedio de 500ms en recuperarse en los \u00faltimos 5 minutos (se esperaba entre 50 y 100ms)<br><br>Haz clic aqu\u00ed para ver el panel de recuperaci\u00f3n de funciones\u201d<\/td><td>\u201c<strong>Alerta<\/strong>: Se est\u00e1n otorgando pr\u00e9stamos a menos clientes de lo habitual en los \u00faltimos 5 minutos (se esperaba 100, el real es 1)<br><br>Haz clic aqu\u00ed para ver el panel de negocios.&nbsp;Para obtener m\u00e1s informaci\u00f3n, visita #alg\u00fan-canal en Slack\u201d.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Ejemplo: la misma alerta se ve a trav\u00e9s de 3 lentes diferentes<\/em> <em>, seg\u00fan el p\u00fablico objetivo<\/em>&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Las alertas deben ser reconocibles y rastreables<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Por definici\u00f3n, las alertas deber\u00edan ser \u201craras\u201d y la activaci\u00f3n de una alerta es, necesariamente, un evento un tanto ca\u00f3tico y desordenado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Necesitas al menos una forma s\u00f3lida de indicar que se est\u00e1 <strong>atendiendo una alerta<\/strong>.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ser capaz de <strong>reconocer<\/strong> ayuda a tu equipo a garantizar que haya al menos una persona investigando activamente la alerta actual. Tambi\u00e9n evita que varias personas interfieran entre s\u00ed. La mayor\u00eda de las herramientas de alerta admiten esto (por ejemplo, OpsGenie).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s de ser reconocibles, lo ideal es que las alertas sean <strong>rastreables<\/strong>, es decir, debe haber un <strong>registro<\/strong> del <strong>cronograma<\/strong> de la alerta, por ejemplo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00bf<strong>Cu\u00e1ndo <\/strong>salt\u00f3 la alerta?<\/li>\n\n\n\n<li>\u00bf<strong>Qui\u00e9n<\/strong> particip\u00f3 en la gesti\u00f3n de la alerta?<\/li>\n\n\n\n<li>\u00bf<strong>C\u00f3mo<\/strong> verificamos que la alerta era real?<\/li>\n\n\n\n<li>\u00bf<strong>Fue<\/strong> un falso positivo?&nbsp;&nbsp;<\/li>\n\n\n\n<li>\u00bf<strong>C\u00f3mo<\/strong> se mitig\u00f3?<\/li>\n\n\n\n<li>\u00bf<strong>Qu\u00e9<\/strong> se hizo para evitar problemas similares en el futuro?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Estos registros ayudan a los futuros ingenieros a encontrar informaci\u00f3n y probablemente har\u00e1n que futuros incidentes sean m\u00e1s f\u00e1ciles y r\u00e1pidos de abordar.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n te permitir\u00e1n<strong> analizar datos de alerta<\/strong> y descubrir, por ejemplo, culpables comunes del sistema y patrones de alerta.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Otros Consejos<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Alertas por ausencia de eventos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Generalmente utilizamos recuentos, promedios y sumas para detectar comportamientos anormales.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, si un servicio en particular ha dejado de funcionar por completo, es posible que<strong> no haya registros<\/strong>, lo que significa que no habr\u00e1 promedios, recuentos ni sumas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una forma de abordar esto es tener <a href=\"https:\/\/support.atlassian.com\/opsgenie\/docs\/add-heartbeats-to-monitor-external-systems\/\">alertas de latido<\/a>, mediante las cuales debes hacer <em>ping<\/em> a alguna API externa para indicar que tu servicio\/sistema est\u00e1 en buen estado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Estas alertas de latido generalmente se configuran con un <strong>per\u00edodo de tiempo<\/strong> y si tu servicio\/sistema no env\u00eda un <em>ping<\/em><strong><em> <\/em><\/strong>en este per\u00edodo de tiempo, se activar\u00e1 una alerta.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Prueba tus alertas de antemano<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Al igual que con cualquier fragmento de c\u00f3digo, debes <strong>probar<\/strong> que la alerta se active cuando deber\u00eda.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una forma de probar las alertas es hacer que los umbrales de activaci\u00f3n sean artificialmente bajos, de modo que la alerta sea m\u00e1s sensible y comprobable:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00bfSon correctos los c\u00e1lculos?<\/li>\n\n\n\n<li>\u00bfSe est\u00e1 notificando a las personas adecuadas (opsgenie, slack, etc.)?<\/li>\n\n\n\n<li>\u00bfLas funciones de soporte (reconocimiento, seguimiento, etc.) funcionan como se esperaba?<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cuidado con la estacionalidad<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Los datos de funciones de los sistemas en tiempo real suelen ser representativos de los datos del <strong>cliente<\/strong>. Como tal, es propenso a <strong>ciclos naturales<\/strong> como d\u00eda\/noche, d\u00eda laborable\/fin de semana, etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto puede dificultar los flujos de alerta porque la definici\u00f3n de \u201ccomportamiento normal\u201d suele depender de la hora del d\u00eda, el d\u00eda de la semana, etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una forma de abordar esto es incluir un umbral de <strong>tama\u00f1o de muestra m\u00ednimo<\/strong> para garantizar que algunas alertas (por ejemplo, la tasa de acciones) solo se activen si hay suficientes datos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo: activar alerta si la tasa de puntuaciones superiores a 0.9 es superior al 20%, <strong>pero solo si<\/strong> <em>el tama\u00f1o de la muestra es de al menos 10,000<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">A escala, el costo <em>ser\u00e1<\/em> un problema<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando operas a una escala lo suficientemente alta (piensa en <strong>millones<\/strong> de solicitudes a un modelo en tiempo real por d\u00eda), el costo <strong>se convertir\u00e1<\/strong> en un problema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por lo general, las alertas deben realizarse en tiempo real (aunque tambi\u00e9n existen usos para las alertas por lotes), por lo que necesitar\u00e1s una infraestructura y herramientas s\u00f3lidas y costosas para manejar todos esos eventos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una forma sencilla de solucionar este problema es utilizar <strong>datos de muestra<\/strong> para las alertas en lugar de los datos completos.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En otras palabras, podr\u00eda seleccionar una muestra aleatoria del 10% de sus datos y calcular alertas sobre eso <em>en lugar<\/em> de utilizar todos los datos; la mayor\u00eda de las m\u00e9tricas estad\u00edsticas ser\u00e1n las mismas, <strong>a una fracci\u00f3n del costo. <\/strong>Recuerda, sin embargo, que el muestreo de los datos s\u00f3lo produce resultados s\u00f3lidos si la distribuci\u00f3n subyacente es lo suficientemente grande.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este art\u00edculo analizamos las lecciones aprendidas y las mejores pr\u00e1cticas recopiladas a partir de a\u00f1os de aplicaci\u00f3n del aprendizaje autom\u00e1tico a problemas de la vida real en Nubank.<\/p>\n","protected":false},"author":178110136,"featured_media":24715,"comment_status":"open","ping_status":"open","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,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[2509,2508],"tags":[2729,2728,2727],"class_list":["post-26059","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-analytics-es","category-data-science-machine-learning-es","tag-best-practices-es","tag-ml-es","tag-real-time-machine-learning-es"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Alerting for real-time Models - Building Nubank<\/title>\n<meta name=\"description\" content=\"En este art\u00edculo analizamos las lecciones aprendidas y las mejores pr\u00e1cticas recopiladas a partir de a\u00f1os de aplicaci\u00f3n del aprendizaje autom\u00e1tico a problemas de la vida real en Nubank.\" \/>\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\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Alerting for real-time Models - Building Nubank\" \/>\n<meta property=\"og:description\" content=\"En este art\u00edculo analizamos las lecciones aprendidas y las mejores pr\u00e1cticas recopiladas a partir de a\u00f1os de aplicaci\u00f3n del aprendizaje autom\u00e1tico a problemas de la vida real en Nubank.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/\" \/>\n<meta property=\"og:site_name\" content=\"Building Nubank\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-05T18:13:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-23T16:48:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/11\/real-time-machine-learning-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=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\\\/\"},\"author\":{\"name\":\"Felipe Almeida - Machine Learning Engineer\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#\\\/schema\\\/person\\\/2bce0340e6a654811bb0aea0e58092c5\"},\"headline\":\"Mejores pr\u00e1cticas para el Aprendizaje Autom\u00e1tico en Tiempo Real: Alertando\",\"datePublished\":\"2022-12-05T18:13:09+00:00\",\"dateModified\":\"2024-02-23T16:48:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\\\/\"},\"wordCount\":2366,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/real-time-machine-learning-Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"keywords\":[\"Best Practices\",\"ML\",\"Real-time Machine Learning\"],\"articleSection\":[\"Data &amp; Analytics\",\"Data Science &amp; Machine Learning\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/building.nubank.com\\\/es\\\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\\\/\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\\\/\",\"name\":\"Alerting for real-time Models - Building Nubank\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/real-time-machine-learning-Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"datePublished\":\"2022-12-05T18:13:09+00:00\",\"dateModified\":\"2024-02-23T16:48:11+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#\\\/schema\\\/person\\\/2bce0340e6a654811bb0aea0e58092c5\"},\"description\":\"En este art\u00edculo analizamos las lecciones aprendidas y las mejores pr\u00e1cticas recopiladas a partir de a\u00f1os de aplicaci\u00f3n del aprendizaje autom\u00e1tico a problemas de la vida real en Nubank.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/building.nubank.com\\\/es\\\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/real-time-machine-learning-Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/real-time-machine-learning-Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"width\":1200,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mejores pr\u00e1cticas para el Aprendizaje Autom\u00e1tico en Tiempo Real: Alertando\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/\",\"name\":\"Building Nubank\",\"description\":\"We make the extraordinary happen\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#\\\/schema\\\/person\\\/2bce0340e6a654811bb0aea0e58092c5\",\"name\":\"Felipe Almeida - Machine Learning Engineer\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/building.nubank.com.br\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/avatar_user_178110136_1697720449-96x96.jpg\",\"url\":\"https:\\\/\\\/building.nubank.com.br\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/avatar_user_178110136_1697720449-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/building.nubank.com.br\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/avatar_user_178110136_1697720449-96x96.jpg\",\"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\\\/es\\\/author\\\/felipe-almeida-data-scientist\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Alerting for real-time Models - Building Nubank","description":"En este art\u00edculo analizamos las lecciones aprendidas y las mejores pr\u00e1cticas recopiladas a partir de a\u00f1os de aplicaci\u00f3n del aprendizaje autom\u00e1tico a problemas de la vida real en Nubank.","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\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/","og_locale":"es_ES","og_type":"article","og_title":"Alerting for real-time Models - Building Nubank","og_description":"En este art\u00edculo analizamos las lecciones aprendidas y las mejores pr\u00e1cticas recopiladas a partir de a\u00f1os de aplicaci\u00f3n del aprendizaje autom\u00e1tico a problemas de la vida real en Nubank.","og_url":"https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/","og_site_name":"Building Nubank","article_published_time":"2022-12-05T18:13:09+00:00","article_modified_time":"2024-02-23T16:48:11+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/11\/real-time-machine-learning-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","Tiempo de lectura":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/#article","isPartOf":{"@id":"https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/"},"author":{"name":"Felipe Almeida - Machine Learning Engineer","@id":"https:\/\/building.nubank.com\/es\/#\/schema\/person\/2bce0340e6a654811bb0aea0e58092c5"},"headline":"Mejores pr\u00e1cticas para el Aprendizaje Autom\u00e1tico en Tiempo Real: Alertando","datePublished":"2022-12-05T18:13:09+00:00","dateModified":"2024-02-23T16:48:11+00:00","mainEntityOfPage":{"@id":"https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/"},"wordCount":2366,"commentCount":0,"image":{"@id":"https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/11\/real-time-machine-learning-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","keywords":["Best Practices","ML","Real-time Machine Learning"],"articleSection":["Data &amp; Analytics","Data Science &amp; Machine Learning"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/","url":"https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/","name":"Alerting for real-time Models - Building Nubank","isPartOf":{"@id":"https:\/\/building.nubank.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/#primaryimage"},"image":{"@id":"https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/11\/real-time-machine-learning-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","datePublished":"2022-12-05T18:13:09+00:00","dateModified":"2024-02-23T16:48:11+00:00","author":{"@id":"https:\/\/building.nubank.com\/es\/#\/schema\/person\/2bce0340e6a654811bb0aea0e58092c5"},"description":"En este art\u00edculo analizamos las lecciones aprendidas y las mejores pr\u00e1cticas recopiladas a partir de a\u00f1os de aplicaci\u00f3n del aprendizaje autom\u00e1tico a problemas de la vida real en Nubank.","breadcrumb":{"@id":"https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/#primaryimage","url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/11\/real-time-machine-learning-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","contentUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/11\/real-time-machine-learning-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","width":1200,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/building.nubank.com\/es\/mejores-practicas-para-el-aprendizaje-automatico-en-tiempo-real-alertando\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/building.nubank.com\/es\/"},{"@type":"ListItem","position":2,"name":"Mejores pr\u00e1cticas para el Aprendizaje Autom\u00e1tico en Tiempo Real: Alertando"}]},{"@type":"WebSite","@id":"https:\/\/building.nubank.com\/es\/#website","url":"https:\/\/building.nubank.com\/es\/","name":"Building Nubank","description":"We make the extraordinary happen","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/building.nubank.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/building.nubank.com\/es\/#\/schema\/person\/2bce0340e6a654811bb0aea0e58092c5","name":"Felipe Almeida - Machine Learning Engineer","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/building.nubank.com.br\/wp-content\/uploads\/2023\/10\/avatar_user_178110136_1697720449-96x96.jpg","url":"https:\/\/building.nubank.com.br\/wp-content\/uploads\/2023\/10\/avatar_user_178110136_1697720449-96x96.jpg","contentUrl":"https:\/\/building.nubank.com.br\/wp-content\/uploads\/2023\/10\/avatar_user_178110136_1697720449-96x96.jpg","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\/es\/author\/felipe-almeida-data-scientist\/"}]}},"jetpack_shortlink":"https:\/\/wp.me\/pbKBB5-6Mj","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/11\/real-time-machine-learning-Feature_1200x675.jpg?fit=1200%2C675&ssl=1","_links":{"self":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/26059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/users\/178110136"}],"replies":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/comments?post=26059"}],"version-history":[{"count":5,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/26059\/revisions"}],"predecessor-version":[{"id":28287,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/26059\/revisions\/28287"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/media\/24715"}],"wp:attachment":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/media?parent=26059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/categories?post=26059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/tags?post=26059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}