<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Brenda Galicia</title>
    <description>The latest articles on Forem by Brenda Galicia (@bgalicia).</description>
    <link>https://forem.com/bgalicia</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1141687%2Fd81084d1-2a85-4175-98ef-7610658c31b5.png</url>
      <title>Forem: Brenda Galicia</title>
      <link>https://forem.com/bgalicia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/bgalicia"/>
    <language>en</language>
    <item>
      <title>Amazon QuickSight: la bolita mágica que revela las tendencias de los platillos mexicanos 🔮🍴</title>
      <dc:creator>Brenda Galicia</dc:creator>
      <pubDate>Tue, 23 Sep 2025 05:06:24 +0000</pubDate>
      <link>https://forem.com/bgalicia/amazon-quicksight-la-bolita-magica-que-revela-las-tendencias-de-los-platillos-mexicanos-117m</link>
      <guid>https://forem.com/bgalicia/amazon-quicksight-la-bolita-magica-que-revela-las-tendencias-de-los-platillos-mexicanos-117m</guid>
      <description>&lt;p&gt;Septiembre es el mes patrio en México, y no hay mejor forma de celebrarlo que hablando de lo que más nos une, la comida mexicana: pozole, enchiladas, tamales, tacos… la lista es interminable y deliciosa  🇲🇽 ✨&lt;/p&gt;

&lt;p&gt;Pero aquí surge la pregunta: ¿qué platillo será el más popular este mes patrio y el que sigue? 🤔&lt;/p&gt;

&lt;p&gt;La verdad es que no tenemos una bolita mágica para adivinarlo… pero, ¿sabes qué sí tenemos? AWS 🚀 ☁️&lt;/p&gt;

&lt;p&gt;En esta ocasión te voy a mostrar cómo usar la nube para analizar y visualizar tendencias culinarias de forma divertida. &lt;/p&gt;

&lt;p&gt;En lugar de adivinar, vamos a crear y analizar datos de consumo de platillos mexicanos usando servicios de AWS. Y lo mejor: de manera sencilla y visual.&lt;/p&gt;

&lt;p&gt;👉 Con AWS QuickSight convertiremos los datos en dashboards para visualizar y analizar la información.&lt;/p&gt;

&lt;p&gt;Así podremos responder preguntas como:&lt;br&gt;
❓ ¿Qué platillo se pide más en ciertas épocas del año?&lt;br&gt;
❓ ¿Cuál está creciendo en popularidad?&lt;br&gt;
❓ ¿Y cuál podría ser la estrella del próximo mes? &lt;/p&gt;

&lt;p&gt;En pocas palabras: AWS es como tu bola mágica de datos… pero mucho más confiable. 😎&lt;/p&gt;
&lt;h2&gt;
  
  
  Paso a paso
&lt;/h2&gt;
&lt;h3&gt;
  
  
  1️⃣ Obtenemos nuestros datos
&lt;/h3&gt;

&lt;p&gt;En este caso vamos a crear datos aleatorios de consumo de platillos con el siguiente script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import pandas as pd
import random
from datetime import datetime, timedelta

# Lista de platillos mexicanos
platillos = [
    "Tacos al pastor", "Pozole", "Mole poblano", "Chiles en nogada", "Tamales",
    "Enchiladas verdes", "Cochinita pibil", "Birria", "Sopes", "Gorditas",
    "Quesadillas", "Tlayudas", "Pescado a la veracruzana", "Carnitas", "Caldo tlalpeño"
]

# Lista de regiones 
regiones = [
    "Ciudad de México", "Jalisco", "Puebla", "Oaxaca", "Yucatán",
    "Baja California", "Nuevo León", "Chiapas", "Michoacán", "Guerrero"
]

# Función para generar una fecha aleatoria en los últimos 2 años
def fecha_random():
    start_date = datetime.now() - timedelta(days=730)
    random_days = random.randint(0, 730)
    return (start_date + timedelta(days=random_days)).strftime("%Y-%m-%d")

# Función para determinar temporada
def temporada(fecha_str):
    fecha = datetime.strptime(fecha_str, "%Y-%m-%d")
    mes = fecha.month
    if mes in [12, 1, 2]:
        return "Invierno"
    elif mes in [3, 4, 5]:
        return "Primavera"
    elif mes in [6, 7, 8]:
        return "Verano"
    else:
        return "Otoño"

# Generar dataset
rows = []
for _ in range(1000):  # 1000 registros
    fecha = fecha_random()
    platillo = random.choice(platillos)
    region = random.choice(regiones)
    cantidad_vendida = random.randint(20, 500)
    precio_promedio = round(random.uniform(30, 250), 2)
    rows.append({
        "platillo": platillo,
        "region": region,
        "fecha": fecha,
        "cantidad_vendida": cantidad_vendida,
        "precio_promedio": precio_promedio,
        "temporada": temporada(fecha)
    })

df = pd.DataFrame(rows)

# Guardar CSV
csv_path = "/dataset_platillos.csv"
df.to_csv(csv_path, index=False)

csv_path
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;El resultado es un archivo csv donde tenemos los registros de nuestros platillos, incluyendo la región, fecha, cantidad vendida, precio promedio y temporada de consumo, algo que se verá así:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9szy33wb0tpu3isn3elr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9szy33wb0tpu3isn3elr.png" alt="Archivo de salida" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2️⃣ Cargamos los datos
&lt;/h3&gt;

&lt;p&gt;Para nuestro tablero tenemos diferentes opciones de dónde estará nuestro origen de los datos, puede ser directo el csv, un bucket de Amazon S3, una base en Amazon RDS o Amazon Aurora, entre otros servicios de AWS, incluso terceros como Jira, GitHub, Google Sheets o ServiceNow. &lt;/p&gt;

&lt;p&gt;En esta ocasión vamos por lo más simple, directo el archivo csv que generamos en el paso anterior, por lo tanto lo que debemos hacer estando en QuickSight es:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Dirigirnos a la sección de &lt;strong&gt;Análisis&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dar clic en &lt;strong&gt;Nuevo Análisis&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Seleccionar &lt;strong&gt;Nuevo conjunto de datos&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ir a la opción &lt;strong&gt;Cargar un archivo&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Esto te dejará entrar a tu equipo, seleccionar el archivo que denominamos &lt;em&gt;dataset_platillos.csv&lt;/em&gt; y empezará la carga, permitiéndote ajustar las configuraciones y visualizar los datos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Da clic en &lt;strong&gt;Siguiente&lt;/strong&gt;, esto nos llevará al tablero nuevo creado a partir de los datos cargados. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  3️⃣ Configurar el tablero en QuickSight para visualizar tendencias y patrones.
&lt;/h3&gt;

&lt;p&gt;Si realizamos los pasos anteriores de forma correcta vamos a visualizar esta pantalla:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft02pqstyq0j8it35jnif.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft02pqstyq0j8it35jnif.png" alt="Creación de dashboard" width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ahora si damos clic en &lt;strong&gt;Crear&lt;/strong&gt; y tendremos nuestro dashboard listo para ser configurado a nuestras necesidades. &lt;/p&gt;

&lt;p&gt;En QuickSight puedes jugar con los datos aplicando diferentes métricas y filtros para descubrir patrones interesantes. Por ejemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Configura un gráfico de líneas para ver la tendencia de ventas de tacos, pozole y tamales por mes.&lt;/li&gt;
&lt;li&gt;Aplica un filtro dinámico por región (Norte, Centro, Sur) y observa cómo cambia la popularidad de los platillos.&lt;/li&gt;
&lt;li&gt;Crea un gráfico de barras apiladas para comparar el volumen de ventas por temporada (Fiestas Patrias, Navidad, Semana Santa).&lt;/li&gt;
&lt;li&gt;Usa un mapa geográfico para visualizar qué platillo domina en cada estado.&lt;/li&gt;
&lt;li&gt;Activa un control de fecha para filtrar semanas específicas y analizar picos de consumo (ej. septiembre vs. diciembre).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La idea es que practiques a mover filtros, seleccionar periodos, comparar platillos y construir tu propio tablero de insights.&lt;/p&gt;

&lt;p&gt;Te dejo un ejemplo de esta demo como referencia.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;⚙️ Configuración:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbdhqyi7m7m9ttmt0gs8i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbdhqyi7m7m9ttmt0gs8i.png" alt="Ejemplo de la configuración" width="800" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4️⃣ Publicamos el tablero
&lt;/h3&gt;

&lt;p&gt;Esto es fácil en la parte superior derecha da clic en el botón &lt;strong&gt;Publicar&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;¡Listo! Ya tenemos nuestra propia &lt;em&gt;bolita mágica&lt;/em&gt; para predecir el futuro culinario.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📊 Resultado:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F778v1712pafykgfpchp3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F778v1712pafykgfpchp3.png" alt="Ejemplo del dashboard" width="800" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Recuerda que si quieres compartirlo con alguien de tu equipo tanto para visualizar como para que lo pueda editar tienes que darle los permisos necesarios para que pueda acceder a tu dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Y ahora qué?
&lt;/h2&gt;

&lt;p&gt;Con esta dinámica, no solo estamos jugando con comida mexicana en el mes patrio 🎉, sino entendiendo el poder de los datos en la nube.&lt;/p&gt;

&lt;p&gt;Lo mismo que aplicamos aquí con platillos, se puede llevar a casi cualquier industria: retail, finanzas, logística, deportes… y sí, también para ver qué antojito se pondrá de moda 😉 📊&lt;/p&gt;

&lt;p&gt;👉 Cuéntame, ¿qué datos te gustaría analizar en tu propio tablero de QuickSight? ¿tendencias de música? ¿series más vistas? ¿rutas de viaje soñadas? 🌍&lt;/p&gt;

&lt;p&gt;La nube no solo nos da respuestas, también nos abre el apetito por experimentar con la información.&lt;/p&gt;

&lt;h3&gt;
  
  
  📚 Documentación
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/es/quicksight/" rel="noopener noreferrer"&gt;Amazon Quicksight&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/quicksight/latest/user/creating-an-analysis.html" rel="noopener noreferrer"&gt;Creación de Analítica&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>data</category>
      <category>quicksight</category>
      <category>community</category>
    </item>
    <item>
      <title>NFL Next Gen Stats 🏈: datos que cambian el juego 🚀☁️</title>
      <dc:creator>Brenda Galicia</dc:creator>
      <pubDate>Sat, 08 Feb 2025 18:26:55 +0000</pubDate>
      <link>https://forem.com/bgalicia/nfl-next-gen-stats-datos-que-cambian-el-juego-25ke</link>
      <guid>https://forem.com/bgalicia/nfl-next-gen-stats-datos-que-cambian-el-juego-25ke</guid>
      <description>&lt;p&gt;Alguna vez te has preguntado ¿cómo los comentaristas de los partidos tienen tanta información, tantas métricas de comparación? En lo personal, si me lo he preguntado como fanática del futbol americano y seguidora de la NFL, por lo que como persona que no se puede quedar con la duda busque y encontré las respuestas que buscaba y el día de hoy en donde estamos viviendo la era del Super Bowl LIX te compartiré un dato que reúne el deporte con otra de mis pasiones la IA impulsada con AWS.&lt;/p&gt;

