<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="https://futurewithml.netlify.app/feed_style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
    <tabi:metadata xmlns:tabi="https://github.com/welpo/tabi">
        <tabi:base_url>https:&#x2F;&#x2F;futurewithml.netlify.app</tabi:base_url>
        <tabi:separator>
            |
        </tabi:separator>
        <tabi:about_feeds>Esta es una fuente web, también conocida como fuente Atom. Suscríbete copiando la URL de la barra de direcciones en tu lector de noticias. Visita About Feeds para aprender más y empezar. Es gratis. </tabi:about_feeds>
        <tabi:visit_the_site>Visita la web</tabi:visit_the_site>
        <tabi:recent_posts>Publicaciones recientes</tabi:recent_posts>
        <tabi:last_updated_on>Actualizado el $DATE</tabi:last_updated_on>
        <tabi:default_theme></tabi:default_theme>
        <tabi:post_listing_date>date</tabi:post_listing_date>
        <tabi:current_section>Mldesign</tabi:current_section>
    </tabi:metadata><link rel="extra-stylesheet" href="https://futurewithml.netlify.app/skins/cyber.css?h=eb029a27afbc61465b52" /><title>Future With ML - Mldesign</title>
        <subtitle>Patrones de Diseño en Machine Learning, MLOps e Ingeniería de IA por Christian Picon Calderon</subtitle>
    <link href="https://futurewithml.netlify.app/es/tags/mldesign/atom.xml" rel="self" type="application/atom+xml"/>
    <link href="https://futurewithml.netlify.app/es/tags/mldesign/" rel="alternate" type="text/html"/>
    <generator uri="https://www.getzola.org/">Zola</generator><updated>2023-03-04T00:00:00+00:00</updated><id>https://futurewithml.netlify.app/es/tags/mldesign/atom.xml</id><entry xml:lang="es">
        <title>Patrones de Diseño en ML</title>
        <published>2023-03-04T00:00:00+00:00</published>
        <updated>2023-03-04T00:00:00+00:00</updated>
        <author>
            <name>Christian Picon Calderon</name>
        </author>
        <link rel="alternate" href="https://futurewithml.netlify.app/es/posts/chapter01-ml-pattern-design/" type="text/html"/>
        <id>https://futurewithml.netlify.app/es/posts/chapter01-ml-pattern-design/</id>
        
            <content type="html">&lt;h1 id=&quot;patrones-de-machine-learning&quot;&gt;&lt;strong&gt;Patrones de Machine Learning&lt;&#x2F;strong&gt;&lt;&#x2F;h1&gt;
