{"id":25901,"date":"2023-06-27T19:55:33","date_gmt":"2023-06-27T19:55:33","guid":{"rendered":"https:\/\/building.nubank.com\/dealing-with-train-serve-skew-in-real-time-ml-models-a-short-guide\/"},"modified":"2024-05-22T13:41:14","modified_gmt":"2024-05-22T13:41:14","slug":"manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia","status":"publish","type":"post","link":"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/","title":{"rendered":"Manejando el Sesgo de Entrenamiento-Entrega en Modelos de Aprendizaje Autom\u00e1tico en Tiempo Real: Una Breve Gu\u00eda"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Escrito por <a href=\"https:\/\/building.nubank.com\/authors\/felipe-almeida-data-scientist\/\">Felipe Almeida<br><\/a>Revisado por <a href=\"https:\/\/building.nubank.com\/authors\/tiagomagalhaes\/\">Tiago Magalh\u00e3es<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esta publicaci\u00f3n explicaremos <em>qu\u00e9<\/em> es entrenamiento-entrega y <em>por qu\u00e9<\/em> necesitamos entenderlo cuando trabajamos con modelos de aprendizaje autom\u00e1tico en tiempo real.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Proporcionaremos ejemplos sobre c\u00f3mo monitorear y depurar discrepancias en entrenamiento-entrega, junto con las lecciones que aprendimos durante a\u00f1os aplicando ML en tiempo real a problemas comerciales en Nubank.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es el sesgo de entrenamiento-entrega?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para comprender el sesgo de entrenamiento-entrega, debes recordar que los modelos de aprendizaje autom\u00e1tico en tiempo real se entrenan en un <em>entorno diferente<\/em> al de aquel en el que se utilizan (serven). Adem\u00e1s, estos modelos generalmente son entrenados y <em>producidos <\/em>por diferentes personas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El entrenamiento normalmente se realiza en un entorno <em>anal\u00edtico<\/em> (cuadernos interactivos o lagos de datos, por ejemplo), pero el servicio ocurre en el entorno de <em>producci\u00f3n <\/em>(microservicios, dispositivos perimetrales, etc.). Esto es lo que representamos en la Figura 1 a continuaci\u00f3n:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/hFfYG4YOgzu-NPdaUtxpbotsBjHx336TuCevpJUOv9ZtuEbucpgrSCGcSbFFU_2qOcyMBIn8sELsH7vhRWwvVX_ea3p2a6xqxDpgQHms_UhGhRG71kCZz7iV2q6T1TTY0NvApn70SM2y-DgYhFgOtA\" alt=\"Diagrama\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 1: <\/em><\/strong><em>El entrenamiento de un modelo de Aprendizaje Autom\u00e1tico generalmente se lleva a cabo en un entorno anal\u00edtico (tablas de bases de datos, cuadernos, etc.), mientras que el uso real de un modelo ocurre en el entorno de producci\u00f3n (servicios en tiempo real, dispositivos perimetrales, API, etc.). Las diferencias inesperadas entre estos provocan un sesgo en el entrenamiento-entrega.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Todo en ML depende de una premisa muy importante: el conjunto de entrenamiento debe reflejar los datos reales que el modelo <em>puntuar\u00e1<\/em> en el momento de servir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>El sesgo de entrenamiento-entrega<\/strong> se refiere a la situaci\u00f3n en la que se rompe la <em>simetr\u00eda<\/em> entre los entornos de entrenamiento y de servicio, debido a problemas operativos y una l\u00f3gica defectuosa. En otras palabras, tenemos <em>sesgo<\/em> cuando existen diferencias entre la forma en que se <em>entren\u00f3<\/em> el modelo y la forma en que se <em>sirve<\/em>.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El sesgo de entrenamiento-entrega se refiere a las diferencias entre el entorno donde se entrena un modelo y donde se sirve (o se utiliza).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Algunos ejemplos de sesgo en entrenamiento-entrega:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Diferentes filtros de fecha: <\/strong>Un cient\u00edfico de datos codific\u00f3 una funci\u00f3n que cuenta la cantidad de compras que realiz\u00f3 un cliente en los \u00faltimos 30 d\u00edas. La implementaci\u00f3n del tiempo de entrega estaba mal codificada: solo cuenta los \u00faltimos 15 d\u00edas.<\/li>\n\n\n\n<li><strong>Nulos vs Ceros: <\/strong>En el momento de la capacitaci\u00f3n, elegimos usar NULL para representar cu\u00e1ndo falta una caracter\u00edstica para un cliente determinado. Sin embargo, los sistemas en tiempo real utilizan 0 (cero) para se\u00f1alar datos faltantes.<\/li>\n\n\n\n<li><strong>Diferentes fuentes de datos:<\/strong> Durante el entrenamiento, creamos una funci\u00f3n categ\u00f3rica utilizando datos de una instant\u00e1nea est\u00e1tica comprada a un proveedor de datos externo. En el momento de la publicaci\u00f3n, recuperamos los valores de las funciones de una API y resulta que no son exactamente iguales.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes acceder a muchos m\u00e1s ejemplos en el apartado \u201c<a href=\"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#understand-the-type-of-mismatch\"><strong>Comprender el tipo de desajuste<\/strong><\/a>\u201d en este art\u00edculo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfPor qu\u00e9 nos preocupa el sesgo en entrenamiento-entrega?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Necesitamos corregir (o al menos ser conscientes de) el sesgo en entrenamiento-entrega porque puede tener <em>graves<\/em> impactos en las predicciones de un modelo y, en consecuencia, en los procesos de negocio que dependen de \u00e9l.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un claro ejemplo es en la <strong>suscripci\u00f3n de cr\u00e9ditos<\/strong>: Los bancos suelen utilizar modelos de riesgo crediticio en tiempo real para decidir qui\u00e9n recibe un pr\u00e9stamo. El sesgo no detectado en entrenamiento-entrega puede hacer que los clientes de alto riesgo reciban pr\u00e9stamos cuando no deber\u00edan, causando p\u00e9rdidas financieras a los bancos, sin mencionar una posible falla sist\u00e9mica del sistema bancario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfPor qu\u00e9 ocurre el sesgo en entrenamiento-entrega?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La raz\u00f3n principal por la que se produce un sesgo en el entrenamiento-entrega es la <strong>falta de comunicaci\u00f3n<\/strong> durante la fase <em>previa a la implementaci\u00f3n<\/em><strong> <\/strong>de un modelo.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los modelos en tiempo real generalmente son entrenados e implementados por <em>diferentes personas<\/em> (cient\u00edficos de datos e ingenieros de aprendizaje autom\u00e1tico, respectivamente), por lo que es probable que ocurran errores de comunicaci\u00f3n y lo que se implementa <em>(o sirve)<\/em> no es lo mismo que lo que se entrena.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>El sesgo en el entrenamiento-entrega se debe a una falta de comunicaci\u00f3n entre los equipos de modelado e ingenier\u00eda o a cambios inesperados en los servicios utilizados para obtener caracter\u00edsticas.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pero incluso <em>despu\u00e9s<\/em> de que un modelo haya estado en funcionamiento durante alg\u00fan tiempo, pueden aparecer nuevos desajustes en el entrenamiento-entrega. Esto se debe a cambios ascendentes o errores al recuperar funciones en tiempo real.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las empresas modernas operan dentro de una <em>arquitectura de microservicios<\/em>, por lo que los modelos en tiempo real necesitan informaci\u00f3n de otros servicios, propiedad de otros equipos, y estos servicios pueden cambiar o interrumpirse sin previo aviso, lo que afecta las caracter\u00edsticas utilizadas en el modelo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 tipos de sesgos existen?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En nuestra experiencia, existen dos tipos diferentes de sesgos en entrenamiento-entrega, dependiendo de la etapa del ciclo de vida se produzcan:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>El sesgo previo a la implementaci\u00f3n<\/strong> ocurre cuando hay errores a medida que el modelo se implementa por <em>primera<\/em> vez en producci\u00f3n;<\/li>\n\n\n\n<li><strong>El sesgo posterior a la implementaci\u00f3n<\/strong> puede ocurrir en cualquier momento durante la operaci\u00f3n del modelo, debido a cambios inesperados o fallas en los servicios ascendentes de donde se obtienen las funciones.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Estos se pueden ver a continuaci\u00f3n en la Figura 2:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/6xSv3r9p2G-zW6AmzEZCpRWz5FpzOPJT2g5IDUNJnw3fGgKfVR8X85xt5RHQLpyz7B8zgDypttNoMQO9uL9uUHT9apvJt-PaZ5EVijhjZUaDJlql-NGPKNMhs7FfEWPToXF9PSUmkfXS3gOdb-Worg\" alt=\"Diagrama\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 2: Ciclo de Vida del Modelo ML Simplificado.<\/em><\/strong><em> La primera implementaci\u00f3n necesita una verificaci\u00f3n del sesgo del entrenamiento-entrega para asegurarse de que las caracter\u00edsticas del modelo se implementen correctamente en primer lugar. Pero una vez que se haya implementado con \u00e9xito, <\/em><strong><em>todav\u00eda<\/em><\/strong><em> debemos seguir monitoreando, detectando y posiblemente solucionando los desajustes en el entrenamiento-entrega a medida que aparecen.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En las siguientes secciones repasaremos algunas de las estrategias para evitar (o al menos mitigar los efectos) el sesgo del entrenamiento-entrega en nuestros modelos en tiempo real en Nubank.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Evitar y mitigar la desviaci\u00f3n del entrenamiento-entrega<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La desviaci\u00f3n del entrenamiento-entrega nunca se eliminar\u00e1 por completo. Siempre habr\u00e1 casos en los que una funci\u00f3n en tiempo real se romper\u00e1 debido a una falla temporal en los servicios de soporte, por ejemplo. Algunos casos de malas caracter\u00edsticas aqu\u00ed y all\u00e1 no deber\u00edan causar problemas, especialmente si utiliza clasificadores s\u00f3lidos como los modelos basados en \u00e1rboles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los casos contra los que queremos protegernos son aquellos en los que una <em>gran parte<\/em> de las predicciones del modelo se ven afectadas por caracter\u00edsticas incorrectas, ya que podr\u00edan tener un impacto <em>grave<\/em> en los procesos de negocio que utilizan predicciones del modelo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para evitar (o al menos mitigar) el sesgo del entrenamiento-entrega, lo primero que necesita es recopilar datos de caracter\u00edsticas de ambas rutas de datos (entrenamiento y entrega). Cubrimos este art\u00edculo en <a href=\"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#prerequisites-datacollection\"><strong>Requisitos Previos: Recopilaci\u00f3n de datos<\/strong>.<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez que se recopilan datos de caracter\u00edsticas en ambas rutas de datos, la tarea de abordar el sesgo se reduce a:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Comparar y monitorear valores de caracter\u00edsticas;<\/li>\n\n\n\n<li>Detectar discrepancias;&nbsp;<\/li>\n\n\n\n<li>Depurar y solucionar problemas seg\u00fan sea necesario.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">En una arquitectura de <em>microservicios<\/em>, los modelos en tiempo real son un servicio m\u00e1s. Los modelos dependen de servicios ascendentes para obtener datos de funciones, pero es imposible controlar lo que har\u00e1n otros equipos,<em>y nosotros tampoco deber\u00edamos hacerlo<\/em>, ya que eso perjudicar\u00eda su autonom\u00eda y agilidad.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es por eso que creemos que el <em>monitoreo es la<\/em> <em>\u00fanica forma escalable<\/em> de <em>defenderse<\/em> contra el sesgo en entrenamiento-entrega, para que pueda detectar y reaccionar ante los problemas, sin convertirse en un cuello de botella para otros equipos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>El uso de una tienda de funciones tambi\u00e9n ayuda a evitar el sesgo en entrenamiento-entrega&nbsp; Las tiendas de caracter\u00edsticas suelen ser operadas por un equipo centralizado, lo que libera al equipo de modelado de tener que lidiar con el problema. <\/em><a href=\"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#If-you-can-use-a-feature-store\"><em>Si puedes, <\/em><strong><em>utiliza una tienda de funciones.<\/em><\/strong><\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En las siguientes subsecciones repasaremos el enfoque completo para abordar el sesgo en entrenamiento-entrega&nbsp; en Nubank: hablaremos de los <a href=\"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#prerequisites-datacollection\"><strong>requisitos previos<\/strong><\/a> (asegur\u00e1ndonos de que est\u00e1 recopilando los datos que necesita) y luego cubriremos qu\u00e9 y c\u00f3mo <a href=\"http:\/\/monitoring-train-serve-mismatches\"><strong>monitorear<\/strong><\/a> el sesgo en entrenamiento-entrega, c\u00f3mo interpretarlo para <strong>detectar<\/strong> discrepancias y, finalmente, cubriremos algunas estrategias sobre c\u00f3mo <a href=\"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#debugging-and-fixing-problems\"><strong>depurar y solucionar<\/strong><\/a> los problemas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Requisitos previos: recopilaci\u00f3n de datos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lo primero que necesitas para poder <em>comparar<\/em> datos de dos rutas de datos diferentes es asegurarte de que est\u00e1s <em>recopilando <\/em>esos datos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto significa que necesitas <strong>(a)<\/strong> una forma program\u00e1tica de generar datos de entrenamiento a pedido y<strong> (b) <\/strong>necesitas registrar las caracter\u00edsticas utilizadas para cada ejecuci\u00f3n del modelo en tiempo real.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para abordar el punto <strong>(a)<\/strong>, necesitas una forma program\u00e1tica y repetible de generar datos de entrenamiento para fechas arbitrarias. Necesitas alg\u00fan tipo de funci\u00f3n<em> <\/em>o rutina<em> <\/em>que tome un par de fechas y genere los datos de entrenamiento para ese per\u00edodo de tiempo. Consulta la Figura 3 para ver un ejemplo:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/qgzOKpX-bkjQB1ERJ35YkZs9nDgMsduTYlN-8OQsKhZbqJKYclHtFb_8dGxqV1mCAuFu3JyhUXFl-z3cxOgrsA734cBmuRFSo645V55iRNFCw0E0D5O1rv4wmILZdD-nFegBSfpwYZ6_jFg5NM4bEA\" alt=\"Tabela\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 3:<\/em><\/strong><em> <\/em><strong><em>La generaci\u00f3n program\u00e1tica de datos de entrenamiento <\/em><\/strong>para un per\u00edodo de fechas determinado es esencial para poder lidiar con el sesgo en entrenamiento-entrega, porque esto es con lo que <em>compararemos<\/em> los datos de servicio. Ten en cuenta que no necesitamos incluir la variable de destino en los datos, solo caracter\u00edsticas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el punto <strong>(b)<\/strong> (registro de datos de funciones de ejecuci\u00f3n en tiempo real), necesita alguna forma de registrar el identificador de puntuaci\u00f3n (ID) y las funciones utilizadas en el momento de la publicaci\u00f3n. Esto se puede hacer f\u00e1cilmente guardando los datos de las funciones en una base de datos o en un servicio de registro como Splunk.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando tiene cubiertos <strong>(a)<\/strong> y <strong>(b)<\/strong>, detectar el sesgo de entrenamiento-entrega es mucho m\u00e1s f\u00e1cil: solo necesitas <em>unir<\/em> caracter\u00edsticas para una instancia determinada y <em>compararlas<\/em>. Esto se muestra en la Figura 4 en la siguiente secci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Monitoreo de sesgo en entrenamiento-entrega<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Como se explic\u00f3 anteriormente, necesita datos de tiempo de entrenamiento y de servicio para monitorear el sesgo en entrenamiento-entrega. Una vez que tengas una forma s\u00f3lida de generarlos continuamente, es simplemente cuesti\u00f3n de usar cualquier herramienta de panel para visualizar los datos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El monitoreo se puede utilizar tanto para las etapas previas como posteriores a la implementaci\u00f3n. Puedes <em>monitorear<\/em> un modelo antes de que est\u00e9 en uso mediante la denominada implementaci\u00f3n en <em>modo sombra<\/em>: implementa un modelo en tiempo real pero ignora sus predicciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Puedes monitorear las funciones que utiliza un modelo en tiempo real incluso antes de que est\u00e9 en producci\u00f3n; implementar el modelo en <\/em><strong><em>modo sombra<\/em><\/strong><em> es un patr\u00f3n com\u00fan.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La forma en que puedes generar datos de monitoreo es la siguiente: toma los datos de tiempo de entrenamiento y de entrega y aplica una <em>uni\u00f3n<\/em> entre ellos, utilizando el ID de instancia como clave de uni\u00f3n. Esto se muestra a continuaci\u00f3n en la Figura 4:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/u6-4Cqx9IOvFTb2-OH-O8yzjxmYBzw89ZDeYuvs7Ghd_8HOHmZhgZ7Oxiyua3H8SVVKCZh07TmxujlfI2IB9NrpdRYY9Em0aIP8alRetYi1UFhTYayCfug8xcxpF28P1fPV-IPx9M4MVo1lDftJAJA\" alt=\"Diagrama, Tabela\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 4:<\/em><\/strong><em> <\/em><strong><em>Creaci\u00f3n de un conjunto de datos de seguimiento a partir de datos de entrenamiento y entrega<\/em><\/strong><em>: cuando tenga datos de ambas rutas de datos, puedes unirlos para crear un conjunto de datos temporal con ambos valores para cada caracter\u00edstica. En el ejemplo mostrado, tenemos una <\/em><strong><em>discrepancia para la caracter\u00edstica x<\/em><\/strong><em>: su valor deber\u00eda ser 5.0 pero en su lugar obtuvimos 10.0.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando tengas un conjunto de datos de seguimiento como el que se muestra en la Figura 4, puedes proceder al seguimiento real, como explicamos a continuaci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tipos de seguimiento de sesgo en entrenamiento-entrega<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El llamado <span class=\"quotes\">\u2033<\/span>conjunto de datos de seguimiento<span class=\"quotes\">\u2033<\/span> es todo lo que necesitamos para generar todos los gr\u00e1ficos de seguimiento que se muestran en las siguientes secciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque puede haber otras formas de visualizar el sesgo en entrenamiento-entrega, cubriremos las que consideramos m\u00e1s importantes y que utilizamos en nuestro trabajo diario.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Porcentaje de coincidencias exactas;<\/li>\n\n\n\n<li>Diferencias medias en los valores de las caracter\u00edsticas;<\/li>\n\n\n\n<li>Diferencias percentiles en valores de caracter\u00edsticas.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Cada uno de estos desempe\u00f1a un papel para ayudar a los profesionales a mantener saludables los sistemas de aprendizaje autom\u00e1tico. Explicaremos cada uno en detalle en las siguientes subsecciones.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Porcentaje de coincidencias exactas por d\u00eda, por funci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes monitorear el sesgo en entrenamiento-entrega trazando el porcentaje de coincidencias exactas, por funci\u00f3n, a lo largo del tiempo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En la Figura 5 a continuaci\u00f3n podemos ver uno de esos gr\u00e1ficos, para la <span class=\"quotes\">\u2033<\/span>Caracter\u00edstica X<span class=\"quotes\">\u2033<\/span>. En el eje Y tenemos los porcentajes de coincidencias exactas y en el eje X el tiempo.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es f\u00e1cil ver que tuvimos alrededor del 90% de tasa de coincidencia el 2 de enero de 2022 y alrededor del 60% el 5 de enero de 2022. Esto significa que el 10% y el 40%, respectivamente, de las instancias calificadas ten\u00edan valores incorrectos para la Caracter\u00edstica X en el momento de la publicaci\u00f3n.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/yny68eCQKFO3l4OZ9ZBRVjUXUrnO8VWiTy-FDXu8tgZdi_FNtrrdQdopHLry_Zdr3etPWo9lQ39hEkozy_yqGOqcRGFuaFJyygyMVhxnKA4KmFlfNdOR0pAgNqzgowdPKcr-Xq1AZFOU8gV-yI4XVg\" alt=\"Diagrama\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 5:<\/em><\/strong><em> <\/em><strong><em>Trazando el porcentaje de coincidencias exactas para una caracter\u00edstica, por d\u00eda<\/em><\/strong><em>. Es muy f\u00e1cil ver que hubo un problema menor el 2 de enero de 2022 y un problema <\/em><strong><em>importante <\/em><\/strong><em>el 5 de enero de 2022. Un panel de seguimiento debe incluir varios gr\u00e1ficos como este, uno para cada caracter\u00edstica del modelo.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ten en cuenta que este gr\u00e1fico no proporciona ninguna informaci\u00f3n sobre la <em>magnitud<\/em> de las diferencias. Sigue leyendo para saber qu\u00e9 hacer a continuaci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Diferencia promedio entre entrenamiento y servicio, por funci\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Monitorear el porcentaje de coincidencias exactas (como se indic\u00f3 anteriormente) es un buen comienzo, pero no suficiente. Es necesario comprender la <em>magnitud<\/em> del desajuste para saber qu\u00e9 tan grave es y si se debe investigar m\u00e1s a fondo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes trazar la diferencia entre los valores de tiempo de entrenamiento y tiempo de entrega de las funciones, como se puede ver en el siguiente ejemplo.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/XA_Gi41Jcn7wGXd8cXrso26GSZgq5GcYKJ387Fmbitc0DSDQpzSRXPAHPIzTmQfRTszeG8Hnj93PQSzYHVZ4ifvL4A0T-Cl8TbmelOFxfOQ3I4gc63XKYZmxMADbyE4RrruykSkGzdpvE2sT9gehbw\" alt=\"Gr\u00e1fico, Gr\u00e1fico de linhas\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 6:<\/em><\/strong><em> <\/em><strong><em>Trazando la diferencia num\u00e9rica promedio entre los valores de tiempo de entrenamiento y tiempo de entrega para una caracter\u00edstica determinada<\/em><\/strong><em>. Podemos ver que la magnitud del sesgo del 2 de enero de 2022 es mucho mayor que la del 5 de enero de 2022. La magnitud del sesgo (junto con el porcentaje de coincidencia exacta como se ve en la Figura 5) le informar\u00e1 sobre la urgencia del problema.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Examinar los promedios de las diferencias, en lugar de simples porcentajes de coincidencia, es un gran paso adelante, pero los promedios pueden ser enga\u00f1osos y llevarnos a conclusiones falsas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Percentiles de diferencias entre entrenamiento y servicio, por caracter\u00edstica<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si ya controlas la tasa de coincidencias exactas y la magnitud promedio, tienes un buen nivel de protecci\u00f3n contra el sesgo en entrenamiento-entrega. Pero los <em>valores at\u00edpicos<\/em> y otros valores extremos pueden enga\u00f1arte, ya que tienen un gran impacto en los promedios: uno o dos valores at\u00edpicos pueden mover mucho el valor promedio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comprender el comportamiento de las caracter\u00edsticas en los extremos (P99) es importante para los casos en los que solo est\u00e1 interesado en los valores m\u00e1s grandes (colas) de las predicciones, como en la suscripci\u00f3n de cr\u00e9ditos, la detecci\u00f3n de fraudes, etc.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para protegernos contra valores at\u00edpicos, podemos monitorear las diferencias percentiles entre los valores de las caracter\u00edsticas de tiempo de entrenamiento y tiempo de entrega, como se ve en la Figura 7 a continuaci\u00f3n. El sesgo del 2 de enero de 2022 parece haber sido estrictamente en los percentiles m\u00e1s altos: apenas tuvo impacto en los percentiles m\u00e1s bajos. El sesgo del 5 de enero de 2022 afect\u00f3 a todos los percentiles m\u00e1s o menos por igual.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/mkyvJUU3HFEzuU2_b-ooka2kYP3KGpPV6NimmLwK9DVNdPXDv1Gm-n5Q5zpoUQV5GYFdFIj-v5zIO35Ho5X99ohb3CL1GMyXU5hZ-advdSQUca6lghNUiK2W3w594_VxsabuUc43-zgYxZl240uuLQ\" alt=\"Gr\u00e1fico, Gr\u00e1fico de linhas\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 7:<\/em><\/strong><em> <\/em><strong><em>Trazando los percentiles de las diferencias num\u00e9ricas entre los valores de tiempo de entrenamiento y tiempo de entrega para una caracter\u00edstica determinada<\/em><\/strong><em>. Los desajustes que afectan solo a los percentiles superiores (como el 2 de enero de 2022) pueden indicar un par de malas puntuaciones debido a problemas temporales, pero no problemas generalizados. Los desajustes que afectan a todos los percentiles (como el 5 de enero de 2022) suelen ser indicativos de un sesgo basado en la l\u00f3gica y pueden ser m\u00e1s graves.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vimos c\u00f3mo <em>monitorear<\/em> adecuadamente las discrepancias de caracter\u00edsticas; Veamos ahora c\u00f3mo <em>interpretar<\/em> estos gr\u00e1ficos para detectar cu\u00e1ndo tenemos un sesgo en entrenamiento-entrega.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Detectando cu\u00e1ndo se est\u00e1 produciendo un sesgo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Seg\u00fan nuestra experiencia, la mayor\u00eda de los desajustes posteriores a la implementaci\u00f3n se deben a cambios ascendentes en los servicios de los que obtenemos funciones en tiempo real. Esto supone que est\u00e1s trabajando dentro de una arquitectura de microservicios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El sesgo en entrenamiento-entrega posterior al despliegue generalmente se muestra como un cambio <em>repentino<\/em> y <em>pegajoso<\/em> en las parcelas de monitoreo. Mira un ejemplo en la Figura 8.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/VYjwnMCBhQ6ir_535ihee4sCuZYAWhPPY5vh8SzHFVDNumsPIHDg8gc-_R_os1xzm-LyBEK_G7sjPDCR-Z5rl__Uyz0QByMObxAtyOwICqspWeTm27TK8GnmZ3_a2n73IQkFMH1SXdWc3j6pNw_3-Q\" alt=\"Gr\u00e1fico, Gr\u00e1fico de linhas\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 8:<\/em><\/strong><em> Gr\u00e1fico de muestra que muestra una caracter\u00edstica <span class=\"quotes\">\u2033<\/span>rota<span class=\"quotes\">\u2033<\/span>. Una ca\u00edda repentina que no vuelve a los niveles normales es una se\u00f1al clara de que algo fundamental cambi\u00f3.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfY c\u00f3mo detectamos el sesgo previo a la implementaci\u00f3n? Solo necesitamos monitorear los datos de una implementaci\u00f3n en modo sombra, como se explica en la secci\u00f3n<a href=\"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#monitoring-train-serve-mismatches\"> <strong>Monitoreo de Sesgo en Entrenamiento-Entrega.<\/strong><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comprender la magnitud del desajuste<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para saber qu\u00e9 tan graves son las discrepancias, debemos observar gr\u00e1ficos que muestren las <em>diferencias<\/em> en los valores de las caracter\u00edsticas. Probablemente no te molestar\u00e1s en intentar investigar cada peque\u00f1o desajuste, especialmente cuando la magnitud es muy peque\u00f1a, ya que probablemente tendr\u00e1s muy poco impacto en la predicci\u00f3n del modelo y, por extensi\u00f3n, en el negocio.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Considera el impacto de la falta de coincidencia de funciones en el negocio.<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Incluso si tienes una caracter\u00edstica con mucho sesgo, hay casos en los que optar\u00e1s por no investigarla si el impacto en el negocio es muy peque\u00f1o. Esto puede suceder, por ejemplo, en casos en los que hay un sesgo en una <em>caracter\u00edstica de baja importancia<\/em>, por lo que no causa ning\u00fan impacto real en el negocio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos pensar en dos formas de medir el impacto empresarial de las caracter\u00edsticas sesgadas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Supervisa tambi\u00e9n el sesgo en la <strong>predicci\u00f3n<\/strong> para ver si los sesgos de caracter\u00edsticas tambi\u00e9n han causado un sesgo en la predicci\u00f3n del modelo. Por ejemplo: \u00bflos sesgos de caracter\u00edsticas hacen que la predicci\u00f3n del modelo sea err\u00f3neamente <em>mayor<\/em> o <em>menor<\/em> de lo que deber\u00eda ser?<\/li>\n\n\n\n<li>Monitorear las <strong>decisiones comerciales<\/strong> tomadas utilizando el modelo. Esto es lo que llamamos <a href=\"https:\/\/building.nubank.com\/es\/machine-learning-model-monitoring-9-tips-from-the-trenches\/#policy-decision-layers-require-additional-monitoring\">monitoreo de la capa de decisi\u00f3n<\/a>. Si eso indica un problema en los mismos d\u00edas en que tuvo un sesgo, es probable que el sesgo est\u00e9 afectando las decisiones comerciales posteriores, por lo que es m\u00e1s grave.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Depuraci\u00f3n y soluci\u00f3n de problemas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bien, entonces <em>detectaste<\/em> que tu modelo sufre un sesgo en entrenamiento-entrega, comprendiste la <em>magnitud<\/em> del desajuste y viste que <em>est\u00e1<\/em> teniendo un impacto suficiente en el negocio como para justificar trabajar en \u00e9l. Ahora necesitas depurar y corregir la discrepancia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>La detecci\u00f3n de el sesgo en entrenamiento-entrega se puede realizar observando paneles y gr\u00e1ficos. Sin embargo, al depurar, es <\/em><strong><em>necesario<\/em><\/strong><em> acceder a los datos de comparaci\u00f3n sin procesar para comprender la <\/em><strong><em>naturaleza<\/em><\/strong><em> del sesgo.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La depuraci\u00f3n y correcci\u00f3n de discrepancias en entrenamiento-entrega implica comparar los valores de las funciones utilizadas en el entrenamiento y en el momento de la entrega para instancias individuales, por lo que <a href=\"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#monitoring-train-serve-mismatches\">te sugerimos<\/a> que crees un <strong>conjunto de datos de monitoreo<\/strong><strong><em> <\/em><\/strong>donde puedas ver los valores de las funciones para ambas rutas de datos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como se mencion\u00f3 anteriormente,<a href=\"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#prerequisites-datacollection\"> la recopilaci\u00f3n de datos <\/a>es un requisito previo para abordar el sesgo en entrenamiento-entrega: si no se recopilan datos de capacitaci\u00f3n y servicio, no se pueden monitorear ni corregir las discrepancias en el entrenamiento-entrega.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En la Figura 9 puedes ver otro ejemplo de c\u00f3mo deber\u00eda verse un <span class=\"quotes\">\u2033<\/span>conjunto de datos de seguimiento<span class=\"quotes\">\u2033<\/span> para un modelo en tiempo real que tiene 3 caracter\u00edsticas: \u201cA\u201d, \u201cB\u201d y \u201cC\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/lFhnXYxP_TUTWC3zYH22n4iPpgcTTpaBAsRvHkO3UhCzqjsofZeyEs_W5dhgFOHGVQbUmDIYoyF5r_awspViLwaT20a3yK867jaefmp6cmEe-PIOpUdUjQtRVPm7llJYgeZF__NCCkDAQqg2RKpGMQ\" alt=\"Tabela\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 9:<\/em><\/strong><em> La depuraci\u00f3n de discrepancias entre el entrenamiento-entrega generalmente requiere observar el \u201cconjunto de datos de monitoreo\u201d sin procesar y comparar los valores de las caracter\u00edsticas de ambas rutas de datos. El conjunto de datos de monitoreo es solo una uni\u00f3n entre los datos de caracter\u00edsticas del tiempo de entrenamiento y del tiempo de entrega.&nbsp;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Veamos ahora c\u00f3mo priorizar las investigaciones y veamos ejemplos de tipos comunes de desajustes.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conc\u00e9ntrate primero en las funciones m\u00e1s importantes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si tienes que lidiar con discrepancias en muchas funciones, debes<em> <\/em>elegir en cu\u00e1les centrarte primero, especialmente cuando se trata de sesgos previos a la implementaci\u00f3n; es com\u00fan tener varias funciones sesgadas cuando implementas por primera vez tu modelo en tiempo real (con suerte en modo sombra para que no se produzcan da\u00f1os).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Utiliza la importancia de las caracter\u00edsticas (por ejemplo, valores SHAP) para decidir qu\u00e9 caracter\u00edsticas investigar primero.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comprender el tipo de desajuste\u00a0<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora enumeraremos los tipos comunes de discrepancias, junto con las razones y soluciones m\u00e1s comunes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se explican en las siguientes subsecciones y se resumen en la siguiente tabla:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Tipo de desajuste<\/strong><\/td><td><strong>Cuando suele ocurrir<\/strong><\/td><td><strong>Posibles soluciones<\/strong><\/td><\/tr><tr><td>Valores nulos al momento de entrega<\/td><td>Pre-implementaci\u00f3n y post-implementaci\u00f3n<\/td><td>Depende del motivo. Es posible que sea necesario repararlo o volver a entrenar el modelo si se debe a una fuga de datos.<\/td><\/tr><tr><td>Valores nulos vs 0s<\/td><td>Generalmente antes de la implementaci\u00f3n<\/td><td>Depurar y corregir la l\u00f3gica de la funci\u00f3n de tiempo de publicaci\u00f3n (generalmente agregando un <em>fillna(0))<\/em><\/td><\/tr><tr><td>El valor del tiempo de servicio suele ser mayor<\/td><td>Pre-implementaci\u00f3n y post-implementaci\u00f3n<\/td><td>Depurar y corregir la l\u00f3gica de la funci\u00f3n de tiempo de entrega<\/td><\/tr><tr><td>El valor del tiempo de servicio suele ser menor<\/td><td>Pre-implementaci\u00f3n y post-implementaci\u00f3n<\/td><td>Depurar y corregir la l\u00f3gica de la funci\u00f3n de tiempo de entrega<\/td><\/tr><tr><td>Ejemplos que no se punt\u00faan al momento de servir<\/td><td>Pre-implementaci\u00f3n y post-implementaci\u00f3n<\/td><td>Depende del motivo<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Valores nulos al momento de entrega<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Supusiste (en el momento del entrenamiento) que alguna informaci\u00f3n estar\u00eda disponible en el momento de la inferencia, pero cuando implementas por primera vez el modelo en tiempo real, todos los valores de las caracter\u00edsticas son NULL.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto puede ser una forma de <em>fuga de datos<\/em>: utilizaste informaci\u00f3n futura para crear funciones. Si esto sucede, ver\u00e1s valores NULL en el momento de la inferencia, mientras que ten\u00edas valores no nulos durante el entrenamiento. Es posible que debas eliminar estas funciones y volver a entrenar el modelo. Mira un ejemplo a continuaci\u00f3n en la Figura 10:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/Scn73Ko8Q4yofhpciKyO3NXPbNZSV_IM2bUtpn9SMcIrEZ2qEtCXKU1v3r7CXFQOt6urZMZky3XuyR7JasQ7LCi96Hd32lpN0zCY9DWPnLZj2MxDnU3E1Hx2OpKF8PsEr-9v2JdRUBDbd3cpnZDkzA\" alt=\"Tabela\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 10:<\/em><\/strong><em> Si <\/em><strong><em>solo<\/em><\/strong><em> tienes valores NULL para una funci\u00f3n en el momento de la publicaci\u00f3n, puede significar que hubo una fuga de datos durante el entrenamiento. Si ese es el caso, es posible que debas eliminar esta funci\u00f3n y volver a entrenar el modelo.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Solo debes sospechar una fuga de datos si <em>todos<\/em> los valores de una caracter\u00edstica son NULL en el momento de la publicaci\u00f3n; Si solo algunos valores son NULL, el problema puede deberse a excepciones o tiempos de espera de tiempo de ejecuci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Valores nulos vs 0s<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Es com\u00fan que los valores <em>NULL<\/em> se mezclen con 0 (cero) durante la implementaci\u00f3n de la funci\u00f3n. Esto sucede con funciones basadas en recuentos, sumas y promedios. Una soluci\u00f3n com\u00fan es usar fillna(0) para reemplazar los NULL por ceros.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo:<\/strong> El modelado se realiz\u00f3 con un paquete R que representa los tama\u00f1os de listas vac\u00edas como NULL. Pero en el momento de la entrega, las funciones se obtienen con c\u00f3digo Java y la sem\u00e1ntica puede ser diferente: los recuentos de listas vac\u00edas se representan como 0 (cero) en lugar de NULL. Consulta la Figura 11 a continuaci\u00f3n:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/q77E4gc34kA8U7nibsO1seI1vyhc0KRGS7mFV1Ml4yvWru5Q1VPYz_4Xlbg4WeQcIVryfoAKNOFlCG0DMEAZjpmtNOOy_dtlKUhB9ENvx_tw5KiXOq7dgVl7c1uPwgxRsvvAjoP4ROFH1TAcqm1Tmg\" alt=\"Tabela\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 11:<\/em><\/strong><em> Este es un ejemplo cl\u00e1sico de sesgo Nulo vs 0; ten en cuenta que solo tenemos discrepancias en los ejemplos en los que el valor real de la caracter\u00edstica es 0; no hay discrepancias en el entrenamiento-entrega en los otros casos.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">El valor del tiempo de servicio suele ser mayor<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando los valores de una caracter\u00edstica son <em>consistentemente <\/em>m\u00e1s altos de lo que deber\u00edan ser, probablemente tengamos un error en los filtros y\/o rangos de fechas utilizados en el momento de la entrega. Consulta la Figura 12 a continuaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo:<\/strong> Una de las caracter\u00edsticas de un modelo de fraude es el n\u00famero de compras <em>liquidadas<\/em> con tarjeta de cr\u00e9dito que realiz\u00f3 un cliente en el \u00faltimo mes. Sin embargo, la funci\u00f3n se implement\u00f3 incorrectamente en el momento de la entrega: en su lugar, utiliza <em>todas<\/em> las compras (liquidadas y no), por lo que las cifras a veces son m\u00e1s altas de lo que deber\u00edan haber sido.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/Hju5G5pwqRI6lgcAfNW1bMD2DJ0rn_IIT-xbSCs0XHGonyo1DJEzneDI8Op0Y6L_tWKTexg1TlMWn4s8-yLyD1gol15eVg48F_oINymRHVxwwP9rplkUg6TaO603QdDeFbQ_zBrwxgLRudmfUcZlDw\" alt=\"Tabela\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 12:<\/em><\/strong><em> Cuando los valores de las caracter\u00edsticas son consistentemente m\u00e1s altos de lo que deber\u00edan ser, esto puede indicar que la implementaci\u00f3n de la caracter\u00edstica de tiempo de entrega est\u00e1 utilizando filtros demasiado flexibles e incluye m\u00e1s informaci\u00f3n de la que deber\u00eda.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">El valor del tiempo de servicio suele ser menor<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Esto es an\u00e1logo al tipo de discrepancia anterior: con valores m\u00e1s bajos en lugar de valores m\u00e1s altos de lo esperado. Consulta la Figura 13 a continuaci\u00f3n para ver c\u00f3mo se ve.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo<\/strong>: Un modelo de calificaci\u00f3n crediticia en tiempo real tiene una funci\u00f3n llamada \u201c<em>num_transfers_last_day<\/em>\u201d, que contiene la cantidad de transferencias realizadas por un cliente en las \u00faltimas 24 horas. Sin embargo, el ingeniero encargado de implementarlo en el momento de la entrega pens\u00f3 que se refer\u00eda al n\u00famero de transferencias en el <em>d\u00eda actual<\/em> (es decir, desde las 00:00 hasta el momento actual).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/uiOHExSyxueKqBUojisZYUGc2MG85Kob2fTBzOhbTZuZSspy2_IVwHmfqe4y7makSjFEGndJKKNVYtcpOv0q8t-0lC2xs_AlSA6_JFXED9GIPmrsf8HRHLse3UoIAj4gA3iEqqXDCiZJt7mMFKByFw\" alt=\"Tabela\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 13:<\/em><\/strong><em> En este caso, vemos que muchas instancias tienen valores m\u00e1s bajos de lo que deber\u00edan. Nuevamente, esto puede deberse a un filtro implementado incorrectamente, errores uno por uno, etc.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ejemplos que no se punt\u00faan al momento de entregar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A veces, los modelos en tiempo real terminan puntuando distribuciones de eventos que no exist\u00edan en los datos de entrenamiento. Esto es peligroso porque no podemos confiar en las predicciones dadas a instancias muestreadas de una distribuci\u00f3n diferente a la que se entren\u00f3 el modelo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo 1: <\/strong>Un banco entren\u00f3 un modelo para calificar el riesgo de incumplimiento crediticio del primer pr\u00e9stamo otorgado a un cliente. Sin embargo, los ingenieros implementaron por error el modelo para calificar <em>tambi\u00e9n<\/em> los pr\u00e9stamos posteriores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ejemplo 2: <\/strong>Se entren\u00f3 un modelo de fraude para detectar intentos de fraude en compras con tarjeta de cr\u00e9dito realizadas en l\u00ednea. Sin embargo, un equipo de ingenier\u00eda implement\u00f3 por error el modelo para calificar tambi\u00e9n las compras <em>en persona<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este tipo de sesgo se diferencia de los anteriores porque no se refiere a discrepancias de <em>caracter\u00edsticas<\/em>, sino a casos en los que no se debe puntuar <em>todo el ejemplo<\/em>. En la Figura 14 vemos c\u00f3mo este tipo de problema aparecer\u00eda en el conjunto de datos de monitoreo: todos los valores de caracter\u00edsticas de la ruta de datos de entrenamiento ser\u00e1n NULL.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/smiNrLPrnXlb8VZvKfeWmfl0yQq9fpOBJzYdJjSaZEk3NIt8Aempt-kjNbbSFSdnc1s2n5fTPUUsuIB4fSEYg2rQVKFqw8HmYOx6xeZJ7Mt3QLsfH1tU0k-9vxUMnDSC68FFqoSerb96J21pS5jpuQ\" alt=\"Tabela\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 14:<\/em><\/strong><em> Aqu\u00ed vemos un caso en el que el modelo en tiempo real calific\u00f3 dos ejemplos (ID 0004 y 0005), pero no aparecieron en el conjunto de datos de entrenamiento generado mediante programaci\u00f3n. Es muy importante utilizar una uni\u00f3n EXTERIOR para unir ambos conjuntos de datos, de modo que los ejemplos en cualquiera de las rutas de datos aparezcan en el conjunto de datos de monitoreo.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ten en cuenta que esto es diferente de la <em>deriva de datos<\/em>: la distribuci\u00f3n no cambi\u00f3 debido al simple paso del tiempo, sino a diferencias en la forma en que se utiliza el modelo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Consejos generales<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed hay algunos otros consejos y sugerencias generales que pueden ayudarte a lidiar con el sesgo en el entrenamiento-entrega.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Si puedes, utiliza una tienda de caracter\u00edsticas.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Con un almac\u00e9n de caracter\u00edsticas, la tarea de calcular caracter\u00edsticas se delega a un sistema especializado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las tiendas de funciones modernas admiten c\u00e1lculos por lotes y en tiempo real, lo que evita la necesidad de preocuparse por el sesgo en entrenamiento-entrega. Estos sistemas suelen admitir sem\u00e1ntica de <em>escritura \u00fanica<\/em>, de modo que las caracter\u00edsticas se definen en una capa superior de abstracci\u00f3n, en lugar de volver a codificarse en los sistemas de producci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Diferencias de precisi\u00f3n de punto flotante<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A veces, los datos de entrenamiento y entrega difieren solo en unos pocos decimales.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una de las situaciones en las que esto sucede es cuando se utilizan diferentes tecnolog\u00edas (por ejemplo, Python y Java) para crear funciones de tiempo de entrenamiento y entrega. Puede suceder que la precisi\u00f3n flotante sea diferente en ambos y termines con desajustes como los que se muestran a continuaci\u00f3n en la Figura 15:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/jmHSQnkQnOMXkx2LSw_4rN0w2gbmWJnzRs0Wj_1GYZ71SQ0f6uFh78bobnyYt8DfNHQeBA-nCiFEvtvtKD91erfi_GuHFxSFfzhoupdJ5djzpDsjHopBbtbtLUGNi-HzhUsMQpQa02Fjk6BOYopEgQ\" alt=\"Diagrama\n\nDescri\u00e7\u00e3o gerada automaticamente\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Figura 15:<\/em><\/strong><em> <\/em><strong><em>Las diferencias de precisi\u00f3n de punto flotante<\/em><\/strong><em>, como las que se muestran, no suelen ser indicativas de un problema real: reflejan la forma en que las diferentes tecnolog\u00edas tratan los n\u00fameros de punto flotante.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Estas peque\u00f1as diferencias no suelen contar como desajustes reales; por lo general, no tienen ning\u00fan impacto en los resultados del modelo. Aplica algo de holgura al comparar valores de coma flotante para evitar perder tiempo en esto.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nombrar caracter\u00edsticas con precisi\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Los nombres de funciones bien escritos ayudan a evitar malentendidos entre los equipos de modelado e ingenier\u00eda. La siguiente tabla muestra ejemplos de nombres de funciones buenos y malos.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>BUENO<\/strong><\/td><td><strong>MALO<\/strong><\/td><td><strong>Raz\u00f3n<\/strong><\/td><\/tr><tr><td>num_transfers_last_24h<\/td><td>num_transfers_last_day<\/td><td>last_day es ambiguo: \u00bfsignifica las \u00faltimas 24 horas? \u00bfO el d\u00eda actual (00:00 hasta ahora)?<\/td><\/tr><tr><td>num_settled_purchases_120d<\/td><td>num_purchases_120d<\/td><td>Si la funci\u00f3n solo incluye compras liquidadas, debe quedar claro en el nombre de la funci\u00f3n.&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Estrecha comunicaci\u00f3n entre cient\u00edficos de datos e ingenieros de aprendizaje autom\u00e1tico.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Como mencionamos anteriormente, <a href=\"https:\/\/building.nubank.com\/es\/data-scientist-x-machine-learning-engineer-roles-how-are-they-different-how-are-they-alike\/\">los cient\u00edficos de datos (DSs) y los ingenieros de aprendizaje autom\u00e1tico (MLEs)<\/a> son clave para llevar un modelo de aprendizaje autom\u00e1tico a producci\u00f3n, encarg\u00e1ndose del modelado y la implementaci\u00f3n en tiempo real, respectivamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deber\u00edan formar parte de un \u00fanico equipo\u2014como un escuadr\u00f3n. Si diferentes equipos son responsables de modelar e implementar modelos, hay mayores posibilidades de que haya malentendidos que provoquen un sesgo en entrenamiento-entrega.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Probablemente puedas usar datos de muestra para monitorear<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Monitorear los modelos de ML requiere mucho tiempo y es <em>costoso<\/em>. No es necesario utilizar todos los datos para monitorear el sesgo en entrenamiento-entrega.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si utiliza datos muestreados, aseg\u00farate de que sea una muestra determinista para que se incluyan muestras en ambas rutas de datos (entrenamiento y entrega). El muestreo basado en hash es una forma de hacerlo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Implementaciones en modo sombra<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><em>La implementaci\u00f3n del modo sombra<\/em> se refiere a la implementaci\u00f3n completa de un modelo en tiempo real, <em>excepto <\/em>el uso de sus predicciones para tomar decisiones. Esto se puede hacer con una <em>bandera de caracter\u00edstica<\/em> (o una simple declaraci\u00f3n if).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes utilizar implementaciones en modo sombra para probar si hay discrepancias en entrenamiento-entrega, sin causar ning\u00fan da\u00f1o al negocio, porque las predicciones no se utilizar\u00e1n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">En resumen, el sesgo en entrenamiento-entrega es un problema importante en los modelos de aprendizaje autom\u00e1tico en tiempo real, que surge de las diferencias entre los entornos de entrenamiento y entrega. Esto puede deberse a una falta de comunicaci\u00f3n entre equipos o a cambios inesperados en las fuentes de datos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para mitigar esto, es vital monitorear y depurar discrepancias, centr\u00e1ndose en las caracter\u00edsticas de gran importancia. Esto implica recopilar y comparar datos de caracter\u00edsticas de las rutas de capacitaci\u00f3n y servicio, y abordar los problemas a medida que surjan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El uso de una tienda de funciones puede simplificar este proceso al subcontratar el c\u00e1lculo de funciones a otros equipos. Adem\u00e1s, mantener una buena comunicaci\u00f3n entre los cient\u00edficos de datos y los ingenieros de aprendizaje autom\u00e1tico puede evitar malentendidos que conduzcan a sesgos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La implementaci\u00f3n de modelos en modo sombra, donde las predicciones no se utilizan para tomar decisiones, puede ayudar a probar las discrepancias entre los servicios de trenes sin impacto en el negocio. Al abordar el sesgo en entrenamiento-entrega, las empresas pueden garantizar que sus modelos de aprendizaje autom\u00e1tico en tiempo real sean m\u00e1s precisos y confiables.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una breve gu\u00eda que explica c\u00f3mo evitar y mitigar los impactos del sesgo del entrenamiento-entrega en modelos de aprendizaje autom\u00e1tico en tiempo real. <\/p>\n","protected":false},"author":178110136,"featured_media":25155,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[2509,2508],"tags":[2510,2543],"ppma_author":[2366],"class_list":["post-25901","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"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Manejando el Sesgo de Entrenamiento-Entrega en Modelos de Aprendizaje Autom\u00e1tico en Tiempo Real: Una Breve Gu\u00eda - Building Nubank<\/title>\n<meta name=\"description\" content=\"Una breve gu\u00eda que explica c\u00f3mo evitar y mitigar los impactos del sesgo del entrenamiento-entrega en modelos 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\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Manejando el Sesgo de Entrenamiento-Entrega en Modelos de Aprendizaje Autom\u00e1tico en Tiempo Real: Una Breve Gu\u00eda - Building Nubank\" \/>\n<meta property=\"og:description\" content=\"Una breve gu\u00eda que explica c\u00f3mo evitar y mitigar los impactos del sesgo del entrenamiento-entrega en modelos de aprendizaje autom\u00e1tico en tiempo real.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/\" \/>\n<meta property=\"og:site_name\" content=\"Building Nubank\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-27T19:55:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-22T13:41:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/building.nubank.com\/wp-content\/uploads\/2023\/06\/1120-www.victoriaholguin.com-Victoria-Holguin-_DSF0634-Mejorado-NR-1024x683.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"683\" \/>\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=\"26 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\\\/\"},\"author\":{\"name\":\"Felipe Almeida - Machine Learning Engineer\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#\\\/schema\\\/person\\\/2bce0340e6a654811bb0aea0e58092c5\"},\"headline\":\"Manejando el Sesgo de Entrenamiento-Entrega en Modelos de Aprendizaje Autom\u00e1tico en Tiempo Real: Una Breve Gu\u00eda\",\"datePublished\":\"2023-06-27T19:55:33+00:00\",\"dateModified\":\"2024-05-22T13:41:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\\\/\"},\"wordCount\":5455,\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/1120-www.victoriaholguin.com-Victoria-Holguin-_DSF0634-Mejorado-NR.jpg?fit=6240%2C4160&ssl=1\",\"keywords\":[\"ciencia de los datos\",\"machine learning\"],\"articleSection\":[\"Data &amp; Analytics\",\"Data Science &amp; Machine Learning\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\\\/\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\\\/\",\"name\":\"Manejando el Sesgo de Entrenamiento-Entrega en Modelos de Aprendizaje Autom\u00e1tico en Tiempo Real: Una Breve Gu\u00eda - Building Nubank\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/1120-www.victoriaholguin.com-Victoria-Holguin-_DSF0634-Mejorado-NR.jpg?fit=6240%2C4160&ssl=1\",\"datePublished\":\"2023-06-27T19:55:33+00:00\",\"dateModified\":\"2024-05-22T13:41:14+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#\\\/schema\\\/person\\\/2bce0340e6a654811bb0aea0e58092c5\"},\"description\":\"Una breve gu\u00eda que explica c\u00f3mo evitar y mitigar los impactos del sesgo del entrenamiento-entrega en modelos de aprendizaje autom\u00e1tico en tiempo real.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/building.nubank.com\\\/es\\\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/1120-www.victoriaholguin.com-Victoria-Holguin-_DSF0634-Mejorado-NR.jpg?fit=6240%2C4160&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2023\\\/06\\\/1120-www.victoriaholguin.com-Victoria-Holguin-_DSF0634-Mejorado-NR.jpg?fit=6240%2C4160&ssl=1\",\"width\":6240,\"height\":4160},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Manejando el Sesgo de Entrenamiento-Entrega en Modelos de Aprendizaje Autom\u00e1tico en Tiempo Real: Una Breve Gu\u00eda\"}]},{\"@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":"Manejando el Sesgo de Entrenamiento-Entrega en Modelos de Aprendizaje Autom\u00e1tico en Tiempo Real: Una Breve Gu\u00eda - Building Nubank","description":"Una breve gu\u00eda que explica c\u00f3mo evitar y mitigar los impactos del sesgo del entrenamiento-entrega en modelos 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\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/","og_locale":"es_ES","og_type":"article","og_title":"Manejando el Sesgo de Entrenamiento-Entrega en Modelos de Aprendizaje Autom\u00e1tico en Tiempo Real: Una Breve Gu\u00eda - Building Nubank","og_description":"Una breve gu\u00eda que explica c\u00f3mo evitar y mitigar los impactos del sesgo del entrenamiento-entrega en modelos de aprendizaje autom\u00e1tico en tiempo real.","og_url":"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/","og_site_name":"Building Nubank","article_published_time":"2023-06-27T19:55:33+00:00","article_modified_time":"2024-05-22T13:41:14+00:00","og_image":[{"width":1024,"height":683,"url":"https:\/\/building.nubank.com\/wp-content\/uploads\/2023\/06\/1120-www.victoriaholguin.com-Victoria-Holguin-_DSF0634-Mejorado-NR-1024x683.jpg","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":"26 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#article","isPartOf":{"@id":"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/"},"author":{"name":"Felipe Almeida - Machine Learning Engineer","@id":"https:\/\/building.nubank.com\/es\/#\/schema\/person\/2bce0340e6a654811bb0aea0e58092c5"},"headline":"Manejando el Sesgo de Entrenamiento-Entrega en Modelos de Aprendizaje Autom\u00e1tico en Tiempo Real: Una Breve Gu\u00eda","datePublished":"2023-06-27T19:55:33+00:00","dateModified":"2024-05-22T13:41:14+00:00","mainEntityOfPage":{"@id":"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/"},"wordCount":5455,"image":{"@id":"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2023\/06\/1120-www.victoriaholguin.com-Victoria-Holguin-_DSF0634-Mejorado-NR.jpg?fit=6240%2C4160&ssl=1","keywords":["ciencia de los datos","machine learning"],"articleSection":["Data &amp; Analytics","Data Science &amp; Machine Learning"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/","url":"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/","name":"Manejando el Sesgo de Entrenamiento-Entrega en Modelos de Aprendizaje Autom\u00e1tico en Tiempo Real: Una Breve Gu\u00eda - Building Nubank","isPartOf":{"@id":"https:\/\/building.nubank.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#primaryimage"},"image":{"@id":"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2023\/06\/1120-www.victoriaholguin.com-Victoria-Holguin-_DSF0634-Mejorado-NR.jpg?fit=6240%2C4160&ssl=1","datePublished":"2023-06-27T19:55:33+00:00","dateModified":"2024-05-22T13:41:14+00:00","author":{"@id":"https:\/\/building.nubank.com\/es\/#\/schema\/person\/2bce0340e6a654811bb0aea0e58092c5"},"description":"Una breve gu\u00eda que explica c\u00f3mo evitar y mitigar los impactos del sesgo del entrenamiento-entrega en modelos de aprendizaje autom\u00e1tico en tiempo real.","breadcrumb":{"@id":"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#primaryimage","url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2023\/06\/1120-www.victoriaholguin.com-Victoria-Holguin-_DSF0634-Mejorado-NR.jpg?fit=6240%2C4160&ssl=1","contentUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2023\/06\/1120-www.victoriaholguin.com-Victoria-Holguin-_DSF0634-Mejorado-NR.jpg?fit=6240%2C4160&ssl=1","width":6240,"height":4160},{"@type":"BreadcrumbList","@id":"https:\/\/building.nubank.com\/es\/manejando-el-sesgo-de-entrenamiento-entrega-en-modelos-de-aprendizaje-automatico-en-tiempo-real-una-breve-guia\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/building.nubank.com\/es\/"},{"@type":"ListItem","position":2,"name":"Manejando el Sesgo de Entrenamiento-Entrega en Modelos de Aprendizaje Autom\u00e1tico en Tiempo Real: Una Breve Gu\u00eda"}]},{"@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_featured_media_url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2023\/06\/1120-www.victoriaholguin.com-Victoria-Holguin-_DSF0634-Mejorado-NR.jpg?fit=6240%2C4160&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pbKBB5-6JL","jetpack_sharing_enabled":true,"authors":[{"term_id":2366,"user_id":178110136,"is_guest":0,"slug":"felipe-almeida-data-scientist","display_name":"Felipe Almeida - Machine Learning Engineer","avatar_url":{"url":"https:\/\/building.nubank.com\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-26-at-14.06.59.png","url2x":"https:\/\/building.nubank.com\/wp-content\/uploads\/2024\/03\/Screenshot-2024-03-26-at-14.06.59.png"},"0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/25901","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=25901"}],"version-history":[{"count":6,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/25901\/revisions"}],"predecessor-version":[{"id":29310,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/25901\/revisions\/29310"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/media\/25155"}],"wp:attachment":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/media?parent=25901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/categories?post=25901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/tags?post=25901"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/ppma_author?post=25901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}