&lt;p&gt;Te cuento, las estadísticas tradicionales se habían limitado a procesos manuales, en específico vamos a hablar de la presión que sufre un quarterback (QB, mariscal de campo), las capturas y los golpes se realizaban en gráficos a mano y solo a nivel de jugada ¿puedes creerlo? Pues el equipo de la NFL y AWS no soportaron y desarrollaron una métrica nueva denominada Pressure Probability, una métrica que implementando Inteligencia Artificial en su sabor Machine Learning lleva las estadísticas de presión más allá midiendo la presión ejercida por cada corredor cada segundo de cada pase de cada jugada 🤯.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;¿Cómo se realizó esta hazaña?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Partiendo de la creatividad y esfuerzo del equipo que lo desarrollo, también se vieron involucradas más de 90,000 jugadas de pase de los últimos 5 años para generar cuatro nuevos modelo de IA. Se usaron sensores durante todas las jugadas y se identificaron dentro a nivel de los datos al equipo ofensivo, defensivo y como se comportaban entre sí para poder comparar, una vez identificados estos datos en AWS se desarrolló un modelo capaz de poder identificar la presión mucho más allá de la lógica basada en la distancia permitiendo identificar qué tan rápido se genera la presión y cómo cambia a lo largo de cada jugada tomando en cuenta detalles aún más complejos como la pureza de la trayectoria del corredor rumbo al QB y cómo este reacciona ante el corredor acercándose a él. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;¿Cómo enriquece AWS el partido?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;📡  Datos en tiempo real&lt;br&gt;
Con la implementación de sensores RFID en el balón y dentro de las hombreras de cada jugador se puede tener la ubicación, velocidad y aceleración de cada jugada, AWS tiene la capacidad de procesar estos datos en milisegundos a través de Amazon Kinesis. &lt;/p&gt;

&lt;p&gt;🧠  Uso de la Inteligencia artificial&lt;br&gt;
Tenemos nuevas estadísticas como la probabilidad de completar un pase, efectividad de los corredores o de una captura de la defensiva, AWS cuenta con servicios como Amazon SageMaker para entrenar modelos de ML que generar métricas más avanzadas.&lt;/p&gt;

&lt;p&gt;📊  Visualización de datos&lt;br&gt;
Con Amazon QuickSight se presentan en tiempo real los datos estadísticos, los entrenadores y aficionados pueden ver predicciones de jugadas, rendimiento y análisis en vivo.&lt;/p&gt;

&lt;p&gt;🏆  Impacto estratégico &lt;br&gt;
Los equipos pueden tomar ventaja de los datos y tener una mejor toma de decisiones basadas en rendimiento, predecir jugadas, patrones de defensa e incluso riesgos de lesiones, permitiendo personalizar sus estrategias según el comportamiento real de los jugadores. &lt;/p&gt;

&lt;p&gt;Con AWS, la NFL ha convertido los datos en una ventaja competitiva y una mejor experiencia para los jugadores, entrenadores, empresarios, comentaristas y sobre todo aficionados. &lt;/p&gt;

&lt;p&gt;Si te ha causado interés esta aplicación de IA dentro de la NFL, aquí te comparto el &lt;a href="https://nextgenstats.nfl.com/" rel="noopener noreferrer"&gt;link&lt;/a&gt; para que puedas vivir la experiencia, probar la plataforma creada para explorar todos los resultados. &lt;/p&gt;

&lt;p&gt;Por cierto, eso no es todo da clic en este &lt;a href="https://aws.amazon.com/es/sports/nfl/" rel="noopener noreferrer"&gt;link&lt;/a&gt; para que conozcas otras historias de éxito entre la NFL y AWS como el NFL Big Data Bowl o los trabajos con otros equipos para no solo mejorar dentro de la cancha, sino también con sus comunidades de aficionados para mejorar sus experiencias.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>nfl</category>
      <category>ai</category>
      <category>metrics</category>
    </item>
    <item>
      <title>3..2..1… AWS aterriza en México 🚀 🇲🇽</title>
      <dc:creator>Brenda Galicia</dc:creator>
      <pubDate>Wed, 15 Jan 2025 04:13:04 +0000</pubDate>
      <link>https://forem.com/bgalicia/321-aws-aterriza-en-mexico-22hl</link>
      <guid>https://forem.com/bgalicia/321-aws-aterriza-en-mexico-22hl</guid>
      <description>&lt;p&gt;Hoy, 14 de enero del 2025, se hace historia, AWS lanza oficialmente la primera región en México, siendo exactos en Querétaro, lugar de las Leles y ahora un hub de tecnología.&lt;/p&gt;

&lt;p&gt;Esta nueva Región ha sido bautizada como AWS México Central, mx-central-1, y posee tres zonas de disponibilidad, creciendo así la presencia de AWS en Latinoamérica.&lt;/p&gt;

&lt;p&gt;AWS ha tenido infraestructura desde el 2020 con edge locations, AWS Outposts, AWS Direct Connect y AWS Local Zones en Querétaro, esto siempre desde un punto estratégico para mantener una baja latencia con los clientes mexicanos ofreciendo una conectividad segura.&lt;/p&gt;

&lt;p&gt;Entonces, si ya había infraestructura, ¿cuál es la novedad?, estamos hablando de habilitar una región completa, esto genera a los consumidores beneficios en latencias, seguridad y cumplimiento del resguardo local de datos, lo que mantiene una ventaja competitiva con otros servicios de nube.&lt;/p&gt;

&lt;p&gt;Esto es una gran noticia, México se está convirtiendo en un hub tecnológico regional, la nueva región de AWS ya está lista para cargas de trabajo en la nube.&lt;/p&gt;

&lt;p&gt;Los beneficios son muchos, pero para poder ejemplificarlo mejor tomaré de ejemplo clientes de AWS, casos de uso que ya están en la práctica donde la tecnología de AWS nos ayuda:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SkyAlert&lt;/strong&gt; envía millones de alertas a personas en menos de 20 segundos ayudando a salvar vidas en situaciones de emergencia.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;INE&lt;/strong&gt; busca la transparencia y continuidad de los procesos electorales al digitalizar el PREP (Programa de Resultados Electorales Preliminares) para garantizar la confianza de los ciudadanos con el proceso electoral.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pfizer&lt;/strong&gt; desarrolla vacunas en solo 269 días, un proceso que normalmente tardaría de 8 a 10 años, además genera análisis genético que personaliza tratamientos para millones de pacientes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Netflix&lt;/strong&gt; innova con la entrega de entretenimiento de clase mundial aprovechando la infraestructura de AWS como estrategia tecnológica.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Estos son solo unos ejemplos, pero hay muchos más de los que podemos hablar, así que aquí la pregunta sería ¿ya tienes tus cargas de trabajo en AWS México?&lt;/p&gt;

&lt;p&gt;Ah, seguro te preguntarás ¿eso no genera más contaminación ambiental?, porque lo de hoy es preguntar que contamina más una búsqueda en Google o una pregunta con ChatGPT, pues bueno la respuesta es sencilla, la nueva región incorpora un diseño sustentable utilizando tecnología de enfriamiento por aire que elimina la necesidad de agua en las operaciones.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqw4vyeoa6yhfvtb0hoh3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqw4vyeoa6yhfvtb0hoh3.png" alt="mx-central-1" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aprovecho para compartirte que hay otras 546 novedades de AWS para este 2025 que se lanzaron en el re:Invent 2024 que fue en diciembre 2024, si quieres saber cuáles son esas novedades te dejo un par de opciones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    Presencial (CDMX) por Embajadoras Cloud el jueves 16 de enero de 2025, &lt;a href="https://www.meetup.com/es-ES/embajadoras-cloud/events/305229328/" rel="noopener noreferrer"&gt;link de registro&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;    Presencial (Puebla) por AWS UG Puebla el jueves 23 de enero de 2025, &lt;a href="https://www.meetup.com/es-ES/awsugpue/events/305547070/" rel="noopener noreferrer"&gt;link de registro&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;    Online por AWS el jueves 30 de enero de 2025, &lt;a href="https://aws.amazon.com/es/events/recap/" rel="noopener noreferrer"&gt;link de registro&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>news</category>
      <category>region</category>
      <category>community</category>
    </item>
    <item>
      <title>¡Amazon Q al rescate! 🦸 Tu aliado para hacer más en menos tiempo ⌛</title>
      <dc:creator>Brenda Galicia</dc:creator>
      <pubDate>Sun, 22 Sep 2024 05:27:57 +0000</pubDate>
      <link>https://forem.com/bgalicia/amazon-q-al-rescate-tu-aliado-para-hacer-mas-en-menos-tiempo-3c3m</link>
      <guid>https://forem.com/bgalicia/amazon-q-al-rescate-tu-aliado-para-hacer-mas-en-menos-tiempo-3c3m</guid>
      <description>&lt;p&gt;Seguramente conoces varios asistentes basados en IA Generativa, pero hoy vas a conocer al genio detrás de AWS, vamos a hablar de Amazon Q, capaz de acelerar el desarrollo de software sacando partido de los datos internos de tu empresa/organización/institución.&lt;/p&gt;

&lt;p&gt;Para empezar te diré que de forma básica se divide en dos sabores: &lt;em&gt;Business&lt;/em&gt; y &lt;em&gt;Developer&lt;/em&gt;, entremos a detalle de cada uno.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon Q Business&lt;/strong&gt;&lt;br&gt;
Nos permite de forma rápida y sencilla crear aplicaciones basadas en IA Generativa a través de los datos empresariales con el fin de agilizar tareas y aumentar nuestra productividad de forma grupal o individual mediante conversaciones personalizadas, responder preguntas, generar resúmenes y contenido, completar tareas y mucho más permitiéndonos como colaboradores ser más eficientes, creativos y sobre estar preparados con datos, información resguardada a la que podemos acceder por más de 40 conectores integrados a repositorios de documentos ofreciéndonos una experiencia única de conocimiento. &lt;/p&gt;