&lt;p&gt;¡Hola! En primer lugar, me embarco en un viaje para destacar los principales aspectos presentados en el libro “&lt;a href=&quot;https:&#x2F;&#x2F;www.oreilly.com&#x2F;library&#x2F;view&#x2F;machine-learning-design&#x2F;9781098115777&#x2F;&quot;&gt;Machine Learning Design Patterns&lt;&#x2F;a&gt;”. Esta serie está dirigida a ingenieros de machine learning, ingenieros de datos y científicos de datos. Omitiré la explicación de la terminología básica y me centraré en los matices de enfrentar los desafíos más comunes al desplegar modelos de machine learning. El concepto de patrones fue introducido en el campo de la ingeniería civil&#x2F;arquitectura por Christopher Alexander y cinco coautores en el libro titulado “A Pattern Language” (1977). La idea principal es que en una situación que ocurre recurrentemente, el patrón describe la solución central para este contexto y puede aplicarse varias veces para este u otros similares. Aquí, exploraremos los patrones más generales que pueden aplicarse al diseño de sistemas de machine learning.&lt;&#x2F;p&gt;
&lt;span id=&quot;continue-reading&quot;&gt;&lt;&#x2F;span&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;Sin embargo, no podemos proceder sin definir los desafíos más comunes en ML:&lt;&#x2F;p&gt;
&lt;h2 id=&quot;calidad-de-datos&quot;&gt;&lt;strong&gt;Calidad de Datos&lt;&#x2F;strong&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Como ya sabrás, en ML aplica “Basura entra, basura sale”, debemos verificar la precisión, completitud, consistencia y oportunidad de los datos.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Precisión de datos&lt;&#x2F;strong&gt; se refiere al gran y arduo trabajo que realizan los ingenieros de datos. Estos ingenieros juegan un papel esencial en verificar y manejar errores tipográficos, entradas duplicadas, inconsistencias de medición, características faltantes y las particularidades de datos no estructurados. Por ejemplo, los duplicados pueden llevar al modelo a asignar más peso a esas muestras duplicadas durante el aprendizaje. Además, ejemplos de entrenamiento etiquetados incorrectamente introducen sesgo en el modelo.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Completitud de Datos&lt;&#x2F;strong&gt; asegura que tus datos de entrenamiento contengan una representación variada de cada etiqueta. Tiene el mismo efecto en el aprendizaje que los ejemplos duplicados en los datos de entrenamiento. Para lidiar con problemas de precisión y completitud de datos, deberías realizar un Análisis Exploratorio de Datos (EDA). Te animo a echar un vistazo a Pandas profile o Dtale para facilitar este análisis.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Consistencia de datos&lt;&#x2F;strong&gt; es otro aspecto común del machine learning. Como sabes, en el aprendizaje supervisado, necesitas datos etiquetados, así que aquí, deberíamos solicitar datos etiquetados o comenzar a etiquetarlos. El problema surge cuando los etiquetadores introducen sesgo, especialmente si los datos requieren conocimiento del dominio (como en imágenes médicas). Una técnica común es dividir el trabajo entre un grupo de personas, luego tener múltiples personas etiquetando cada ejemplo y tomar la etiqueta más comúnmente aplicada (veremos esto en profundidad en el patrón de diseño Fairness Lens). Las características inconsistentes también se consideran en esta sección ya que pueden cambiar con el tiempo (piensa en sensores con diferentes offset de calibración).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Oportunidad&lt;&#x2F;strong&gt; en datos se refiere a la latencia entre la ocurrencia del evento y la adición a la base de datos. Es más importante en aplicaciones de machine learning en tiempo real, así que en este caso, deberías registrar tantos datos como sea posible. Por ejemplo, agregar una marca de tiempo cuando se generó un punto de datos y cuando se agregó al almacenamiento.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;reproducibilidad&quot;&gt;&lt;strong&gt;Reproducibilidad&lt;&#x2F;strong&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;El machine learning, a diferencia del software tradicional, tiene un elemento inherente de aleatoriedad. Por ejemplo, los pesos de las matrices se inicializan con valores aleatorios, por lo que el modelo converge a diferentes salidas para diferentes ejecuciones de entrenamiento. Esto puede dificultar ejecutar comparaciones entre experimentos. Fijar un valor para seed puede resolver este problema.&lt;&#x2F;p&gt;
&lt;p&gt;Entrenar un modelo de ML involucra varios artefactos que necesitan fijarse para asegurar la reproducibilidad: los datos utilizados, el mecanismo de división usado para generar conjuntos de datos para entrenamiento y validación, preparación de datos e hiperparámetros del modelo, y variables como tamaño de lote y programación de tasa de aprendizaje. También aplica a las dependencias del framework de ML. Ejecutar cargas de trabajo de ML en contenedores y estandarizar versiones de bibliotecas puede ayudar a asegurar la repetibilidad.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;deriva-de-datos&quot;&gt;&lt;strong&gt;Deriva de Datos&lt;&#x2F;strong&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;La deriva de datos es un concepto importante en ML, especialmente en producción. La deriva de datos se refiere al desafío de asegurar que tus modelos de machine learning permanezcan relevantes. Para resolver la deriva, es esencial actualizar continuamente tu conjunto de datos de entrenamiento, reentrenar tu modelo y modificar el peso que tu modelo asigna a grupos particulares de datos de entrada. El análisis exploratorio de datos es una técnica requerida aquí para entender el comportamiento de los datos. Por ejemplo, predecir la probabilidad de una tormenta requiere explorar los datos disponibles de los sensores para este escenario. En la siguiente imagen, podemos ver que entrenar un modelo con datos anteriores al 2000 llevaría a predicciones inexactas.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;futurewithml.netlify.app&#x2F;es&#x2F;posts&#x2F;chapter01-ml-pattern-design&#x2F;chap1_datadrift.png&quot; alt=&quot;chap1_datadrift.png&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Copyright 2020 Google Inc. Licenciado bajo la Licencia Apache, Versión 2.0 (la “Licencia”); no puedes usar este archivo excepto en cumplimiento con la Licencia. Puedes obtener una copia de la Licencia en &lt;a href=&quot;http:&#x2F;&#x2F;www.apache.org&#x2F;licenses&#x2F;LICENSE-2.0&quot;&gt;http:&#x2F;&#x2F;www.apache.org&#x2F;licenses&#x2F;LICENSE-2.0&lt;&#x2F;a&gt; A menos que lo requiera la ley aplicable o se acuerde por escrito, el software distribuido bajo la Licencia se distribuye “TAL CUAL”, SIN GARANTÍAS O CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas. Consulta la Licencia para el idioma específico que rige los permisos y limitaciones bajo la Licencia.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;h2 id=&quot;escala&quot;&gt;&lt;strong&gt;Escala&lt;&#x2F;strong&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Encontrarás desafíos de escalado en diferentes fases de tu aplicación de ML, como recolección y preprocesamiento de datos, entrenamiento y servicio. El tamaño de tus datos dictará las herramientas requeridas para tu solución. Los ingenieros de ML son responsables de determinar la infraestructura necesaria para un trabajo de entrenamiento específico. Si tu conjunto de datos es lo suficientemente grande, el entrenamiento del modelo puede ser costoso en tiempo y computacionalmente. En el contexto del servicio de modelos, la infraestructura requerida para soportar un equipo de científicos de datos obteniendo predicciones es completamente diferente de la infraestructura necesaria para soportar un modelo en producción para millones de predicciones por hora. Veremos resiliencia y reproducibilidad en los capítulos 6 y 7.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;multiples-objetivos-el-gran-desafio-oculto&quot;&gt;&lt;strong&gt;Múltiples Objetivos&lt;&#x2F;strong&gt; (El gran desafío oculto)&lt;&#x2F;h2&gt;
&lt;p&gt;Los modelos en producción introducen un gran desafío para un ingeniero de ML porque el modelo está siendo usado por diferentes equipos&#x2F;roles en la organización. Teniendo este escenario, veremos que definir un modelo exitoso no es fácil. Cada usuario&#x2F;equipo&#x2F;rol tiene su propia definición de un modelo exitoso dadas sus necesidades. Por ejemplo, un científico de datos&#x2F;investigador de ML está interesado en minimizar la función de pérdida del modelo. El gerente de proyecto está interesado en generar valor vinculando este modelo a los productos de la organización, así que aquí empezamos a lidiar con cómo definir un KPI que imite el comportamiento de la función de pérdida. Finalmente, el equipo ejecutivo está interesado en aumentar los ingresos usando este modelo pero entienden el KPI más que una función matemática como la función de pérdida. Como viste, es responsabilidad del científico de datos trabajar junto con el gerente de proyecto para definir este KPI, luego llevarlo al equipo ejecutivo.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;gracias&quot;&gt;Gracias&lt;&#x2F;h2&gt;
&lt;p&gt;Querido &lt;a href=&quot;https:&#x2F;&#x2F;www.linkedin.com&#x2F;in&#x2F;jameshclrk&#x2F;&quot;&gt;James Clark&lt;&#x2F;a&gt;, solo quería tomarme un momento para agradecerte por inspirarme&#x2F;ayudarme a comenzar mi propio blog personal. Tu blog, https:&#x2F;&#x2F;jamesclark.dev&#x2F;, ha sido una fuente de inspiración para mí, y tu disposición a compartir tus experiencias y conocimientos ha sido invaluable. Gracias a tu guía, ahora tengo una plataforma para expresar mis pensamientos, compartir mis ideas y conectar con otros que comparten mis pasiones. Tu apoyo y aliento han sido instrumentales para ayudarme a comenzar, y estoy verdaderamente agradecido por todo lo que has hecho por mí. ¡Gracias de nuevo por todo, James!&lt;&#x2F;p&gt;
</content>
        <summary type="html">Patrones de Machine Learning
¡Hola! En primer lugar, me embarco en un viaje para destacar los principales aspectos presentados en el libro “Machine Learning Design Patterns”. Esta serie está dirigida a ingenieros de machine learning, ingenieros de datos y científicos de datos. Omitiré la explicación de la terminología básica y me centraré en los matices de enfrentar los desafíos más comunes al desplegar modelos de machine learning. El concepto de patrones fue introducido en el campo de la ingeniería civil/arquitectura por Christopher Alexander y cinco coautores en el libro titulado “A Pattern Language” (1977). La idea principal es que en una situación que ocurre recurrentemente, el patrón describe la solución central para este contexto y puede aplicarse varias veces para este u otros similares. Aquí, exploraremos los patrones más generales que pueden aplicarse al diseño de sistemas de machine learning.
…</summary>
        </entry>
</feed>
