{"id":25844,"date":"2023-09-01T18:35:35","date_gmt":"2023-09-01T18:35:35","guid":{"rendered":"https:\/\/building.nubank.com\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/"},"modified":"2024-05-22T13:28:21","modified_gmt":"2024-05-22T13:28:21","slug":"eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes","status":"publish","type":"post","link":"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/","title":{"rendered":"Eliminaci\u00f3n de Riesgos en Proyectos de Aprendizaje Autom\u00e1tico en Tiempo Real: Abordando los Modos de Falla Comunes"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Escrito por <\/em><a href=\"https:\/\/building.nubank.com\/authors\/felipe-almeida-data-scientist\/\">Felipe Almeida<\/a> y<em> revisado<\/em> por <a href=\"https:\/\/building.nubank.com\/authors\/rubens-bolgheroni\/\"><em>Rubens Bolgheroni<\/em><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El Aprendizaje Autom\u00e1tico (ML) es poderoso, pero costoso y arriesgado. Es poderoso porque a menudo es la \u00fanica soluci\u00f3n escalable para problemas complejos. Es caro porque los recursos (profesionales especializados y potencia inform\u00e1tica) son caros. Y es <em>arriesgado<\/em> porque los modelos fallan de maneras extra\u00f1as y a veces <em>silenciosas<\/em>: la deriva de datos o funciones rotas no desencadenar\u00e1n excepciones, aunque las predicciones del modelo probablemente ser\u00e1n basura.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Un proyecto de ML es el proceso para llevar una idea a un sistema de software que realmente funcione utilizando un modelo de ML.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Escribimos sobre los usos del aprendizaje autom\u00e1tico en tiempo real <a href=\"https:\/\/building.nubank.com\/es\/real-time-machine-learning-models-in-real-life\/\">en el pasado<\/a>. Pero antes de que puedas <em>pensar<\/em> en utilizar ML para ayudar a tu organizaci\u00f3n, necesitas un <strong>proyecto<\/strong> que la lleve de una idea a una pieza de software funcional que genere resultados. Y <em>no<\/em> querr\u00e1s que el proyecto <em>fracase<\/em>, ya que es dinero y tiempo que podr\u00edan haberse gastado en otra parte del negocio. Esto, por supuesto, <a href=\"https:\/\/eugeneyan.com\/writing\/first-rule-of-ml\/\">supone que, en primer lugar, <em>necesitas<\/em> un modelo de ML<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora bien, incluso <em>si<\/em> un proyecto de aprendizaje autom\u00e1tico fracasa, es mejor si fracasa <em>r\u00e1pidamente<\/em>, antes de haber invertido demasiado tiempo y dinero en \u00e9l. La Figura 1 a continuaci\u00f3n muestra los diferentes resultados de un proyecto, dependiendo de si aport\u00f3 valor al negocio y del tiempo que llev\u00f3 completarlo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" alt=\"Interface gr\u00e1fica do usu\u00e1rio, PowerPoint\n\nDescri\u00e7\u00e3o gerada automaticamente\" src=\"https:\/\/lh7-us.googleusercontent.com\/9l_aT8waZqtlo3RmUsxj-LtYbPLiyNJ46xw2izPYdkpepGePQ6DMjnxbD4r_j71Dld-Lzhd99bBp7UhBb9a70srkq4EjGzXuFHNTaejmCRgtCBUG1JKi0m2pE_RNwAXAvOsaeB0wrl5ryQcvv3CJXA\" width=\"567\" height=\"387\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 1<\/em><\/strong><em>: Los resultados del proyecto rara vez son binarios, sino un continuo de \u201cniveles\u201d de \u00e9xito. El \u00e9xito depende del impacto empresarial que se haya logrado, pero tenemos en cuenta la duraci\u00f3n y el costo del proyecto.<\/em><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora bien, \u00bf<em>por qu\u00e9<\/em> fracasan los proyectos de ML?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hay muchas razones: problemas de datos y expectativas desalineadas entre los clientes y el equipo de modelos, por nombrar algunas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, los proyectos de aprendizaje autom\u00e1tico en <em>tiempo real<\/em> aumentan los riesgos: tienen <em>incluso<\/em> <em>m\u00e1s<\/em> <em>modos de falla<\/em> que los proyectos normales (que no son en tiempo real). Adem\u00e1s de todos los riesgos inherentes al ML, los modelos en tiempo real son sistemas de software que necesitan integrarse con otros sistemas en tiempo real a trav\u00e9s de API, a menudo est\u00e1n sujetos a tiempos de respuesta estrictos y deben <a href=\"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/\">mantener la paridad con el entorno de formaci\u00f3n<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esta publicaci\u00f3n, mostraremos <a href=\"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/#typical-project-timeline\">c\u00f3mo es un proyecto t\u00edpico de aprendizaje autom\u00e1tico en tiempo real<\/a> y luego repasaremos las formas m\u00e1s comunes en las que estos proyectos pueden fallar.<a href=\"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/#real-time-ml-failure-modes\"> <\/a>Finalmente, brindaremos instrucciones pr\u00e1cticas sobre c\u00f3mo abordar o <em>eliminar riesgos<\/em> en cada uno de esos puntos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cronograma t\u00edpico del proyecto<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Como se mencion\u00f3 anteriormente, un <strong>proyecto<\/strong> es el proceso para tomar una idea y hacerla realidad. En el caso del ML en tiempo real, esto implica elegir un problema empresarial, comprender si y c\u00f3mo se puede resolver con ML y, finalmente, crear un modelo e integrarlo con la infraestructura TI subyacente del negocio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las etapas de un proyecto t\u00edpico de aprendizaje autom\u00e1tico en tiempo real se pueden resumir de la siguiente manera:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Ideaci\u00f3n y comprensi\u00f3n del caso de uso<\/strong>: Comprende c\u00f3mo y <em>qui\u00e9n<\/em> utilizar\u00e1 el modelo. En ocasiones, el veredicto podr\u00eda ser que el aprendizaje autom\u00e1tico <em>no<\/em> es la soluci\u00f3n correcta.<\/li>\n\n\n\n<li><strong>An\u00e1lisis y Modelado de Datos<\/strong>: Una vez que se hayas establecido el caso de uso, organiza los datos y realiza la exploraci\u00f3n de datos. Luego, modela el problema: selecci\u00f3n de funciones, entrenamiento del modelo,<\/li>\n\n\n\n<li><strong>Definici\u00f3n de capa de decisi\u00f3n<\/strong>: Despu\u00e9s de la capacitaci\u00f3n, comprenda c\u00f3mo los resultados del modelo se <em>traducir\u00e1n<\/em> en opciones comerciales. Esto puede incluir t\u00e9cnicas de optimizaci\u00f3n (por ejemplo, \u00bfcu\u00e1l es la puntuaci\u00f3n l\u00edmite \u00f3ptima del modelo para maximizar una m\u00e9trica comercial determinada?)<\/li>\n\n\n\n<li><strong>Implementaci\u00f3n \/ Integraci\u00f3n en tiempo real<\/strong>: Integra el modelo en la infraestructura de TI subyacente, conect\u00e1ndolo a otros servicios para obtener funciones y entregar las decisiones a quienes llaman.<\/li>\n\n\n\n<li><strong>Configurar el monitoreo<\/strong>: Configura el registro de datos y configura herramientas como Splunk o Grafana para realizar un seguimiento de las m\u00e9tricas y funciones del modelo.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Ten en cuenta que los pasos anteriores no son necesariamente <em>lineales<\/em>. Es decir, no es necesario que ocurran uno tras otro.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, es posible que sea necesario volver a la etapa de ideaci\u00f3n durante el proyecto para revisar suposiciones que resultaron ser falsas. Adem\u00e1s, es posible que los cient\u00edficos de datos necesiten volver a entrenar el modelo si hay un problema con una funci\u00f3n que ahora debe eliminarse. La Figura 2 a continuaci\u00f3n presenta un resumen visual:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" alt=\"Diagrama\n\nDescri\u00e7\u00e3o gerada automaticamente\" src=\"https:\/\/lh7-us.googleusercontent.com\/gQsv-etbEn9hG_0ljnv3PgBUPNHOgaY4edgytdMESZGq3snJ6caXa-ZucPGYhnNWKlUHM8tTQv2B9ynX57brj-d8m0d1u7iLrFUW6V2qBsiRGWAbEUJR5Cp2_E0gQl2J2WvRbVrfqek8VoPZcbArwg\" width=\"567\" height=\"281\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 2<\/em><\/strong><em>: Proyecto T\u00edpico de Aprendizaje Autom\u00e1tico en Tiempo Real. Toma en cuenta que a veces es posible que necesitemos <span class=\"quotes\">\u2033<\/span>regresar<span class=\"quotes\">\u2033<\/span> a etapas anteriores dependiendo de circunstancias imprevistas, como datos inconsistentes y la necesidad de eliminar funciones del modelo, lo que requiere un reentrenamiento. Adem\u00e1s, algunos pasos pueden ser paralelizables.<\/em><br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hay dos tipos de proyectos de Aprendizaje Autom\u00e1tico en tiempo real: introducir un nuevo modelo y actualizar un modelo existente:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Presentando un nuevo modelo<\/strong>: Creando un nuevo modelo desde cero e integr\u00e1ndolo en un flujo de negocio que actualmente no utiliza modelos.<\/li>\n\n\n\n<li><strong>Actualizaci\u00f3n de un modelo existente<\/strong>: Actualizando o reemplazando un modelo existente con una versi\u00f3n mejorada, con m\u00e1s funciones, m\u00e1s datos de entrenamiento, un nuevo algoritmo, etc.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Esta distinci\u00f3n es \u00fatil porque actualizar un modelo <em>existente<\/em> es <em>menos riesgoso<\/em> que introducir un nuevo modelo en un flujo de negocios. Si la <em>forma<\/em> en que se utiliza el modelo es la misma, puedes omitir la etapa de validaci\u00f3n del caso de uso\u2014que es donde reside gran parte del riesgo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Independientemente de si estamos introduciendo un nuevo modelo o actualizando uno existente, todas las etapas del proyecto plantean riesgos. Veamos ahora algunas de las formas en que fallan los proyectos de aprendizaje autom\u00e1tico en tiempo real.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Modos de Falla de Aprendizaje Autom\u00e1tico en tiempo real<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Como se mencion\u00f3 en la introducci\u00f3n, existen <em>niveles<\/em> de fracaso en los proyectos de Aprendizaje Autom\u00e1tico.<br><br>Que un proyecto fracase debido a que el rendimiento del modelo es insuficiente es algo negativo. Pero que un proyecto fracase <em>despu\u00e9s<\/em> de <em>invertir<\/em> <em>mucho<\/em> tiempo en \u00e9l es mucho, mucho peor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/docs.google.com\/document\/d\/10LZP6r1uYaRZbKf_wcu73-VqrS1_-MrQqcZR-DAXxVo\/edit#heading=h.spz7e2vkv12y\">Cada etapa de un proyecto de<\/a><a href=\"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/#typical-project-timeline\"> Aprendizaje Autom\u00e1tico<\/a> tiene sus vulnerabilidades \u00fanicas. Esto es especialmente cierto en el caso de proyectos en tiempo real, ya que la implementaci\u00f3n de modelos y la integraci\u00f3n de servicios presentan una capa <em>adicional<\/em> de complejidad. Los proyectos exitosos de aprendizaje autom\u00e1tico en tiempo real reconocen los riesgos y los mitigan cuando es necesario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>\u201cTodos los proyectos de ML exitosos son iguales; cada proyecto de ML fallido no tiene \u00e9xito a su manera\u201d. \u2013 Leo Tolstoy, probably<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>La Tabla 1<\/strong> enumera algunos de los <em>modos de falla <\/em>para proyectos de ML en tiempo real. Algunos de ellos reflejan problemas de falta de comunicaci\u00f3n y alineaci\u00f3n empresarial; algunos reflejan problemas de modelado y otros se relacionan con contratiempos de ingenier\u00eda e implementaci\u00f3n. Muchos de estos tambi\u00e9n son relevantes para proyectos de ML por <em>lotes <\/em>(es decir, no en tiempo real).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tabla 1: Lista no exhaustiva de modos de falla para proyectos de ML en tiempo real<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Modo de falla \/ Riesgo<\/strong><\/td><td><strong>Ejemplo \/ Descripci\u00f3n<\/strong><\/td><\/tr><tr><td>El rendimiento del modelo no es lo suficientemente bueno<\/td><td>Un modelo de detecci\u00f3n de fraude ten\u00eda una precisi\u00f3n tan baja en el momento del entrenamiento que no era posible utilizarlo debido a las altas tasas de falsos positivos.<\/td><\/tr><tr><td>El tiempo de respuesta del modelo es demasiado alto.<\/td><td>Una vez implementado el modelo, el equipo se dio cuenta de que el tiempo de respuesta del modelo (obtenci\u00f3n de funciones y puntuaci\u00f3n) es inaceptablemente alto, por lo que el modelo nunca se utiliz\u00f3.<\/td><\/tr><tr><td>El rendimiento del modelo en el momento de la inferencia es diferente del tiempo de entrenamiento<\/td><td>El modelo tuvo un rendimiento inesperadamente malo en producci\u00f3n, por lo que tuvo que ser descontinuado. Posibles causas: desviaci\u00f3n del servicio de trenes, desviaci\u00f3n de datos, fuga de datos.<\/td><\/tr><tr><td>El caso de uso no respalda la toma de decisiones probabil\u00edstica<\/td><td>Aunque la precisi\u00f3n del modelo es buena, el flujo de negocios no respalda un resultado <span class=\"quotes\">\u2033<\/span>probablemente verdadero<span class=\"quotes\">\u2033<\/span>, tal vez debido a responsabilidad legal. Cada decisi\u00f3n sobre un modelo necesita confirmaci\u00f3n humana, por lo que una soluci\u00f3n totalmente basada en modelos no es factible.<\/td><\/tr><tr><td>Las funciones elegidas no est\u00e1n disponibles en el momento de la inferencia<\/td><td>Durante la implementaci\u00f3n, el equipo descubri\u00f3 que algunas funciones con las que se entren\u00f3 el modelo no est\u00e1n disponibles en tiempo real. Esas funciones tuvieron que eliminarse, lo que degrad\u00f3 gravemente el rendimiento del modelo y lo volvi\u00f3 in\u00fatil. Posibles causas: desv\u00edo del servicio de trenes y fuga de datos.<\/td><\/tr><tr><td>El modelo no es econ\u00f3micamente viable.<\/td><td>El costo de capacitar, implementar y operar el modelo es tan alto que compensa cualquier ganancia financiera que pueda generar su uso.<\/td><\/tr><tr><td>Arrastre de funciones<\/td><td>Se dedic\u00f3 demasiado tiempo a intentar optimizar el rendimiento del modelo; tard\u00f3 tanto en entrar en producci\u00f3n que perdi\u00f3 tiempo de negocio.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora veamos algunos pasos pr\u00e1cticos que tu (practicante de aprendizaje autom\u00e1tico o gerente de proyectos) puedes seguir para abordarlos. Estos no est\u00e1n enumerados en ning\u00fan orden y todos han resultado \u00fatiles para nosotros en Nubank.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Eliminaci\u00f3n de riesgos: Educar a los clientes siempre que sea posible<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Riesgos abordados:<\/strong> Todos ellos<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Muchas personas todav\u00eda ven el ML como \u201cbrujer\u00eda\u201d y tienen creencias poco realistas sobre lo que puede hacer. Puede (y debe) ayudar a los clientes a comprender, al menos en un alto nivel, c\u00f3mo funciona el ML, para que puedan calibrar sus expectativas a niveles m\u00e1s realistas y ayudarlo a hacer su trabajo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La gente de sectores como el bancario est\u00e1 m\u00e1s acostumbrada a trabajar con modelos, pero incluso <em>as\u00ed<\/em> no es prudente <em>suponer<\/em> que entienden, ni siquiera a un alto nivel, qu\u00e9 es el ML.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n se presentan tres puntos clave que todos los usuarios no t\u00e9cnicos deber\u00edan comprender sobre el aprendizaje autom\u00e1tico:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Los modelos son probabil\u00edsticos<\/strong>. Es posible que tengan un buen desempe\u00f1o en <em>promedio<\/em>, pero se equivocar\u00e1n en las predicciones individuales. A veces <em>muy <\/em>mal.<\/li>\n\n\n\n<li><strong>Los modelos necesitan una capa de decisi\u00f3n<\/strong>. As\u00ed como es importante el modelo en s\u00ed, tambi\u00e9n lo es la l\u00f3gica que decide qu\u00e9 <em>hacer<\/em> con una predicci\u00f3n dada del modelo. A esto a veces se le llama capa de <em>pol\u00edticas<\/em>.<\/li>\n\n\n\n<li><strong>Los modelos se deterioran con el tiempo<\/strong>. Necesitan mantenimiento y monitoreo despu\u00e9s de su implementaci\u00f3n en producci\u00f3n. Y eventualmente ser\u00e1 necesario volver a capacitarlos.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Una buena manera de ayudar a los usuarios finales a desarrollar una <em>intuici\u00f3n<\/em> sobre el aprendizaje autom\u00e1tico es mostrar gr\u00e1ficos de <em>importancia de funciones<\/em>, como el <em>gr\u00e1fico de enjambre de abejas<\/em> (que se ve a continuaci\u00f3n en la Figura 3). Esto genera debates interesantes con usuarios no t\u00e9cnicos y les ayuda a comprender c\u00f3mo se calcula la puntuaci\u00f3n de un modelo a partir de sus funciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" alt=\"Gr\u00e1fico\n\nDescri\u00e7\u00e3o gerada automaticamente\" src=\"https:\/\/lh7-us.googleusercontent.com\/ZikugBgNO81tcKcSKhUnx6TxUqFXQsy6H_Mfzbe9IGpy_LDqIgKuiqf90JyTwITCC-xRFsQMVGuLRP-WJllNxIHyLGEPdvDD3qDY6GoHmAoV5J7H8wMBf78r8RG4wWdXdkyKfjA5S4Tg7ASVw2VPMQ\" width=\"567\" height=\"325\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 3<\/em><\/strong><em>: <\/em><strong><em>Ejemplo<\/em><\/strong><em> <\/em><strong><em>de gr\u00e1fico de enjambre de abejas de la <\/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>. Trabajar con gr\u00e1ficos de importancia de funciones es una excelente manera de <span class=\"quotes\">\u2033<\/span>ense\u00f1ar<span class=\"quotes\">\u2033<\/span> a usuarios no t\u00e9cnicos los conceptos b\u00e1sicos de c\u00f3mo funciona un modelo. Esto les ayuda a desarrollar su intuici\u00f3n sobre el aprendizaje autom\u00e1tico y har\u00e1 que la interacci\u00f3n sea m\u00e1s eficiente. <\/em><a href=\"https:\/\/shap.readthedocs.io\/en\/latest\/generated\/shap.plots.force.html\"><em>El gr\u00e1fico de fuerza<\/em><\/a><em> tambi\u00e9n es \u00fatil para explicar una predicci\u00f3n \u00fanica. <\/em><a href=\"https:\/\/shap.readthedocs.io\/en\/latest\/example_notebooks\/api_examples\/plots\/beeswarm.html\"><em>Fuente<\/em><br><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Eliminaci\u00f3n de riesgos: Aseg\u00farate de que los datos sean buenos.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Riesgos abordados:<\/strong> El rendimiento del modelo no es lo suficientemente bueno | El rendimiento del modelo en el momento de la inferencia es diferente del tiempo de entrenamiento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El dicho \u201cbasura entra, basura sale\u201d resume la esencia del aprendizaje autom\u00e1tico. Es su responsabilidad asegurarse de que los datos sean lo suficientemente buenos para fines de modelado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Es su trabajo, como practicante de ML, comprender si los datos disponibles son lo suficientemente buenos para el modelado, tanto en el momento del entrenamiento como en el de inferencia.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como siempre, el aprendizaje autom\u00e1tico en tiempo real agrega una dimensi\u00f3n adicional a este problema, por lo que no solo debe preocuparse por los datos de entrenamiento\u2014si hay suficientes o si son de buena calidad\u2014sino tambi\u00e9n por c\u00f3mo recuperar datos en el momento de la inferencia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed sugerimos un enfoque de reducci\u00f3n de riesgos de tres frentes: (a) hacer las preguntas correctas sobre los datos, (b) realizar un an\u00e1lisis exhaustivo de los datos y (c) establecer una relaci\u00f3n con el equipo de datos en tiempo real:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Haz las preguntas correctas sobre los datos.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Al comienzo del proyecto, desea hacer muchas preguntas sobre qu\u00e9 datos est\u00e1n disponibles y c\u00f3mo se ven. Aqu\u00ed hay algunas sugerencias:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00bfCu\u00e1ntos datos tenemos? (es decir, cu\u00e1ntas filas, clientes, puntos de datos)<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00bfHasta qu\u00e9 punto retroceden los datos?<\/li>\n\n\n\n<li>\u00bfSon los datos de entrenamiento similares a los datos del tiempo de inferencia?<\/li>\n\n\n\n<li>\u00bfSe sobrescriben los datos anteriores de alguna manera? \u00bfPodemos estar seguros de que los datos pasados son <span class=\"quotes\">\u2033<\/span>inmutables<span class=\"quotes\">\u2033<\/span> y podemos volver a ese momento en el que entrenamos el modelo?&nbsp;<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Haz un an\u00e1lisis exhaustivo de datos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando tengas acceso a los datos, debes realizar las rutinas habituales de EDA para verificar la calidad de los datos y debes verificar nuevamente toda la informaci\u00f3n que te brindaron sobre los datos para asegurarte de que no te enga\u00f1en y te lleve a tomar decisiones equivocadas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Establece una relaci\u00f3n con el equipo de datos en tiempo real lo antes posible<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Los equipos responsables de hacer que los datos est\u00e9n disponibles en tiempo real a menudo no son los mismos que los responsables de los datos <span class=\"quotes\">\u2033<\/span>en reposo<span class=\"quotes\">\u2033<\/span>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Descubre qui\u00e9nes son estas personas y mant\u00e9nte en contacto con ellas para asegurarte de que la informaci\u00f3n con la que entrenar\u00e1s el modelo tambi\u00e9n estar\u00e1 disponible cuando necesites hacer predicciones en tiempo real. Aseg\u00farate de comprender qu\u00e9 tan r\u00e1pida o lenta es la recuperaci\u00f3n de datos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Eliminaci\u00f3n de riesgos: Comprender c\u00f3mo se utilizar\u00e1n las predicciones del modelo.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Riesgos abordados:<\/strong> El rendimiento del modelo no es lo suficientemente bueno | El tiempo de respuesta del modelo es demasiado alto | El caso de uso no respalda la toma de decisiones probabil\u00edstica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Imag\u00ednese crear un modelo perfectamente bueno, con un gran rendimiento, s\u00f3lo para verlo acumular polvo. Lo peor que le puede pasar a un proyecto de ML es producir un modelo que nunca se utilice para tomar decisiones comerciales.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Debes saber de antemano c\u00f3mo se utilizar\u00e1n las predicciones del modelo y qui\u00e9n las utilizar\u00e1.&nbsp;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una de las razones por las que esto sucede es que el equipo de modelado no se tom\u00f3 el tiempo para comprender claramente <em>c\u00f3mo<\/em> se utilizar\u00e1 el modelo y <em>qui\u00e9n<\/em> lo utilizar\u00e1.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una parte clave para comprender el uso del modelo es analizar la <em>capa de decisi\u00f3n:<\/em>el c\u00f3digo o proceso de negocio que tomar\u00e1 las predicciones del modelo y <em>decidir\u00e1<\/em> qu\u00e9 acci\u00f3n tomar en funci\u00f3n de las predicciones. Hablar sobre la capa de decisi\u00f3n obliga a los equipos de modelado y de clientes a discutir c\u00f3mo se utilizar\u00e1n <em>exactamente<\/em> las predicciones del modelo y a resolver cualquier malentendido en el proceso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La Figura 4 muestra un ejemplo de c\u00f3mo podr\u00eda verse una capa de decisi\u00f3n muy simple para un modelo de riesgo crediticio simple.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" alt=\"Diagrama\n\nDescri\u00e7\u00e3o gerada automaticamente\" src=\"https:\/\/lh7-us.googleusercontent.com\/CcP0uDO-Teqs-c1ZYFCXrc4uBKka-26uW34CXOXAANhbSYMIsT6_idTVF3lPE2tJkNSXQQpzlw1Zwr_lgb1LIFB7TNkYy_2hlkOU5E7Hdfrd2KIxUPaZtQsMNfY2wPFVeCt6EITS3IlPUcRFHNyFRw\" width=\"567\" height=\"336\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 4<\/em><\/strong><em>: <\/em><strong><em>Un sistema t\u00edpico de suscripci\u00f3n de cr\u00e9dito con una capa de decisi\u00f3n simple<\/em><\/strong><em>. Una \u201ccapa de decisi\u00f3n\u201d para un modelo puede ser tan simple como una \u00fanica condici\u00f3n si\/si no basada en la predicci\u00f3n del modelo.&nbsp; Si la puntuaci\u00f3n de riesgo est\u00e1 por debajo de alg\u00fan umbral, concede el pr\u00e9stamo; en caso contrario, ni\u00e9galo.<\/em>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s de analizar la capa de decisi\u00f3n, cuantas m\u00e1s preguntas haga sobre el caso de uso del modelo, mayores ser\u00e1n las posibilidades de que descubra<em> suposiciones impl\u00edcitas<\/em> que pueden causar problemas m\u00e1s adelante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Algunas de las preguntas que debes hacerte:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ingenier\u00eda<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u00bfQu\u00e9 equipo o servicio utilizar\u00e1 el modelo?<\/li>\n\n\n\n<li>\u00bfC\u00f3mo har\u00e1 la persona que llama solicitudes al modelo? \u00bfLlamadas HTTP? \u00bfLlamadas as\u00edncronas?<\/li>\n\n\n\n<li>\u00bfD\u00f3nde se guardar\u00e1n o <em>registrar\u00e1n<\/em> las funciones y las predicciones del modelo?<\/li>\n\n\n\n<li>\u00bfD\u00f3nde se guardar\u00e1n los objetivos reales? (para que puedas monitorear el rendimiento y volver a entrenar el modelo m\u00e1s adelante)<\/li>\n\n\n\n<li>\u00bfExisten limitaciones de tiempo de respuesta para el modelo?<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Negocio<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u00bfCu\u00e1l es el impacto para el negocio si las predicciones del modelo son incorrectas?<\/li>\n\n\n\n<li>\u00bfCu\u00e1l deber\u00eda ser el recurso <em>alternativo<\/em> si el modelo est\u00e1 fuera de servicio?<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Modelado<\/strong>\n<ul class=\"wp-block-list\">\n<li>\u00bfNecesitaremos <a href=\"https:\/\/building.nubank.com\/es\/mucho-mas-alla-de-shap-una-descripcion-general-de-xai\/\"><em>explicar<\/em><\/a> las decisiones del modelo individualmente?<\/li>\n\n\n\n<li>\u00bfEs necesario que las predicciones de los modelos sean probabilidades calibradas?<\/li>\n\n\n\n<li>\u00bfNecesitaremos una <a href=\"https:\/\/building.nubank.com\/es\/a-gentle-and-practical-introduction-to-a-b-tests\/\">prueba A\/B<\/a> para medir el impacto del modelo?<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Eliminaci\u00f3n de riesgos: Realiza un pre-mortem<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Riesgos abordados:<\/strong> Todos ellos<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una reuni\u00f3n <em>post-mortem<\/em> se lleva a cabo <em>despu\u00e9s<\/em> de que un proyecto ha fracasado. Su objetivo es comprender las causas de las fallas para poder evitarlas en el futuro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una <em>pre-mortem<\/em> es similar, pero tiene lugar <em>al inicio<\/em> de un proyecto. Es una reuni\u00f3n <em>similar a una lluvia de ideas<\/em> y su objetivo no es entender <em>por qu\u00e9<\/em> fracas\u00f3 un proyecto, sino evitar que fracase. Funciona haciendo que la gente <em>finja <\/em>que el proyecto fracas\u00f3 y les pregunte: \u201c\u00bfPor qu\u00e9 fracas\u00f3?\u201d.<em>&nbsp;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Una pre-mortem es una reuni\u00f3n similar a una lluvia de ideas que tiene lugar al inicio del proyecto. Intenta responder a la pregunta: \u201cHagamos como si el proyecto hubiera fracasado. \u00bfQu\u00e9 hizo que fracasara?\u201d<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No hay muchas reglas sobre <em>c\u00f3mo<\/em> se debe llevar a cabo la reuni\u00f3n, siempre y cuando se lleve a cabo.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al final de una <em>buena<\/em> sesi\u00f3n pre mortem, no s\u00f3lo deber\u00edas comprender mucho mejor los riesgos que <em>ya conoc\u00edas<\/em>, sino tambi\u00e9n conocer los <em>riesgos<\/em> <em>hasta ahora desconocidos<\/em> que ahora puedes evaluar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso es importante que la reuni\u00f3n incluya a personas de diferentes or\u00edgenes, como expertos en negocios, otros profesionales de ML y,<em> lo m\u00e1s importante para<\/em> <em>proyectos de ML<\/em> <em>en tiempo real<\/em>, ingenieros de software, para se\u00f1alar posibles problemas de integraci\u00f3n y datos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Eliminaci\u00f3n de riesgos: Calcular la valoraci\u00f3n del proyecto.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Riesgos abordados:<\/strong> El modelo no es econ\u00f3micamente viable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cada proyecto de ML <em>aplicado<\/em> debe tener un impacto tangible en la organizaci\u00f3n. Dicho impacto suele medirse en unidades monetarias (USD o equivalente) u otras <em>m\u00e9tricas<\/em> comerciales, como la conversi\u00f3n o el compromiso, entre otras.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Calcular la <em>valoraci\u00f3n<\/em> de un proyecto significa comprender el impacto del proyecto en t\u00e9rminos de estas m\u00e9tricas. Ayuda a reducir los riesgos del proyecto porque se puede determinar lo antes posible si el proyecto es <em>econ\u00f3micamente viable<\/em> y ajustar el rumbo si no lo es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Los beneficios adicionales de calcular la valoraci\u00f3n de un proyecto incluyen la posibilidad de clasificar cuantitativamente los proyectos y mitigar la influencia indebida de la pol\u00edtica de poder (HiPPO).<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfSe preguntas cu\u00e1ndo calcular la valoraci\u00f3n? Te sugerimos hacerlo en dos ciclos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Primer Ciclo de Valoraci\u00f3n (inicio del proyecto): <\/strong>&nbsp;Antes de realizar cualquier modelo, realiza una <em>estimaci\u00f3n<\/em><em>aproximada<\/em> de la valoraci\u00f3n para ver si vale la pena seguir adelante con este proyecto.&nbsp; Est\u00e1 bien hacer suposiciones sobre el desempe\u00f1o del modelo. El objetivo es detectar amenazas <em>existenciales<\/em> al proyecto, seg\u00fan el siguiente ejemplo:\n<ul class=\"wp-block-list\">\n<li>Ejemplo 1: Seg\u00fan la primera estimaci\u00f3n, utilizar el modelo ser\u00eda positivo incluso si su precisi\u00f3n es tan baja como el 20%. Suena razonable.<\/li>\n\n\n\n<li>Ejemplo 2: El modelo s\u00f3lo tendr\u00eda sentido econ\u00f3mico si su rendimiento supera el 99%. Demasiado arriesgado, deber\u00edamos abortar.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Segundo ciclo de Valoraci\u00f3n (definici\u00f3n de capa de decisi\u00f3n): <\/strong>Durante la etapa de definici\u00f3n de la capa de decisi\u00f3n (ver Figura 2), deber\u00edamos tener el <em>conjunto de pruebas<\/em> del modelo, que es un buen indicador de c\u00f3mo funcionar\u00e1 el modelo en el momento de la inferencia. Con el conjunto de prueba puedes <em>actualizar<\/em> la estimaci\u00f3n de valoraci\u00f3n producida en el primer ciclo.\n<ul class=\"wp-block-list\">\n<li>Example2: Con el conjunto de pruebas, las proyecciones indican un aumento del 50% en las conversiones de correo electr\u00f3nico, lo que se traduce en 1 mill\u00f3n de d\u00f3lares adicionales al a\u00f1o. Por tanto, el proyecto <em>est\u00e1<\/em> econ\u00f3micamente justificado.<\/li>\n\n\n\n<li>Ejemplo 2: Con el equipo de prueba, ahora estimamos una ganancia total de US$ 50,000 en un a\u00f1o. Pero la compensaci\u00f3n del equipo <em>por s\u00ed sola<\/em> supera los US$ 100,000 en ese per\u00edodo. No tiene sentido econ\u00f3mico seguir adelante con el proyecto, ya que sus costos superan los beneficios.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Eliminaci\u00f3n de riesgos: Seleccione funciones seg\u00fan la importancia <em>y <\/em>el esfuerzo de implementaci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Riesgos abordados:<\/strong> Arrastre de funciones | Las funciones elegidas no est\u00e1n disponibles en el momento de la inferencia<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En los modelos de aprendizaje autom\u00e1tico por lotes (es decir, no en tiempo real), las funciones son aproximadamente iguales en t\u00e9rminos del esfuerzo necesario para implementarlas. Claro, algunos pueden requerir una consulta SQL un poco m\u00e1s complicada, algunas uniones adicionales, pero rara vez m\u00e1s que eso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, las funciones en tiempo real var\u00edan enormemente en t\u00e9rminos de cu\u00e1nto esfuerzo de ingenier\u00eda requieren. Algunas funciones se pueden recuperar con una simple llamada HTTP en el momento de la inferencia. Otros pueden requerir que cree un servicio y un punto final para que el modelo pueda usarlo en el momento de la inferencia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>En proyectos de aprendizaje autom\u00e1tico en tiempo real, debe tener en cuenta el esfuerzo de implementaci\u00f3n al seleccionar funciones.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Durante la selecci\u00f3n de funciones, <em>tambi\u00e9n<\/em> debes tener en cuenta el trabajo necesario para implementar una funci\u00f3n determinada, suponiendo que est\u00e9 <em>disponible<\/em> en la infraestructura en tiempo real en primer lugar. En la Figura 5 a continuaci\u00f3n, vemos una clasificaci\u00f3n de funciones de 4 v\u00edas seg\u00fan las dos dimensiones relevantes para seleccionar funciones: poder predictivo y esfuerzo de implementaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" alt=\"Diagrama\n\nDescri\u00e7\u00e3o gerada automaticamente\" src=\"https:\/\/lh7-us.googleusercontent.com\/fYNmyKPpM6ADziJ0FHxrpC-nP1cJBky2Oeo_t5Zw6cqcZ4AqsN5UeCuK7F6iZz-ovsvH8OPNIyUyV6Bi928JRNqn0_-AGXslUiRfD1zFWDIM10xtv0xz7Vdi7xX4llWNmvoGHQHruSE22RG4-kpEdA\" width=\"567\" height=\"419\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 5<\/em><\/strong><em>: <\/em><strong><em>No todas las funciones del aprendizaje autom\u00e1tico en tiempo real son iguales: <\/em><\/strong><em>Adem\u00e1s de sopesar la importancia de una funci\u00f3n (por ejemplo, SHAP), tambi\u00e9n debemos tener en cuenta cu\u00e1nto esfuerzo de ingenier\u00eda se necesita para utilizar una funci\u00f3n determinada en el momento de la inferencia. Las funciones m\u00e1s rentables son aquellas que tienen un gran poder predictivo y al mismo tiempo son simples desde el punto de vista de la implementaci\u00f3n (arriba a la izquierda).<\/em>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En cuanto a c\u00f3mo <em>clasificar<\/em> las funciones en t\u00e9rminos de esfuerzo de implementaci\u00f3n, sugerimos comenzar con las preguntas de la Tabla 2. Como de costumbre, las funciones m\u00e1s sencillas son las que est\u00e1n disponibles en una tienda de funciones (con la ventaja adicional, no necesita preocuparse por el <a href=\"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/\">sesgo de entrenamiento-entrega<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tabla 2: Facilidad de implementaci\u00f3n para funciones en tiempo real, suponiendo una arquitectura de microservicio sincr\u00f3nica<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Descripci\u00f3n<\/strong><\/td><td><strong>Esfuerzo de implementaci\u00f3n<\/strong><\/td><\/tr><tr><td>La funci\u00f3n est\u00e1 disponible en una tienda de funciones.<\/td><td><strong>BAJO<\/strong><\/td><\/tr><tr><td>La funci\u00f3n no est\u00e1 en una tienda de funciones, pero ya est\u00e1 en uso en otro modelo, por lo que podemos reutilizarla f\u00e1cilmente.<\/td><td><strong>BAJO<\/strong><\/td><\/tr><tr><td>La funci\u00f3n est\u00e1 disponible desde un punto final HTTP externo.<\/td><td><strong>BAJO<\/strong><\/td><\/tr><tr><td>La funci\u00f3n est\u00e1 disponible a trav\u00e9s de un \u00fanico punto final HTTP, pero necesita <em>alg\u00fan <\/em>procesamiento previo.<\/td><td><strong>BAJO \/ MEDIO<\/strong><\/td><\/tr><tr><td>La funci\u00f3n necesita informaci\u00f3n de <em>m\u00faltiples <\/em>&nbsp;puntos HTTP.<\/td><td><strong>MEDIO<\/strong><\/td><\/tr><tr><td>La funci\u00f3n existe en una base de datos de producci\u00f3n, pero necesitamos crear un punto final para recuperarla.<\/td><td><strong>MEDIO<\/strong><\/td><\/tr><tr><td>La funci\u00f3n existe en una base de datos de producci\u00f3n a la que no se puede acceder. Es necesario crear un nuevo servicio para acceder a \u00e9l.<\/td><td><strong>GRANDE<\/strong><\/td><\/tr><tr><td>No est\u00e1 claro c\u00f3mo acceder a la funci\u00f3n en el momento de la inferencia, si es posible. Se necesitan m\u00e1s descubrimientos para analizar el problema.<\/td><td><strong>GRANDE + NECESITA M\u00c1S DESCUBRIMIENTO<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez que se decide un conjunto razonable de funciones, el l\u00edder del proyecto debe declarar una <em>congelaci\u00f3n de funciones<\/em>, de modo que solo las seleccionadas se incluyan en el proyecto. Esto reduce el riesgo de que se produzcan <em>cambios de funciones,<\/em> una situaci\u00f3n en la que se siguen a\u00f1adiendo nuevas funciones al modelo y el proyecto nunca termina.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Eliminaci\u00f3n de riesgos: Abordar primero las caracter\u00edsticas de mayor riesgo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Riesgos Abordados<\/strong>:&nbsp; El rendimiento del modelo en el momento de la inferencia es diferente del tiempo de entrenamiento | Las funciones elegidas no est\u00e1n disponibles en el momento de la inferencia | El rendimiento del modelo no es lo suficientemente bueno<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si sigues la m\u00e1xima <a href=\"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/#de-risk-select-features-based-on-importance-and-implementation-effort\"><span class=\"quotes\">\u2033<\/span>selecciona funciones seg\u00fan el esfuerzo<span class=\"quotes\">\u2033<\/span><\/a>, tendr\u00e1 una estimaci\u00f3n aproximada del esfuerzo de ingenier\u00eda necesario para implementar cada funci\u00f3n. Sin embargo, se sabe que las estimaciones del esfuerzo de ingenier\u00eda son imprecisas y dif\u00edciles de acertar, algo parecido a la <a href=\"https:\/\/www.microsoftpressstore.com\/store\/software-estimation-demystifying-the-black-art-9780735690851\">brujer\u00eda<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por lo general (pero no siempre), las funciones que requieren m\u00e1s esfuerzo tambi\u00e9n ser\u00e1n las <em>m\u00e1s riesgosas <\/em>de implementar. Por riesgosas queremos decir que pueden poner en peligro el \u00e9xito del proyecto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comienza la implementaci\u00f3n con estas para abordar ese riesgo desde el principio. En otras palabras, cambiar la implementaci\u00f3n de funciones riesgosas que <em>quedaron<\/em> en el cronograma del proyecto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Abordar primero las partes m\u00e1s inciertas de un proyecto, para exponer los riesgos ocultos desde el principio, a veces se denomina estrategia de \u201cgiro a la izquierda\u201d.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfPor qu\u00e9? Dejar estas tareas riesgosas a la izquierda le permite descubrir posibles <em>obst\u00e1culos<\/em> desde el principio: Puntos finales externos que son demasiado lentos para sus necesidades. Servicios que no pueden manejar la escala de solicitudes que se realizan. Funciones que resultaron no estar disponibles en absoluto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuanto antes el equipo de modelado sea consciente de los problemas de las funciones, antes podr\u00e1 adaptarse, utilizando proxies en su lugar o incluso elimin\u00e1ndolos por completo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Descubrir los obst\u00e1culos m\u00e1s importantes al principio del proyecto ayuda a prevenir el peor modo de fallo posible: descubrir que el proyecto ha fracasado despu\u00e9s de haberle puesto mucho esfuerzo.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tan pronto como se hayan seleccionado las funciones, podr\u00e1 comenzar a trabajar en el descubrimiento de la implementaci\u00f3n (lluvia de ideas, dise\u00f1o de estrategias de implementaci\u00f3n, discusi\u00f3n con otros ingenieros, etc.). Cuanto antes mejor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Desplazar el riesgo dejado<\/em> es un buen consejo en todas las partes de <em>cualquier<\/em> proyecto, pero especialmente durante la implementaci\u00f3n de funciones en ML en tiempo real, debido a los cambios en cascada que desencadenar\u00e1n nuevas rondas de modelado y reacondicionamiento de la capa de decisi\u00f3n (consulte la Figura 2).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Eliminaci\u00f3n de riesgos: Implementa el modelo en modo sombra lo antes posible\u00a0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Riesgos abordados:<\/strong> El tiempo de respuesta del modelo es demasiado alto | El rendimiento del modelo en el momento de la inferencia es diferente del tiempo de entrenamiento | Las funciones elegidas no est\u00e1n disponibles en el momento de la inferencia&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El tramo final de la implementaci\u00f3n, donde se <em>conecta<\/em> el servicio de llamadas al modelo en tiempo real, es <em>la parte m\u00e1s riesgosa del proyecto<\/em> desde una perspectiva de ingenier\u00eda. Aparecen muchos problemas imprevistos cuando llega el momento de conectar servicios regulares a modelos de aprendizaje autom\u00e1tico en tiempo real.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pero no tiene por qu\u00e9 ser as\u00ed. Al adoptar una implementaci\u00f3n en modo sombra desde el principio, puede simular un flujo de un extremo a otro sin esperar la culminaci\u00f3n del proyecto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Modo sombra: implementaci\u00f3n est\u00e1ndar con un toque diferente: los servicios de llamada ignoran los resultados del modelo.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/alexgude.com\/blog\/machine-learning-deployment-shadow-mode\/\"><strong>La implementaci\u00f3n en<\/strong> <strong>modo sombra<\/strong><\/a> es el nombre de un patr\u00f3n de ML aplicado mediante el cual se implementa un modelo de ML en tiempo real, pero se ignora la respuesta en <em>el \u00faltimo momento<\/em>, por ejemplo, usando un <a href=\"https:\/\/martinfowler.com\/articles\/feature-toggles.html\"><em>indicador de funci\u00f3n<\/em><\/a>. Las implementaciones en modo sombra son excelentes para eliminar riesgos en los proyectos porque puede observar c\u00f3mo funciona el modelo en un escenario de la <span class=\"quotes\">\u2033<\/span>vida real<span class=\"quotes\">\u2033<\/span> sin exponerse a ning\u00fan riesgo comercial. La Figura 6 proporciona una representaci\u00f3n visual.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" alt=\"Diagrama\n\nDescri\u00e7\u00e3o gerada automaticamente\" src=\"https:\/\/lh7-us.googleusercontent.com\/J4fhtZsGGbBGc1mfm8iQaWYmHsCXPgth-uQrpKbKjDO7MhOgkJcmBwIp9NDkCuhTkrP3572OIq3mamkit_fd7EwiV6r8_CtRMX8bHfQ5N3dPpT9iU6TeSj-7EGVgfJEtLwg0yOENGmYEncD_8zmNlg\" width=\"567\" height=\"478\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 6<\/em><\/strong><em>: <\/em><strong><em>Implementaci\u00f3n regular versus modo sombra de modelos de aprendizaje autom\u00e1tico en tiempo real<\/em><\/strong><em>: Todo es igual excepto por el hecho de que las puntuaciones del modelo se descartan y el servicio de llamadas contin\u00faa como si nada. Una implementaci\u00f3n en modo sombra elimina los riesgos de un proyecto porque puede detectar muchos problemas durante el tiempo de producci\u00f3n, como el rendimiento bajo carga, la integraci\u00f3n con servicios de funciones, problemas de esquema, etc.<\/em>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Implementar un modelo en modo sombra es \u00fatil en s\u00ed mismo. Pero hacerlo al inicio del proyecto, <em>incluso antes de que se hayan implementado todas las funciones<\/em>, es a\u00fan mejor:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El c\u00f3digo de recuperaci\u00f3n de funciones y el modelo se someter\u00e1n a <em>pruebas de estr\u00e9s<\/em> en circunstancias de producci\u00f3n, lo que expondr\u00e1 problemas de tiempo de respuesta y otros problemas a medida que se implementen.<\/li>\n\n\n\n<li>Las tareas de supervisi\u00f3n se desbloquean cuando tiene una implementaci\u00f3n en modo sombra. Incluso si el modelo no est\u00e1 en uso real, ya puedes crear la infraestructura de monitoreo (funciones de registro, paneles, informes, etc.)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">La Figura 7 a continuaci\u00f3n muestra esto: habilitar el modo sombra al inicio elimina los riesgos del proyecto <em>y<\/em> lo hace m\u00e1s eficiente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" alt=\"Diagrama, Desenho t\u00e9cnico\n\nDescri\u00e7\u00e3o gerada automaticamente\" src=\"https:\/\/lh7-us.googleusercontent.com\/XgNFHJu33HRyoFn3_ZMAd0T4hzJqPqA_HDQubd1OB7Jy7QHf4M-lMf2IdqcreD6KB35vL4O1SXOjr_GSCgLn__hiL9ba_AbtRRRVvHWvJNmCoItdl8yqcVLNYWS87pIpITIyyZRZT8QFT5Y-7-auDg\" width=\"567\" height=\"427\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 7<\/em><\/strong><em>: <\/em><strong><em>Cuanto antes habilites el modo sombra, mejor:<\/em><\/strong><em> Implementar un nuevo modelo en modo sombra desde el principio elimina los riesgos del proyecto y lo hace m\u00e1s eficiente debido a las oportunidades de paralelizaci\u00f3n. Obviamente, las puntuaciones del modelo no ser\u00e1n \u00fatiles si la mayor\u00eda de las funciones son NULL, podr\u00e1 exponer los riesgos de ingenier\u00eda lo antes posible y podr\u00e1 configurar el monitoreo de inmediato.<\/em>&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Claro, el modo sombra puede exigir un trabajo de configuraci\u00f3n inicial, pero cambia las reglas del juego para los proyectos de aprendizaje autom\u00e1tico, ya que garantiza interacciones de modelo en tiempo real m\u00e1s fluidas y seguras.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La verdad es que el ML en tiempo real es dif\u00edcil porque involucra modelos de ML y servicios en tiempo real; cada uno de ellos es un sistema complejo que depende de varias partes que deben funcionar perfectamente.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enumeramos muchos de los modos de falla del ML en tiempo real, pero ten en cuenta que muchos de ellos est\u00e1n relacionados con el ML en general, con algunas particularidades para la configuraci\u00f3n en tiempo real.Tambi\u00e9n sugerimos varias pr\u00e1cticas para ayudarte a evitar esos modos de falla. Sin embargo, incluso siguiendo todos estos pasos, todav\u00eda es posible que el proyecto fracase (la vida sucede), pero las posibilidades de \u00e9xito ser\u00e1n mayores.<br>Y recuerda, todo en esta publicaci\u00f3n est\u00e1 relacionado con <em>sacar el modelo al mercado<\/em> en primer lugar. Despu\u00e9s de eso, todav\u00eda es un camino dif\u00edcil mantenerlo en funcionamiento. Despu\u00e9s de la primera implementaci\u00f3n, necesitar\u00e1 un <a href=\"https:\/\/building.nubank.com\/es\/machine-learning-model-monitoring-9-tips-from-the-trenches\/\">monitoreo<\/a> cuidadoso (especialmente el <a href=\"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/\">seso de entrenamiento-entrega<\/a>) y <a href=\"https:\/\/building.nubank.com\/es\/best-practices-for-real-time-machine-learning-alerting\/\">alertas<\/a> para asegurar de que todo est\u00e9 funcionando bien.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En esta publicaci\u00f3n enumeramos pr\u00e1cticas para reducir sustancialmente el riesgo de fallas en proyectos de aprendizaje autom\u00e1tico en tiempo real.<\/p>\n","protected":false},"author":178110136,"featured_media":25013,"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,"_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":[2510,2543,2575,2574],"ppma_author":[2366],"class_list":["post-25844","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-analytics-es","category-data-science-machine-learning-es","tag-ciencia-de-los-datos","tag-machine-learning-es","tag-model-monitoring-es","tag-observability-es"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Eliminaci\u00f3n de Riesgos en Proyectos de Aprendizaje Autom\u00e1tico en Tiempo Real: Abordando los Modos de Falla Comunes - Building Nubank<\/title>\n<meta name=\"description\" content=\"En esta publicaci\u00f3n enumeramos pr\u00e1cticas para reducir sustancialmente el riesgo de fallas en proyectos de aprendizaje autom\u00e1tico en tiempo 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\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Eliminaci\u00f3n de Riesgos en Proyectos de Aprendizaje Autom\u00e1tico en Tiempo Real: Abordando los Modos de Falla Comunes - Building Nubank\" \/>\n<meta property=\"og:description\" content=\"En esta publicaci\u00f3n enumeramos pr\u00e1cticas para reducir sustancialmente el riesgo de fallas en proyectos de aprendizaje autom\u00e1tico en tiempo real.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/\" \/>\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-05-22T13:28: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=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"24 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\\\/\"},\"author\":{\"name\":\"Felipe Almeida - Machine Learning Engineer\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#\\\/schema\\\/person\\\/2bce0340e6a654811bb0aea0e58092c5\"},\"headline\":\"Eliminaci\u00f3n de Riesgos en Proyectos de Aprendizaje Autom\u00e1tico en Tiempo Real: Abordando los Modos de Falla Comunes\",\"datePublished\":\"2023-09-01T18:35:35+00:00\",\"dateModified\":\"2024-05-22T13:28:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\\\/\"},\"wordCount\":5360,\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\\\/#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\":[\"ciencia de los datos\",\"machine learning\",\"Model Monitoring\",\"observability\"],\"articleSection\":[\"Data &amp; Analytics\",\"Data Science &amp; Machine Learning\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\\\/\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\\\/\",\"name\":\"Eliminaci\u00f3n de Riesgos en Proyectos de Aprendizaje Autom\u00e1tico en Tiempo Real: Abordando los Modos de Falla Comunes - Building Nubank\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\\\/#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-05-22T13:28:21+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#\\\/schema\\\/person\\\/2bce0340e6a654811bb0aea0e58092c5\"},\"description\":\"En esta publicaci\u00f3n enumeramos pr\u00e1cticas para reducir sustancialmente el riesgo de fallas en proyectos de aprendizaje autom\u00e1tico en tiempo real.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/building.nubank.com\\\/es\\\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\\\/#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\\\/es\\\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Eliminaci\u00f3n de Riesgos en Proyectos de Aprendizaje Autom\u00e1tico en Tiempo Real: Abordando los Modos de Falla Comunes\"}]},{\"@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\\\/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\\\/es\\\/author\\\/felipe-almeida-data-scientist\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Eliminaci\u00f3n de Riesgos en Proyectos de Aprendizaje Autom\u00e1tico en Tiempo Real: Abordando los Modos de Falla Comunes - Building Nubank","description":"En esta publicaci\u00f3n enumeramos pr\u00e1cticas para reducir sustancialmente el riesgo de fallas en proyectos de aprendizaje autom\u00e1tico en tiempo 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\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/","og_locale":"es_ES","og_type":"article","og_title":"Eliminaci\u00f3n de Riesgos en Proyectos de Aprendizaje Autom\u00e1tico en Tiempo Real: Abordando los Modos de Falla Comunes - Building Nubank","og_description":"En esta publicaci\u00f3n enumeramos pr\u00e1cticas para reducir sustancialmente el riesgo de fallas en proyectos de aprendizaje autom\u00e1tico en tiempo real.","og_url":"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/","og_site_name":"Building Nubank","article_published_time":"2023-09-01T18:35:35+00:00","article_modified_time":"2024-05-22T13:28: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","Tiempo de lectura":"24 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/#article","isPartOf":{"@id":"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/"},"author":{"name":"Felipe Almeida - Machine Learning Engineer","@id":"https:\/\/building.nubank.com\/es\/#\/schema\/person\/2bce0340e6a654811bb0aea0e58092c5"},"headline":"Eliminaci\u00f3n de Riesgos en Proyectos de Aprendizaje Autom\u00e1tico en Tiempo Real: Abordando los Modos de Falla Comunes","datePublished":"2023-09-01T18:35:35+00:00","dateModified":"2024-05-22T13:28:21+00:00","mainEntityOfPage":{"@id":"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/"},"wordCount":5360,"image":{"@id":"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/#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":["ciencia de los datos","machine learning","Model Monitoring","observability"],"articleSection":["Data &amp; Analytics","Data Science &amp; Machine Learning"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/","url":"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/","name":"Eliminaci\u00f3n de Riesgos en Proyectos de Aprendizaje Autom\u00e1tico en Tiempo Real: Abordando los Modos de Falla Comunes - Building Nubank","isPartOf":{"@id":"https:\/\/building.nubank.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/#primaryimage"},"image":{"@id":"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/#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-05-22T13:28:21+00:00","author":{"@id":"https:\/\/building.nubank.com\/es\/#\/schema\/person\/2bce0340e6a654811bb0aea0e58092c5"},"description":"En esta publicaci\u00f3n enumeramos pr\u00e1cticas para reducir sustancialmente el riesgo de fallas en proyectos de aprendizaje autom\u00e1tico en tiempo real.","breadcrumb":{"@id":"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/building.nubank.com\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/#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\/es\/eliminacion-de-riesgos-en-proyectos-de-aprendizaje-automatico-en-tiempo-real-abordando-los-modos-de-falla-comunes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/building.nubank.com\/es\/"},{"@type":"ListItem","position":2,"name":"Eliminaci\u00f3n de Riesgos en Proyectos de Aprendizaje Autom\u00e1tico en Tiempo Real: Abordando los Modos de Falla Comunes"}]},{"@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\/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\/es\/author\/felipe-almeida-data-scientist\/"}]}},"jetpack_shortlink":"https:\/\/wp.me\/pbKBB5-6IQ","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":""}],"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","_links":{"self":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/25844","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=25844"}],"version-history":[{"count":7,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/25844\/revisions"}],"predecessor-version":[{"id":29299,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/25844\/revisions\/29299"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/media\/25013"}],"wp:attachment":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/media?parent=25844"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/categories?post=25844"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/tags?post=25844"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/ppma_author?post=25844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}