&lt;p&gt;Dos características importantes sobre Amazon Q Business es la capacidad de tener blindados los datos mediante la implementación de permisos basados en roles permitiendo respetar las identidades y funciones a las que un usuario puede tener acceso y la segunda el filtrado de temas el cual nos proporciona controles para poder bloquear temas concretos al igual que poder filtrar preguntas mediante palabras clave.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon Q Developer&lt;/strong&gt;&lt;br&gt;
La revolución en que los desarrolladores creamos, implementamos y gestionamos aplicaciones y cargas de trabajo en AWS. Se integra perfectamente al CLI, IDE y plataformas como Slack y Teams. &lt;/p&gt;

&lt;p&gt;Con esta herramienta podemos consultar, gestionar y diseñar soluciones teniendo acceso a temas sobre arquitectura, recursos, mejores prácticas, documentación y soporte desde un solo lugar, teniendo sugerencias de código en tiempo real, también puede analizar código en búsqueda de vulnerabilidades y sugerir mejoras como actualización, depuración y optimización, en resumen es el aliado de todos los desarrolladores que buscamos optimizar nuestro trabajo en AWS. &lt;/p&gt;

&lt;p&gt;Otra característica de Amazon Q Developer es que podemos automatizar taras complejas de varios casos como la implementación de nuevos proyectos, la documentación, entre otras con un solo prompt. También está disponible la función de modernización de código, ¿qué quiere decir?, que podemos actualizar código en Java de versiones 8 a 17 y próximamente .NET sin esfuerzo extra, esto es una gran ayuda sobre todo en aplicaciones heredadas. &lt;/p&gt;

&lt;p&gt;Un punto más a su favor es la personalización, Amazon Q puede interactuar con repositorios privados para comprender el contexto de desarrollos internos, generando recomendaciones de código seguras, personalizadas y alineadas a nuestros estándares.&lt;/p&gt;

&lt;p&gt;Un dato importante es que Amazon Q está impulsado por Amazon Bedrock, servicio que proporciona FMs (modelos fundacionales) accesibles a través de APIs; este modelo está enriquecido con contenido específico de AWS por lo que tendremos respuestas precisas y útiles.&lt;/p&gt;

&lt;p&gt;Seguramente si ya llegaste hasta este punto te preguntarás: ¿cuál es la diferencia entre Amazon Q Developer y GitHub Copilot?, y para responder a esa pregunta te invito a vivir el &lt;a href="https://day.awscommunity.mx/" rel="noopener noreferrer"&gt;AWS Community Day México 2024&lt;/a&gt; donde habrá una &lt;em&gt;Batalla por el código perfecto&lt;/em&gt;, no te lo puedes perder. &lt;/p&gt;

&lt;p&gt;¡Nos vemos en el AWS Community Day México 2024! ✨✨✨&lt;/p&gt;

</description>
      <category>aws</category>
      <category>genai</category>
      <category>amazonq</category>
      <category>productivity</category>
    </item>
    <item>
      <title>IA responsable con Amazon SageMaker Clarify</title>
      <dc:creator>Brenda Galicia</dc:creator>
      <pubDate>Wed, 24 Jul 2024 00:55:14 +0000</pubDate>
      <link>https://forem.com/bgalicia/ia-responsable-con-amazon-sagemaker-clarify-mhc</link>
      <guid>https://forem.com/bgalicia/ia-responsable-con-amazon-sagemaker-clarify-mhc</guid>
      <description>&lt;p&gt;En el post pasado hablamos sobre la IA Responsable, sus pilares y algunas de las herramientas que nos ofrece AWS para que nuestros desarrollos de IA sean cuenten con estas dimensiones. Para este blog, les dejo un pequeño notebook para que puedan ver trabajando a Clarify a nivel programatico. &lt;/p&gt;

&lt;p&gt;Recordando, Clarify es una característica de SageMaker que ofrece herramientas para obtener información valiosa sobre nuestros modelos con el objetivo de mejorar su calidad mediante la detección de sesgos durante la preparación de los datos y después del entrenamiento, también proporciona informes de explicación de modelos para que las partes interesadas puedan ver cómo y por qué los modelos realizan predicciones con el fin de mejorar la calidad del modelo y respaldar iniciativas de IA responsable. Al día de hoy cuenta con:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Detección de sesgos&lt;/li&gt;
&lt;li&gt;Explicabilidad del modelo&lt;/li&gt;
&lt;li&gt;Evaluación de modelos&lt;/li&gt;
&lt;li&gt;Monitoreo de modelos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sin más, aquí la parte el ejemplo de como podemos utilizar Amazon SageMaker Clarify con un par de líneas de código.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# DEMO: Amazon SageMaker Clarify
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sagemaker&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;sagemaker&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;get_execution_role&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;boto3&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;sagemaker&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;clarify&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;sagemaker.image_uris&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;retrieve&lt;/span&gt;

&lt;span class="c1"&gt;# Configuración inicial
&lt;/span&gt;&lt;span class="n"&gt;role&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;get_execution_role&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;session&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sagemaker&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Session&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;bucket&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;demo-clarify-ug-girls-chile&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;

&lt;span class="c1"&gt;# Rutas de los archivos con la data
&lt;/span&gt;&lt;span class="n"&gt;train_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s3://{}/train_data.csv&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bucket&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;test_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s3://{}/test_data.csv&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bucket&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;baseline_file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s3://{}/baseline_data.csv&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bucket&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Generar contenedor para XGBoost
&lt;/span&gt;&lt;span class="n"&gt;container&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;retrieve&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;xgboost&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;boto_region_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;latest&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Configurar el estimator de XGBoost
&lt;/span&gt;&lt;span class="n"&gt;xgb&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sagemaker&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;estimator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Estimator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;container&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                    &lt;span class="n"&gt;role&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                                    &lt;span class="n"&gt;instance_count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
                                    &lt;span class="n"&gt;instance_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ml.m5.2xlarge&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                    &lt;span class="n"&gt;output_path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s3://{}/output&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bucket&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                                    &lt;span class="n"&gt;sagemaker_session&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Configurar los hiperparámetros
&lt;/span&gt;&lt;span class="n"&gt;xgb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set_hyperparameters&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;objective&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;binary:logistic&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;num_round&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Configurar datos de entrada para el entrenamiento
&lt;/span&gt;&lt;span class="n"&gt;s3_input_train&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sagemaker&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;TrainingInput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s3_data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;train_data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;content_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;csv&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;s3_input_test&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sagemaker&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;TrainingInput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s3_data&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;test_data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;content_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;csv&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Iniciar el entrenamiento del modelo
&lt;/span&gt;&lt;span class="n"&gt;xgb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fit&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;train&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;s3_input_train&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;validation&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;s3_input_test&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="c1"&gt;# Nombre del modelo
&lt;/span&gt;&lt;span class="n"&gt;model_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;demo-model&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;

&lt;span class="c1"&gt;# Desplegar el modelo
&lt;/span&gt;&lt;span class="n"&gt;xgb_model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;xgb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create_model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;model_name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Configurar las rutas de salida para los reportes de Clarify
&lt;/span&gt;&lt;span class="n"&gt;bias_report_output_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s3://{}/clarify-bias&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bucket&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;explainability_output_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s3://{}/clarify-explainability&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;format&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bucket&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Configurar el análisis de sesgo
&lt;/span&gt;&lt;span class="n"&gt;bias_config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;clarify&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;BiasConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;label_values_or_threshold&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;facet_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;gender&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;facet_values_or_threshold&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Configurar el análisis de explicabilidad
&lt;/span&gt;&lt;span class="n"&gt;shap_config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;clarify&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;SHAPConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;baseline&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;baseline_file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="n"&gt;num_samples&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;agg_method&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;mean_abs&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Crear el procesador de Clarify
&lt;/span&gt;&lt;span class="n"&gt;clarify_processor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;clarify&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;SageMakerClarifyProcessor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;role&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;role&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                      &lt;span class="n"&gt;instance_count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                                                      &lt;span class="n"&gt;instance_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ml.t3.medium&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;# Cambiado a ml.c5.large
&lt;/span&gt;                                                      &lt;span class="n"&gt;sagemaker_session&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;session&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Ejecutar el job de análisis de sesgo
&lt;/span&gt;&lt;span class="n"&gt;clarify_processor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run_pre_training_bias&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;data_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;clarify&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;DataConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;s3_data_input_path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;train_data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;s3_output_path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;bias_report_output_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;default&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;default&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;age&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;gender&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;income&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;loan_amount&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;  &lt;span class="c1"&gt;# Incluye el encabezado
&lt;/span&gt;        &lt;span class="n"&gt;dataset_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;text/csv&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;data_bias_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;bias_config&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Ejecutar el job de análisis de explicabilidad
&lt;/span&gt;&lt;span class="n"&gt;clarify_processor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run_explainability&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;data_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;clarify&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;DataConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;s3_data_input_path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;test_data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;s3_output_path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;explainability_output_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;default&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;default&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;age&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;gender&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;income&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;loan_amount&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;  &lt;span class="c1"&gt;# Incluye el encabezado
&lt;/span&gt;        &lt;span class="n"&gt;dataset_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;text/csv&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;model_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;clarify&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ModelConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;model_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;model_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;instance_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ml.t3.medium&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
        &lt;span class="n"&gt;instance_count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;explainability_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;shap_config&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Imprimir localización de reportes generados
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Reporte de sesgo ubicado en: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;bias_report_output_path&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Reporte de explicabilidad ubicado en: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;explainability_output_path&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fprci7xbaobzbtcsm7wew.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fprci7xbaobzbtcsm7wew.png" alt=" " width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cierro comentando que al adoptar este enfoque, cada iniciativa de IA se convierte en un paso hacia un futuro donde la tecnología no solo empodera, sino que también respeta y mejora la condición humana.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>iaresponsable</category>
      <category>sagemaker</category>
      <category>clarify</category>
    </item>
    <item>
      <title>Construyendo IA responsable con AWS</title>
      <dc:creator>Brenda Galicia</dc:creator>
      <pubDate>Sun, 28 Apr 2024 22:50:08 +0000</pubDate>
      <link>https://forem.com/bgalicia/construyendo-ia-responsable-con-aws-5497</link>
      <guid>https://forem.com/bgalicia/construyendo-ia-responsable-con-aws-5497</guid>
      <description>&lt;p&gt;Desde hace unos años hablar sobre las novedades que nos trae la Inteligencia Artificial día a día, semana tras semana se nos ha vuelto cotidiano e incluso ya estamos acostumbrados a nuevos lanzamientos y mejoras siempre sin dejarnos de sorprender, pero en pocas ocasiones nos detenemos a preguntarnos el impacto social que pueden tener las diferentes aplicaciones de la IA en nuestros días, la forma en que interactuamos con el mundo está cambiando y en esta revolución tecnológica debemos garantizar que esta tecnología se desarrolló y se utilice de manera segura, confiable y ética, aquí es donde nace el concepto de IA responsable, un enfoque integral que considera las repercusiones sociales de la IA, que incluye equidad, transparencia, privacidad y seguridad.&lt;/p&gt;

&lt;p&gt;La IA responsable nos trata de guiar a un progreso tecnológico duradero y sostenible incorporando principios desde el diseño hasta la implementación de nuestros sistemas inteligentes desbloqueando el potencial transformador de la IA sin dejar de lado los valores y principios que nos definen como sociedad.&lt;/p&gt;

&lt;p&gt;Enlistaremos los principios o dimensiones fundamentales de la IA responsable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Equidad: la discriminación algorítmica puede presentarse en soluciones de IA cuando estas se entrenan con datos sesgados o no representativos, lo que lleva a resultados injustos, por lo que es crucial seleccionar y analizar cuidadosamente los datos de entrenamiento garantizando la diversidad, la inclusión y la precisión, minimizando así el sesgo y la discriminación.&lt;/li&gt;
&lt;li&gt; Explicabilidad: nos permite comprender la lógica detrás de las decisiones de nuestros modelos de IA, no hay cajas negras, debemos poder entender el paso a paso del sistema, aumentar la transparencia y la confianza sobre nuestra IA dando a los usuarios mayor detalle de los factores que influyen en los resultados finales.&lt;/li&gt;
&lt;li&gt; Privacidad y seguridad: se deben implementar medidas robustas para proteger la información personal de los usuarios, evitando su exposición, robo o uso indebido. Debemos otorgar a los usuarios mayor control sobre sus datos, brindarles la transparencia sobre el uso de sus datos, herramientas para gestionarlo y limitar su uso.&lt;/li&gt;
&lt;li&gt; Robustez: los sistemas deben poderse adaptar a nuevos entornos, detectar y corregir errores, manteniendo su rendimiento frente ataques o eventos de desastre, cualquier perturbación que pueda presentar el sistema. Se deben prevenir las fallas que pueda terminar en una consecuencia negativa para el sistema.&lt;/li&gt;
&lt;li&gt; Gobernanza: nos establece un marco para el desarrollo, implementación y uso de la IA garantizando estar alineados con los valores y principios de la organización responsable de la solución. Nos ayudará a definir e implementar practicas dentro de la organización, promoviendo el uso ético y transparente de la tecnología.&lt;/li&gt;
&lt;li&gt; Transparencia: es el elemento que permite a los usuarios y a todas las partes interesadas el poder comprender como funciona la IA, qué datos se utilizan y cómo se toman las decisiones, es poder comprender cómo funciona el algoritmo que existe por atrás. Este principio permite que los usuarios evalúen la confiabilidad, imparcialidad y seguridad de nuestro sistema de IA. Otra cosa es que nos permite detectar algún error o sesgo, dándonos la capacidad de poder tomar medidas correctivas y mejorar el rendimiento del sistema.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Estos principios que debemos trabajar de formar multidisciplinaria nos dejan avanzar a un futuro donde la IA se desarrolla y utiliza de manera responsable, beneficiando a toda la sociedad de forma justa y equitativa.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;¿Por qué multidisciplinaria?&lt;/em&gt; &lt;br&gt;
Es fundamental la colaboración de expertos en la tecnología, en política, en ética y otras áreas sociales, ya que esta diversidad de perspectivas va a ayudarnos a enriquecer el proceso de toma de decisiones y podrán asegurar que consideremos las implicaciones sociales, éticas e incluso legales de la IA garantizando la integridad de las aplicaciones de IA desde un inicio hasta su puesta en práctica en el mundo real.&lt;/p&gt;

&lt;p&gt;Ahora sí, ¿cuáles son las herramientas o servicios que tienen AWS para construir IA responsable?&lt;/p&gt;

&lt;p&gt;AWS tiene más de 200 servicios en general y de ahí tiene una amplia gama de servicios enfocados a IA, así que hablar de cada uno de ellos y como funcionan no será la misión de este blog, pero sí hablaré de un par de ellos para darnos cuenta y poder ejemplificar la mirada que AWS para la construcción IA responsable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Amazon SageMaker Clarify
&lt;/h2&gt;

&lt;p&gt;Nos permite obtener información valiosa de nuestros datos y modelos de aprendizaje automático mediante métricas de precisión, robustez, toxicidad y sesgo, mejorando así la calidad de nuestro modelo, respaldándonos en IA responsable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Características:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt; Permite identificar potenciales sesgos durante la preparación de los datos, el entrenamiento e implementación del modelo, examinando atributos de entrada específicos y ejecutando un análisis para su detección.&lt;/li&gt;
&lt;li&gt; Proporciona reportes visuales con las métricas y medidas de sesgo potencial para poder tomar medidas correctivas. También ofrece un gráfico de importancia de características agregadas que proporciona más información del modelo y el proceso de generación de resultados del mismo.&lt;/li&gt;
&lt;li&gt; Brinda transparencia mediante la visibilidad del comportamiento del modelo, verificar si nuestro modelo funciona según lo previsto.&lt;/li&gt;
&lt;li&gt;En general, es una herramienta eficaz para desarrollar modelos de aprendizaje automático que sean justos, confiables y transparentes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Amazon Bedrock Guardrails
&lt;/h2&gt;

&lt;p&gt;Amazon Bedrock es un servicio totalmente administrado que nos disponibiliza una gran selección de modelos fundacionales de alto rendimiento a través de una API brindándonos un amplio abanico de capacidades para crear soluciones de IA, cuenta con herramientas para poder evaluar y proteger los modelos antes de implementarlos mediante métricas personalizadas y evaluaciones automáticas a conjuntos de datos, pero además de eso y más tiene los salvaguardas (guardrails).&lt;/p&gt;

&lt;p&gt;La implementación en Bedrock de salvaguardas nos permiten:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Estar alineados con las políticas de IA responsable.&lt;/li&gt;
&lt;li&gt; Detectar de forma automática consultas que impliquen respuestas que entran en categorías restringidas de nuestro modelo, esto nos permite evitar temas específicos para el usuario.&lt;/li&gt;
&lt;li&gt; Brinda una capa extra de protección al modelo fundacional subyacente a la solución, evaluando las entradas del usuario y las salidas del modelo en función de las políticas de nuestro caso de uso.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En resumen, nos ayuda a garantizar que los modelos se utilicen de manera responsable y segura mediante la detección y bloqueo de entradas de los usuarios y las respuestas del modelo que entran en temas restringidos, mejorando su rendimiento y comportamiento.&lt;/p&gt;

&lt;p&gt;Esto es solo un primer vistazo de lo que AWS nos ofrece como herramientas para generar soluciones de IA responsable, pero si te interesa saber un poco más, te recomiendo revisar las AWS AI Service Cards. En estas cards AWS proporciona transparencia y documenta los casos de uso previstos junto con las consideraciones que se deben tener al desarrollar IA con AWS, son un lugar fascinante para encontrar diferentes opciones de diseño, mejores prácticas, evaluaciones de rendimiento, limitaciones y optimización para casos de uso de diversos servicios de IA de AWS.&lt;/p&gt;

&lt;p&gt;La IA responsable nos brinda el potencial de crear un mundo más justo, equitativo y próspero para todos apoyándonos de la tecnología, permitiendo construir un futuro donde la tecnología no solo empodera, sino que también respeta y mejora la condición humana. Es nuestro deber como entusiastas y desarrolladores de IA aprovechar su poder de manera responsable, asegurando que su desarrollo y uso estén alineados con nuestros valores.&lt;/p&gt;

</description>
      <category>ia</category>
      <category>responsable</category>
      <category>aws</category>
    </item>
    <item>
      <title>Desplegar API basada en NodeJS con AWS Lambda y API Gateway conectada a DynamoDB.</title>
      <dc:creator>Brenda Galicia</dc:creator>
      <pubDate>Sun, 17 Mar 2024 08:02:07 +0000</pubDate>
      <link>https://forem.com/bgalicia/desplegar-api-basada-en-nodejs-con-aws-lambda-y-api-gateway-conectada-a-dynamodb-58n9</link>
      <guid>https://forem.com/bgalicia/desplegar-api-basada-en-nodejs-con-aws-lambda-y-api-gateway-conectada-a-dynamodb-58n9</guid>
      <description>&lt;p&gt;En esta ocasión regresamos a lo básico, veremos paso a paso como crear una API que contiene las operaciones CRUD a una base de datos en DynamoDB con AWS Lambda en NodeJS y su despliegue para consumo a través de AWS API Gateway.&lt;/p&gt;

&lt;h2&gt;
  
  
  💻 Requerimientos
&lt;/h2&gt;

&lt;p&gt;Usuario de consola AWS (con permisos para los servicios que vamos a estar ocupando: DynamoDB, Lambda, API Gateway)&lt;/p&gt;

&lt;h2&gt;
  
  
  📝 Paso a paso
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Paso 1: Creación de la base de datos en DynamoDB.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1.1 Entrar a DynamoDB desde la consola de AWS&lt;/p&gt;

&lt;p&gt;1.2 Clic en crear tabla&lt;/p&gt;

&lt;p&gt;1.3 Agregar nombre de la tabla, para la demo será: demo_api_dynamodb&lt;/p&gt;

&lt;p&gt;1.4 Agregar clave de partición (primary key), para este repositorio será: id, de tipo cadena&lt;/p&gt;

&lt;p&gt;1.5 Clic en crear tabla&lt;/p&gt;

&lt;p&gt;1.6 Una vez que la tabla este activa, entramos a crear elementos dando clic sobre la tabla&lt;/p&gt;

&lt;p&gt;1.7 Clic sobre explorar elementos, seguido de crear elemento&lt;/p&gt;

&lt;p&gt;1.8 Añadimos un elemento conformado por:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;{&lt;br&gt;
  "id": "1",&lt;br&gt;
  "email": "abenitez@mail.com",&lt;br&gt;
  "name": "Ana Benitez"&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;1.9 Clic en crear elemento&lt;/p&gt;

&lt;p&gt;¡Tenemos base de datos con al menos un registro para su consulta!&lt;br&gt;
Paso 2: Creación de la Lambda con NodeJS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.1 Entrar a AWS Lambda desde la consola de AWS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;2.2 Clic en crear una función&lt;/p&gt;

&lt;p&gt;2.3 Seleccionamos Crear desde cero&lt;/p&gt;

&lt;p&gt;2.4 Le damos un nombre: demo_api_lambda&lt;/p&gt;

&lt;p&gt;2.5 En el valor de tiempo de ejecución seleccionamos: NodeJS 20.x&lt;/p&gt;

&lt;p&gt;2.6 En el apartado de Configuración avanzada añadimos el permiso para DynamoDB, damos seleccionamos Creación de un nuevo rol desde la política de AWS Templates&lt;/p&gt;

&lt;p&gt;2.7 Agregamos el nombre: demo_api_rol_dynamodb&lt;/p&gt;

&lt;p&gt;2.8 Seleccionamos en plantilla de política: Permisos de microservicios sencillos&lt;/p&gt;

&lt;p&gt;2.9 Clic en crear función&lt;/p&gt;

&lt;p&gt;2.10 Se va a crear la lambda, en la parte ce código, copia y pega el contendio del archivo demo_api_lambda.js, el cual contiene el código en NodeJS con las operaciones CRUD del API&lt;/p&gt;

&lt;p&gt;&lt;code&gt;GET /users  --&amp;gt;  Consulta de todos los usuarios&lt;br&gt;
GET /users/{id} --&amp;gt;  Consulta por id del usuario&lt;br&gt;
PUT /users  --&amp;gt; Creación/actualización completa de la información del usuario&lt;br&gt;
DELETE /users/{id}  --&amp;gt;  Eliminación del usuario por su id&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;2.11 Clic en Deploy&lt;/p&gt;

&lt;p&gt;¡Tenemos nuestra función lambda con código NodeJS que se conecta a nuestra base de datos en DynamoDB!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;NOTA: si cambiaste el nombre de la tabla, asegúrate de actualizar el código antes de desplegar.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paso 3: Creación y configuración del API Gateway.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;3.1 Entrar a Amazon API Gateway desde la consola de AWS&lt;/p&gt;

&lt;p&gt;3.2 Clic en Crear, sobre API HTTP&lt;/p&gt;

&lt;p&gt;3.3 Clic sobre Agregar integración, seleccionar lambda y en función lambda, buscar la que acabamos de crear en el paso 2&lt;/p&gt;

&lt;p&gt;3.4 Agregar nombre del API: demo_api_gateway&lt;/p&gt;

&lt;p&gt;3.5 Clic en siguiente&lt;/p&gt;

&lt;p&gt;3.6 Seleccionar el método, ruta y destino por cada recurso que posee nuestra API:&lt;/p&gt;

&lt;p&gt;3.8 Agregar nombre de la etapa, en este caso: dev&lt;/p&gt;

&lt;p&gt;3.9 Clic en siguiente&lt;/p&gt;

&lt;p&gt;3.10 Revisamos el resumen y clic en Crear&lt;/p&gt;

&lt;p&gt;¡Listo! Ya tenemos nuestra API lista para ser consumida desde un endpoint que posee el CRUD de usuarios en una base de datos en DynamoDB a través de la implementación de una Lambda con NodeJS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paso 4: Pruebas unitarias.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;4.1 Podremos regresar a nuestra lambda, en la sección de Configuración, Desencadenadores veremos el endpoint generado (si no lo visualizas, solo refresca la sección)&lt;/p&gt;

&lt;p&gt;4.2 Con el endpoint disponible, utiliza tu cliente HTTP de confianza y genera un set de pruebas unitarias para probar cada recurso del API&lt;/p&gt;

&lt;h2&gt;
  
  
  📚 Repositorio
&lt;/h2&gt;

&lt;p&gt;Código completo en &lt;a href="https://github.com/bgalicia/desplegar-api-nodejs-aws" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎬 Demo
&lt;/h2&gt;

&lt;p&gt;Video completo de la demo en &lt;a href="https://youtu.be/4tqsuJmRskU" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>node</category>
      <category>lambda</category>
      <category>dynamodb</category>
    </item>
    <item>
      <title>Party Rock is in the house tonight 😎💿🎵✨</title>
      <dc:creator>Brenda Galicia</dc:creator>
      <pubDate>Fri, 02 Feb 2024 22:31:00 +0000</pubDate>
      <link>https://forem.com/bgalicia/party-rock-is-in-the-house-tonight-2b2p</link>
      <guid>https://forem.com/bgalicia/party-rock-is-in-the-house-tonight-2b2p</guid>
      <description>&lt;p&gt;Mientras escribo esta entrada estoy escuchando Party Rock Anthem de LMFAO para conectar ideas y hablarles de PartyRock de AWS, esta increíble plataforma en donde podrás desarrollar en menos de lo que dura la canción una aplicación con Inteligencia Artificial Generativa incluida (texto e imágenes).&lt;/p&gt;

&lt;p&gt;PartyRock es un playground super intuitivo, práctico y sin código para crear una gran variedad de aplicaciones de GenAI en muy pocos pasos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Qué tipo de aplicaciones?&lt;/strong&gt;&lt;br&gt;
Todo lo que te imagines, tu creatividad es el límite, por ejemplo vamos a desarrollar una aplicación que nos diga que Pokémon somos de acuerdo a nuestra casa en Hogwarts, comida favorita, personaje favorito de Sherk y el equipo al que le vamos en la NFL o tal vez algo más útil en el día a día como que nos recomiende que cena servir para una cantidad de personas según los ingredientes que tengamos en nuestro refrigerador y el presupuesto disponible, incluso podemos generar una aplicación para que nos ayude a generar la minuta de nuestras sesiones ingresando los participantes, acuerdo y temas relevantes de la sesión. Los casos de uso son incontables y podemos usarlos para ser más productivos o generar algo de entretenimiento.&lt;/p&gt;

&lt;p&gt;PartyRock es una herramienta diseñada para que jugando podamos practicar y experimentar con diferentes modelos fundacionales, ya que funciona con Amazon Bedrock, un servicio administrado que disponibiliza por medio de una API estos modelos que son propios de Amazon y también de empresas de IA.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¡Quiero probar! ¿cómo se empieza?&lt;/strong&gt;&lt;br&gt;
Okay, okay, vamos paso a paso con la opción básica, crear una aplicación desde cero:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ingresa a partyrock.aws&lt;/li&gt;
&lt;li&gt;Inicia sesión, puedes usar SSO o darte de alta por correo&lt;/li&gt;
&lt;li&gt;Clic en “Build your own app”&lt;/li&gt;
&lt;li&gt;Vamos a escribir nuestro prompt con las indicaciones de cómo funcionará nuestra aplicación, por ejemplo: “Quiero una aplicación que me diga que Pokémon soy de acuerdo a mi casa en Hogwarts, mi comida favorita, mi personaje favorito de Sherk y mi equipo favorito de la NFL, de la salida de mi Pokémon quiero que genere una imagen que sirva como foto de perfil.” &lt;/li&gt;
&lt;li&gt;Clic en “Generate app”&lt;/li&gt;
&lt;li&gt;Espera unos segundos en lo que se genera tu nueva aplicación con IA generativa&lt;/li&gt;
&lt;li&gt;¡EXPERIMENTA! Ya tienes tu aplicación, ahora te toca jugar con las combinaciones de los diferentes modelos, ajustar tus prompts, rediseñar la interfaz, agregar widgets, hacerla pública y compartir.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsxtivolejxbqvlkx77ku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsxtivolejxbqvlkx77ku.png" alt="Ejemplo del paso a paso" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por cierto, si estás leyendo esto antes del 11 de marzo del 2024, te invito a participar en el PartyRock_Hackaton donde podrás participar por uno de los premios en sus cuatro categorías, hay $120 000 USD en premios tanto en efectivo como créditos en AWS, te dejo el link para que construyas y participes aprendiendo al mismo tiempo: &lt;a href="https://awspartyrockhackathon.devpost.com/?utm_source=partyrock.aws&amp;amp;utm_medium=website&amp;amp;utm_campaign=hackathon_q1_24" rel="noopener noreferrer"&gt;https://awspartyrockhackathon.devpost.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTA:&lt;/strong&gt; Lee las bases de la convocatoria, para ver si es viable tu registro.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Get up, get down, put your hands up to the playground! Woo! 😎💿🎵✨&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>partyrock</category>
      <category>genai</category>
    </item>
    <item>
      <title>Descifrando los LLMs</title>
      <dc:creator>Brenda Galicia</dc:creator>
      <pubDate>Mon, 29 Jan 2024 23:05:30 +0000</pubDate>
      <link>https://forem.com/bgalicia/descifrando-los-llms-2fok</link>
      <guid>https://forem.com/bgalicia/descifrando-los-llms-2fok</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbs6wa8fin6qvo9nipkn4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbs6wa8fin6qvo9nipkn4.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En esta entrada vamos a hablar de los LLMs, los grandes modelos de lenguaje, pero para poder comprenderlos mejor, vamos a empezar del macro universo homologando conocimientos para que la lectura fluya de mejor forma.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Qué es la IA?&lt;/strong&gt;&lt;br&gt;
Empezaremos hablando de la Inteligencia Artificial, este campo de la ciencia de la computación que ha tenido un gran auge en los últimos años, que hoy forma parte de nuestra cotidianidad, aunque no es algo nuevo.&lt;br&gt;
La inteligencia artificial es la capacidad de las máquinas para imitar la inteligencia humana y realizar tareas que normalmente requieren la intervención de una persona.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;División de la IA&lt;/strong&gt;&lt;br&gt;
Hay que ser claros con un par de definiciones y así podernos ubicar en qué área de la IA estamos trabajando:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    AI: programas con la habilidad de aprender y razonar como humanos. Comprende técnicas y procedimientos para tratar de dotar a máquinas de inteligencia. Como lo mencionaba, es la disciplina dentro de la ciencia de la computación de donde parten el resto de las ramas que abordaremos en seguida.&lt;/li&gt;
&lt;li&gt;    ML: algoritmos capaces de aprender por sí mismos de las experiencias, es decir, datos. Es el subcampo de la IA que aborda algoritmos capaces de aprender por sí mismos. Genera predicciones a partir de datos de entrada.&lt;/li&gt;
&lt;li&gt;    DL: redes neuronales que se adaptan y aprenden a grandes cantidades de datos. Subconjunto de ML aplicado a grandes cantidades de datos usando principalmente redes neuronales.&lt;/li&gt;
&lt;li&gt;    GenAI: modelos capaces de generar contenido nuevo, crean contenido original en formato de imágenes, texto, música, videos y código. Subconjunto del DL.&lt;/li&gt;
&lt;li&gt;    LLM: son modelos de propósito general altamente efectivos para una variedad de tareas relacionadas con el lenguaje, desde la generación de texto hasta la comprensión y la propia traducción del lenguaje al estilo humano.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aquí hay que tener claro que los LLM se pueden utilizar en la IA generativa para producir contenido basado en indicaciones de entrada en lenguaje humano, en esta intersección que vemos en el gráfico, pero eso no los limita.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnkk8htgjpnbaozkuaxzd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnkk8htgjpnbaozkuaxzd.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lenguaje natural&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Antes de entrar de lleno a los modelos de lenguaje hay que tener un par más de definiciones claras:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    Lenguaje natural: es el lenguaje escrito o hablado que usamos nosotros como seres humanos para comunicarnos.&lt;/li&gt;
&lt;li&gt;    Procesamiento del lenguaje natural (NLP): busca dotar a las computadoras de herramientas para poder comprender, interpretar y procesar el lenguaje humano, es decir, que nos podamos comunicar por medio de texto o voz con la computadora.&lt;/li&gt;
&lt;li&gt;    Generación de lenguaje natural (NLG): es el proceso en reversa, es decir, que la comunicación sea de la computadora a nosotros los humanos, aquí se brindan herramientas a las computadoras para poder crear texto coherente y comprensible de manera autónoma usando el lenguaje natural.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Modelo de lenguaje&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mencione modelo de lenguaje pero ¿qué es un modelo de lenguaje?&lt;/p&gt;

&lt;p&gt;Es un modelo de aprendizaje automático que tiene como objetivo predecir y generar el lenguaje posible. Un ejemplo claro con el que hemos vivido de cerca en el día a día desde nuestro teléfono y en la computadora es: el autocompletado.&lt;/p&gt;

&lt;p&gt;Estos modelos estiman la probabilidad de que se genere un token o una secuencia de tokens dentro de una secuencia más larga de tokens. Si suponemos que un token es una palabra, se puede estimar la probabilidad de diferentes oraciones completas o bloques de texto. Esto es útil para generar texto, traducir idiomas, responder preguntas, entre otras.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grandes modelos de lenguaje&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ahora nos toca definir ¿qué es un gran modelo de lenguaje?&lt;/p&gt;

&lt;p&gt;Es un modelo de lenguaje de propósito general que puede ser afinado para tareas específicas de procesamiento y generación de lenguaje natural basado en redes transformer que contienen cientos o miles de millones de parámetros y ha sido entrenado con una colección de textos como documentos, páginas web, libros, artículos y más que es extremadamente grande y diversa con altas capacidades de cómputo y semanas incluso meses de entrenamiento.&lt;/p&gt;

&lt;p&gt;Los primeros modelos de lenguaje podían predecir la probabilidad de una sola palabra, hoy día, los grandes modelos de lenguaje pueden predecir oraciones, párrafos e incluso documentos completos.&lt;/p&gt;

&lt;p&gt;Se pueden adaptar para resolver un problema específico con una cantidad pequeña de datos.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;¿De qué tamaño es grande?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;La definición no es definitiva, pero se denominan grandes por dos razones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    el gran tamaño en el conjunto de datos de entrenamiento&lt;/li&gt;
&lt;li&gt;    la cantidad de parámetros usados&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Por ejemplo, se usa el termino large desde BERT que conto con 110 millones de parámetros (2018) y PalM2 con hasta 540, 000 millones de parámetros (2022). Por lo que suelen usarse para referirnos a la cantidad de parámetros del modelo o, a veces, a la cantidad de palabras en el conjunto de datos.&lt;/p&gt;

&lt;p&gt;Otro término nuevo que está en la definición de LLM que acabamos de compartir son redes transformer, este término fue introducido en el 2017, son una arquitectura diseñada en torno a la idea de atención.&lt;/p&gt;

&lt;p&gt;Los transformers son capaces de entrenarse sin supervisión, llevan su propio aprendizaje, un autoaprendizaje. Es con este proceso que aprenden a entender la gramática, los idiomas y los conocimientos básicos.&lt;/p&gt;

&lt;p&gt;A diferencia de las redes neuronales recurrentes (RNN) que se procesaban las entradas de forma secuencial, los transformers procesan secuencias enteras en paralelo. Reduciendo de forma significativa el tiempo de entrenamiento. Funcionan con un codificador y un decodificador. El codificador como su nombre lo indica, codifica la secuencia de entrada y la pasa al decodificador que aprende a decodificar las representaciones.&lt;/p&gt;

&lt;p&gt;Otra cuestión en estas redes es que tienen una mejor memoria a largo plazo, más grande que las redes recurrentes, lo que permite analizar secuencias de datos mucho más extensas, por lo que puede codificar las relaciones que pueden existir entre los elementos del texto a diferentes niveles, a nivel palabra, frase del texto o párrafos, lo que lo vuelve más similar a lo que nosotros realizamos como seres humanos, le damos significado a una palabra a través de su contexto, el resto de lo que esta escrito.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;La magia detrás de los LLMs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imaginemos a a un LLM como un bebé, un niño que esta aprendiendo a hablar. Al principio, no sabe nada, pero con mucha paciencia y entrenamiento, puede llegar a ser un maestro del lenguaje.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;1. Recopilación de datos&lt;/em&gt;&lt;br&gt;
El primer paso es recopilar una gran cantidad de datos de texto, como libros, artículos, código, conversaciones, etc. Estos datos son como la comida que necesita el bebé para crecer.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;2. Limpieza y preparación&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;No todos los datos son útiles, por lo que se limpian para eliminar errores y contenido no deseado. Luego, se organizan de forma que el LLM pueda entenderlos, es decir, se normaliza y tokeniza el texto para que el modelo pueda procesarlo.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;3. Entrenamiento&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;El LLM comienza a procesar los datos, aprendiendo a identificar patrones y relaciones entre las palabras. Se utiliza un algoritmo de aprendizaje profundo para entrenar el modelo en una arquitectura de red neuronal, como los transformer. Es como si el bebé estuviera todo el día escuchando a sus padres hablar y tratando de entender lo que dicen.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;4. Ajustando el aprendizaje&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;El LLM recibe feedback sobre su progreso. Se evalúa el modelo en diferentes tareas y conjuntos de datos de prueba para medir su precisión y generalización. Si comete errores, se le corrige para que aprenda de ellos. Se ajustan los hiperparámetros del modelo y se optimiza la función para mejorar el rendimiento. Es como si el bebé aprendiera a hablar imitando a sus padres y se corrigieran sus errores.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;5. ¡Listo para usar!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Una vez que el LLM ha aprendido lo suficiente y paso por diversos ajutes, está listo para ser utilizado. Se implementa el modelo en un entorno de producción para su uso en aplicaciones del mundo real. Puede realizar diferentes tareas, como traducir idiomas, escribir textos creativos o responder a tus preguntas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Personalidad de los LLMs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Existen un par de parámetros que nos permiten controlar la creatividad y calidad de las salidas, del texto generado.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Temperatura&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Uno de estos parámetros es la temperatura. Que no es más que un número entre 0 y 1. Mientras más cercano al 0, que el valor sea bajo, el modelo va responder de forma más común, generando respuestas seguras, conservadoras y determinísticas, es decir, se vuelve más predecible.&lt;/p&gt;

&lt;p&gt;Por el otro lado, mientras que este número se acerque al 1, es decir sea más alto, la respuesta del modelo se vuelve más “creativa”, aumenta la diversidad, es más impredecible y esto puede llevarnos a respuestas menos coherentes.&lt;/p&gt;

&lt;p&gt;El valor de este parámetro se ajusta por el caso de uso que estemos trabajando, la aplicación que estemos implementando nos dará base para poder definir este parámetro y el comportamiento nos puede dar indicaciones de si se debe ajustar.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Muestreo top-k&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Para entender mejor este concepto de muestreo top-k me apoyaré de esta tabla que muestra palabras, que responden a la frase “el verbo más conjugado es:” tomando que la tabla tiene 6 palabras por lo que en la respuesta del modelo podría escoger entre cualquiera de estas palabras. Aquí es donde entra nuestro top-k pues podemos limitar ese listado de palabras. Podemos indicarle que considere solamente las k más probables. En este ejemplo podemos indicarle que tome las 4 más probables para la generación de la respuesta del modelo.&lt;/p&gt;

&lt;p&gt;Hay que tener en cuenta que si escogemos el valor k=1 el modelo siempre va a escoger la palabra con la probabilidad más alta por lo tanto la generación de la respuesta del modelo será determinística. Y si como en este ejemplo dejamos k=6 nuestra respuesta será totalmente aleatoria.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Muestreo top-p&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Por último veremos el tercer parámetro que podemos usar para tener, controlar aleatoriedad en nuestra respuesta generada por el modelo. que es el top-p, también conocido como muestreo de núcleos.&lt;/p&gt;

&lt;p&gt;De igual forma tendremos un umbral entre cero y uno. Supongamos que tenemos el valor p=0.4, entonces:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;    Tomamos la distribución original y ordenamos de forma descendente de la palabra más probable a la menos probable.&lt;/li&gt;
&lt;li&gt;    Creamos un nuevo listado de palabras candidatas, que inicialmente estará vacío.&lt;/li&gt;
&lt;li&gt;    Se añaden una a una las palabras sumando en cada iteración el valor de su probabilidad.&lt;/li&gt;
&lt;li&gt;    Las iteraciones se detienen cuando se sobrepasa el valor de p definido.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9a6bvkmr6x6y1ohmx5o8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9a6bvkmr6x6y1ohmx5o8.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Cuáles son algunos casos de uso de los LLM?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Los LLM pueden ser componentes de modelos que hacen más que solo generar texto. Se usan LLM para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    Compilar detectores de opiniones&lt;/li&gt;
&lt;li&gt;    Clasificadores de toxicidad&lt;/li&gt;
&lt;li&gt;    Subtítulos de imágenes&lt;/li&gt;
&lt;li&gt;    Redacción de textos publicitarios&lt;/li&gt;
&lt;li&gt;    Respuesta a la base de conocimientos&lt;/li&gt;
&lt;li&gt;    Clasificación de textos&lt;/li&gt;
&lt;li&gt;    Resúmenes&lt;/li&gt;
&lt;li&gt;    Chatbots&lt;/li&gt;
&lt;li&gt;    Traducción de contenido&lt;/li&gt;
&lt;li&gt;    Lluvia de ideas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;¿Cómo lo puedo implementar?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Y bien, todo esto se puede hacer, pero la pregunta clave sería ¿cómo yo puedo participar de esta disciplina? ¿cómo lo puedo implementar?&lt;/p&gt;

&lt;p&gt;Desde mi experiencia puedo brindar un par de consejos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;em&gt;Desarrolla tus habilidades técnicas en IA:&lt;/em&gt; hay muchos cursos online, tutoriales y recursos disponibles para aprender sobre IA y LLMs. Es necesario generar conocimiento de los principios de aprendizaje automático, los LLMs son modelos de aprendizaje, por lo que es fundamental tener una comprensión básica de los principios de este campo. Esto incluye conceptos como la clasificación, la regresión, la agrupación y etc.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Participa en la comunidad de IA:&lt;/em&gt; asiste a eventos, de forma presencial o virtual únete a grupos a fines y conecta con otros profesionales del campo, crece tu red.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Empieza con proyectos pequeños:&lt;/em&gt; es muy importante tener experiencia práctica en el desarrollo de modelos de aprendizaje. Esto se puede adquirir participando en proyectos o trabajando en empresas que desarrollan productos basados en IA. No intenten construir un gran modelo de IA desde el principio. Comiencen con proyectos pequeños y manejables.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Potencializa tus habilidades blandas:&lt;/em&gt; busca como amplificar tu creatividad, los LLMs se pueden utilizar para crear una amplia gama de productos y servicios. También es importante contar con un pensamiento crítico, debemos ser capaces de pensar críticamente sobre los resultados de los LLMs para evitar sesgos o errores que generen un impacto negativo a lo que estamos desarrollando.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;¡El futuro de la IA está en nuestras manos!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ia</category>
      <category>llm</category>
      <category>desdecero</category>
    </item>
    <item>
      <title>¿Cómo desplegar aplicaciones Flask como funciones de AWS Lambda con Zappa?</title>
      <dc:creator>Brenda Galicia</dc:creator>
      <pubDate>Mon, 13 Nov 2023 18:16:59 +0000</pubDate>
      <link>https://forem.com/bgalicia/como-desplegar-aplicaciones-flask-como-funciones-de-aws-lambda-con-zappa-1ha5</link>
      <guid>https://forem.com/bgalicia/como-desplegar-aplicaciones-flask-como-funciones-de-aws-lambda-con-zappa-1ha5</guid>
      <description>&lt;p&gt;En el mundo de la computación en la nube, la arquitectura serverless ha ganado una popularidad creciente debido a su eficiencia y escalabilidad. AWS Lambda, un servicio que permite ejecutar código sin servidor en respuesta a eventos específicos. Si eres un desarrollador de Python y quieres aprovechar la potencia de AWS Lambda para desplegar tu aplicación Flask, estás en el lugar correcto. En este artículo, te guiaré paso a paso a través del proceso de despliegue utilizando Zappa, una herramienta que simplifica la integración de aplicaciones Flask con AWS Lambda.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué es Flask?
&lt;/h2&gt;

&lt;p&gt;Flask es un marco de desarrollo web en Python que ofrece una forma fácil y rápida de crear aplicaciones web pequeñas o medianas, proporcionando una base sólida y extensible para desarrolladores de todos los niveles de experiencia.&lt;/p&gt;

&lt;p&gt;Al ser un marco de microservicios, Flask se adapta especialmente bien a aplicaciones pequeñas o medianas, APIs, prototipos rápidos o proyectos que no requieran de una estructura compleja.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué es Zappa?
&lt;/h2&gt;

&lt;p&gt;Zappa es una herramienta de código abierto que facilita el despliegue de aplicaciones web de Flask y Django en AWS, permitiendo que los desarrolladores aprovechen la arquitectura serverless de AWS para ejecutar sus aplicaciones de manera eficiente y económica en la nube.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué es AWS Lambda?
&lt;/h2&gt;

&lt;p&gt;Es un servicio de computación sin servidor (serverless) proporcionado por AWS que permite a los desarrolladores ejecutar código de manera escalable sin tener que administrar servidores.&lt;/p&gt;

&lt;p&gt;Algunas de las ventajas de utilizar Zappa para desplegar aplicaciones web en AWS Lambda son:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    Escalabilidad automática: AWS Lambda escala automáticamente la infraestructura para manejar la carga de solicitudes, sin intervención manual del desarrollador.&lt;/li&gt;
&lt;li&gt;    Pago por uso: Solo se paga por el tiempo de ejecución de las funciones, lo que permite ahorrar costos en comparación con mantener servidores en funcionamiento continuo.&lt;/li&gt;
&lt;li&gt;    Alta disponibilidad: AWS Lambda y API Gateway están diseñados para ser altamente disponibles, lo que garantiza que la aplicación se mantenga accesible incluso en caso de fallas en un centro de datos.&lt;/li&gt;
&lt;li&gt;    Fácil integración con otros servicios de AWS: Como parte del ecosistema de AWS, las aplicaciones desplegadas con Zappa pueden integrarse fácilmente con otros servicios de AWS, como bases de datos, almacenamiento, autenticación, entre otros.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Requerimientos
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Phyton (por el momento Zappa solamente acepta versión de 3.6 a 3.10)&lt;/li&gt;
&lt;li&gt;    Credenciales AWS (permisos para s3 y lambda)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nota: asegúrate de tener las credenciales configuradas correctamente en tu máquina sobre los siguientes archivos:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;%USERPROFILE%\.aws\config
%USERPROFILE%\.aws\credentials
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Paso a paso
&lt;/h2&gt;

&lt;p&gt;Para desplegar una aplicación Flask como una función AWS Lambda utilizando Zappa, sigue los siguientes pasos:&lt;/p&gt;
&lt;h3&gt;
  
  
  Paso 1: Configurar el entorno virtual
&lt;/h3&gt;

&lt;p&gt;Para evitar conflictos con otras dependencias, es recomendable crear un entorno virtual para nuestro proyecto, además es una solicitud de Zappa para poder trabajar correctamente. Así que abre una terminal y ejecuta los siguientes comandos:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Crear entorno virtual
python -m venv venv

# Activar entorno virtual (Windows)
venv\Scripts\activate`
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Paso 2: Instalar Flask y Zappa
&lt;/h3&gt;

&lt;p&gt;Dentro de tu entorno virtual, instala Flask y Zappa usando pip:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Instalación de flask y zappa
pip install flask zappa
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Paso 3: Crea tu aplicación Flask
&lt;/h3&gt;

&lt;p&gt;Ahora, crea tu aplicación Flask en un archivo Python. En este ejemplo vamos a definir nuestro archivo app.py de la siguiente manera:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return '¡Hola Mundo! Esta es la respuesta de una aplicación Flask desplegada en AWS Lambda con Zappa'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para probarla localmente puedes usar el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Levantar flask localmente para pruebas
flask run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esto te dará acceso local a tu aplicación bajo la dirección: &lt;a href="http://127.0.0.1:5000/" rel="noopener noreferrer"&gt;http://127.0.0.1:5000/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Paso 4: Inicializar Zappa
&lt;/h3&gt;

&lt;p&gt;Con nuestra aplicación Flask lista, inicializamos Zappa dentro del directorio de proyecto:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Inicializar Zappa
zappa init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Al realizar este paso, en la consola nos realizará un par de preguntas respecto al nombre del proyecto, ubicación del proyecto, región de despliegue, ambiente y nombre del bucket de s3 donde se resguarda el código.&lt;/p&gt;

&lt;p&gt;Con la respuesta de estas preguntas, se generará un archivo zappa_settings.json en la raíz del proyecto. Este archivo es donde se configuran los detalles de despliegue de la función Lambda.&lt;br&gt;
Paso 5: Despliegue de la aplicación Flask en AWS Lambda&lt;/p&gt;

&lt;p&gt;Una vez que se haya configurado el archivozappa_settings.json, es hora de desplegar nuestra aplicación en AWS Lambda con el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Sentencia global
zappa deploy {ambiente}

# Sentencia para desplegar todo lo que tengamos como proyecto y ambientes 
zappa deploy  --all

# Nuestra sentencia para probar
zappa deploy dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Zappa se encargará de empacar la aplicación, crear los recursos necesarios en AWS y proporcionar una URL para acceder a nuestra aplicación.&lt;/p&gt;

&lt;p&gt;Con estos pasos, deberías tener tu aplicación Flask desplegada como una función AWS Lambda utilizando Zappa. Ahora puedes acceder a tu aplicación a través de la URL proporcionada por Zappa, que estará disponible en la salida del comando de despliegue. Ten en cuenta que Zappa también te permite escalar y gestionar tu aplicación de manera sencilla, por lo que es una herramienta útil para desplegar aplicaciones web de Flask en AWS Lambda.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pasos opcionales.
&lt;/h3&gt;

&lt;p&gt;Actualizar aplicación: si realizas cambios en tu aplicación Flask y deseas actualizar la función Lambda, simplemente ejecuta el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Actualizar aplicación 
zappa update {env}

# Si en la actualización se ocupa una dependencia, generar requeriments.txt
pip freeze &amp;gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Eliminar aplicación: se utiliza para eliminar la función AWS Lambda y los recursos relacionados que se crearon durante el proceso de despliegue de la aplicación. Es importante tener en cuenta que los recursos se eliminarán definitivamente y no podrán recuperarse.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Borrar despliegue de la aplicación
zappa undeploy {env}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Aquí te dejo el código en GitHub:&lt;br&gt;
&lt;a href="https://github.com/bgalicia/desplegar-app-flask-como-lambda-con-zappa" rel="noopener noreferrer"&gt;https://github.com/bgalicia/desplegar-app-flask-como-lambda-con-zappa&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El video de la demo en YouTube:&lt;br&gt;
&lt;a href="https://youtu.be/d-2RiELu-Vs?si=Qmq0Gra8YFGcUVgc" rel="noopener noreferrer"&gt;https://youtu.be/d-2RiELu-Vs?si=Qmq0Gra8YFGcUVgc&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusión
&lt;/h2&gt;

&lt;p&gt;En esta ocasión hemos aprendido cómo desplegar una aplicación Flask en AWS Lambda utilizando Zappa. Con esta combinación de tecnologías, puedes aprovechar la flexibilidad y escalabilidad de la nube de Amazon para ejecutar aplicaciones Flask sin la necesidad de administrar servidores. Aprovecha la arquitectura serverless y Zappa para llevar tus aplicaciones web a nuevas alturas con AWS Lambda. ¡Espero que encuentres esta guía útil y que puedas empezar a desplegar tus aplicaciones Flask con Zappa hoy mismo!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>flask</category>
      <category>zappa</category>
      <category>lambda</category>
    </item>
    <item>
      <title>Certificaciones AWS en PearsonVue</title>
      <dc:creator>Brenda Galicia</dc:creator>
      <pubDate>Mon, 13 Nov 2023 18:02:52 +0000</pubDate>
      <link>https://forem.com/bgalicia/certificaciones-aws-en-pearsonvue-92a</link>
      <guid>https://forem.com/bgalicia/certificaciones-aws-en-pearsonvue-92a</guid>
      <description>&lt;p&gt;Para llegar a esta lectura seguramente en tu plan de carrera se encuentra especializarte en AWS, en primera mucho éxito y en segunda lo que menos te deberá preocupar es como agendar el examen, así que a continuación te dejo una breve guía para que puedas agendar tu examen sin contratiempos.&lt;br&gt;
Programar examen&lt;/p&gt;

&lt;p&gt;Para poder programar un examen de certificación de AWS con PearsonVue en forma presencial, los pasos a seguir son:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ingresar a &lt;a href="https://www.aws.training/" rel="noopener noreferrer"&gt;https://www.aws.training/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;    Iniciar sesión&lt;/li&gt;
&lt;li&gt;    Dirigirte al apartado Certification&lt;/li&gt;
&lt;li&gt;    Seleccionar GO TO YOUR ACCOUNT&lt;/li&gt;
&lt;li&gt;    Seleccionar Manage PearsonVue Exams&lt;/li&gt;
&lt;li&gt;    Buscar en la lista de exámenes el que deseas programar.&lt;/li&gt;
&lt;li&gt;    Seleccionar la forma de presentar el examen, en un centro o en línea. Este caso será un centro de pruebas.&lt;/li&gt;
&lt;li&gt;    Se mostrarán indicaciones que se deben cumplir para el día del examen.&lt;/li&gt;
&lt;li&gt;    Como nota, esta información viene más detallada en el correo de confirmación, pero toma en cuenta que debes llevar dos identificaciones de manera física, puede ser INE, licencia de conducir, pasaporte, identificación laboral con foto, fecha de vigencia y firma, tarjeta de crédito con fecha de vigencia y firma, y/o cartilla del seguro.&lt;/li&gt;
&lt;li&gt;    Da clic en siguiente.&lt;/li&gt;
&lt;li&gt;    Selecciona el idioma.&lt;/li&gt;
&lt;li&gt;    Recomendado en Inglés, sin embargo, ya hay exámenes que se encuentran en Español.&lt;/li&gt;
&lt;li&gt;    Da clic en siguiente.&lt;/li&gt;
&lt;li&gt;    Se mostrará un resumen del examen, costo e idioma que has seleccionado.&lt;/li&gt;
&lt;li&gt;    Recuerda tener habilitado la acomodación de idioma para tus exámenes, esto te brinda 30 minutos extra.&lt;/li&gt;
&lt;li&gt;    Da clic en siguiente.&lt;/li&gt;
&lt;li&gt;    Se mostrará la carta de términos y condiciones de AWS.&lt;/li&gt;
&lt;li&gt;    Da clic en Aceptar.&lt;/li&gt;
&lt;li&gt;    Mostrará los centros de prueba que estén más cerca de tu ubicación.&lt;/li&gt;
&lt;li&gt;    Selecciona sobre el que quieras programar y da clic en siguiente.&lt;/li&gt;
&lt;li&gt;    Como recomendación selecciona tres para que de una sola vez puedas buscar en ellos la fecha que buscas sin tener que estar regresando a esta pantalla.&lt;/li&gt;
&lt;li&gt;    Identifica el día y la hora en la que quieres programar tu examen.&lt;/li&gt;
&lt;li&gt;    Se mostrará el resumen de tu pedido: datos del examen, lugar y fecha en donde se presentará y costo.&lt;/li&gt;
&lt;li&gt;    Da clic en proceder.&lt;/li&gt;
&lt;li&gt;    Se mostrará la forma de pago, con voucher o con tarjeta.&lt;/li&gt;
&lt;li&gt;    Si es con voucher asegúrate de darle aplicar, esto se verá reflejado en la siguiente pantalla descontando el total del examen.&lt;/li&gt;
&lt;li&gt;    Da clic en siguiente para finalizar la compra.&lt;/li&gt;
&lt;li&gt;    Una vez finalizado te llegará un correo de confirmación de la programación de tu examen y otro correo de validación del modo de pago.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ¿Qué pasa si el centro de pruebas no tiene servicio?
&lt;/h2&gt;

&lt;p&gt;Primero que nada no te preocupes, como todo en la vida tiene solución. Esto puede pasar por varias situaciones, ejemplo, que el centro de pruebas donde ibas a presentar tu examen no tiene acceso a la plataforma de PearsonVue y aunque ya estés esperando pasar el personal te diga: Ahorita no joven.&lt;/p&gt;

&lt;p&gt;Para estos casos, dependerá del centro de pruebas el procedimiento a seguir, pero será necesario que les compartas tus datos con el personal del centro:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;   Nombre completo&lt;/li&gt;
&lt;li&gt;    Correo electrónico&lt;/li&gt;
&lt;li&gt;    Nombre del examen que iba a presentar&lt;/li&gt;
&lt;li&gt;    Teléfono&lt;/li&gt;
&lt;li&gt;    Candidate ID (está en tu correo de confirmación de programación del examen que envió PearsonVue)&lt;/li&gt;
&lt;li&gt;    Registration ID (está en tu correo de confirmación de programación del examen que envió PearsonVue)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Con esta información, una vez que el centro tenga acceso a la plataforma podrá levantar un caso a PearsonVue declarando que no te pudieron brindar el servicio para presentar tu examen y con esto poder reprogramarlo. Para esto es necesario que dejes tu correo, ya que el centro te tiene que mandar por correo el número de caso que te corresponde para que así puedas darle seguimiento en la plataforma de PearsonVue.&lt;/p&gt;

&lt;p&gt;Este procedimiento está documentado a 48 horas, pero por temas de pandemia se disculpan, puesto que puede tardar más, pero no desesperes se tiene que atender. Si en el transcurso tienes dudas sobre el estado del caso, puedes contactarte PearsonVue a través de una llamada, correo o por chat:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://home.pearsonvue.com/aws/contact" rel="noopener noreferrer"&gt;🔗 Customer service :: Amazon Web Services :: Pearson VUE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una vez atendido tu caso, te llegará un correo de PearsonVue con la cancelación del examen que ibas a presentar en el centro que no tuvo servicio y otro correo recibiendo disculpas por parte de AWS indicándote que puedes volver a agendar tu examen con el mismo voucher que utilizaste o si pagaste con tarjeta que se realizará el reembolso y con esto poder agendar nuevamente tu examen desde cero, como si fuera por primera vez.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AWS Amplify + Figma = ❤</title>
      <dc:creator>Brenda Galicia</dc:creator>
      <pubDate>Mon, 13 Nov 2023 18:00:26 +0000</pubDate>
      <link>https://forem.com/bgalicia/aws-amplify-figma--2d2p</link>
      <guid>https://forem.com/bgalicia/aws-amplify-figma--2d2p</guid>
      <description>&lt;p&gt;&lt;strong&gt;¿Qué es Amplify?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Es un conjunto de herramientas y alojamiento web estático completamente administrado para acelerar el desarrollo de aplicaciones web y móviles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Qué es Figma?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Figma es una aplicación de diseño de UI y UX que se utiliza para crear diseños.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¡Novedad!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Una nueva característica de AWS Amplify es la integración de Amplify Studio con Figma. Amplify Studio se encarga de convertir automáticamente cualquier componente desarrollado en Figma en un componente de React para que se pueda emplear en una aplicación.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Requisitos:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Cuenta de AWS
Cuenta en Figma
Tener una versión reciente de Node.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Demo:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Esta demo será lo más sencilla posible, así que comencemos de una vez.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Entrar a nuestra consola de AWS, seleccionar Amplify.
Crear una nueva aplicación.
Ingresar a Amplify Studio.
Clic en UI Library.
Abrimos Figma y duplicamos el proyecto AWS Amplify UI Kit (Community).
Una vez duplicado, entramos a nuestra copia y le damos en compartir para copiar el link de acceso.
Regresamos a Amplify Studio y damos clic en Get Started,
Nos pedirá compartir el link que deseamos importar de Figma, así que solo pegamos del portapapeles.
Al ser la primera vez, nos pedirá permitir el acceso, aceptamos.
Se empezarán a generar los componentes. Al terminar nos preguntará si los aceptamos o rechazamos, esto se puede hacer de componente por componente o todos juntos. En este caso daremos Accept all.
Al aceptarlos todos los componentes quedarán en nuestra librería. Para continuar generaremos un modelo de datos para la aplicación definiendo los campos y posibles relaciones.
En el menú de la izquierda seleccionamos Content, seguido de Create data model y Add model.
Generaremos un modelo de nombre Usuarios que contendrá el campo id, name, email y followers.
Una vez establecidos los campos vamos a desplegarlo dando clic en Save and deploy. Esto puede tardar unos minutos.
Creado ya el modelo, vamos a apoyarnos de Amplify Studio para auto-generar información del modelo que acabamos de crear. Damos clic en Actions, seguido de Auto-generate data.
Se abre una ventana preguntando cuantos registros queremos, esta ocasión pondremos 5. Adicional podemos seleccionar por campo opciones de tipos de datos, como nombres, direcciones, números en un rango, etc. Para nuestra demo seleccionaremos name y valores de tipo full name. Damos clic en Generate data.
Regresamos a la sección de UI Library, seleccionamos el componente con el que vamos a trabajar, en este caso SocialB, damos clic en Edit y ahora vamos a relacionar los datos.
Damos clic en prop e introducimos el nombre, en este caso será usuarios y como tipo seleccionamos el modelo que generamos llamado Usuarios. Con esto tendremos acceso para el modelo sobre todo el componente.
Por cada elemento del componente, debemos seleccionar el prop adecuado, en nuestro casi serán label ya que solo es texto y relacionarlo con el campo que nos representa. Para tener el preview, podemos dar clic en Shuffle preview data para cambiar los datos y revisar como se vería nuestra información.
Con esto únicamente queda importar con un pull nuestro componente a nuestro proyecto de React. Las líneas de código con todos los datos que ocupamos las podemos obtener dando clic en Get component code. Si ya tenemos el proyecto React creado e inicializado con Amplify usamos la pestaña Use this component, de lo contrario debemos usar Initial project setup.
Para la demo nos iremos desde la creación del proyecto, así que crearemos un proyecto en React con el comando: npx create-react-app amplify-studio-demo, esperamos a que se genere el proyecto, damos cd amplify-studio-demo
Instalamos dependencias con npm install -g @aws-amplify/cli y npm install aws-amplify @aws-amplify/ui-react
Hacemos el import de las siguientes librerías en index.js
Modificamos la envoltura de &amp;lt;App /&amp;gt; con &amp;lt;AmplifyProvider&amp;gt;
Realizamos el pull de los componentes amplify pull — appId &amp;lt;&amp;lt;APP_ID&amp;gt;&amp;gt; — envName &amp;lt;&amp;lt;ENV&amp;gt;&amp;gt;
En App.js importamos nuestro componente con import { SocialB } from ‘./ui-components’; y en el html agregamos nuestro componente &amp;lt;SocialB /&amp;gt;
Finalizamos con un npm start para poder abrir la aplicación en React sobre http://localhost:3000/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;🎬 Video de la demo: &lt;a href="https://drive.google.com/file/d/1GkSpkW9PiwacHxDVWvNG7vqZwhQ8yQMH/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1GkSpkW9PiwacHxDVWvNG7vqZwhQ8yQMH/view?usp=sharing&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
