Bienvenidos a esta nueva edición del boletín open-source de AWS. Dado que estamos en verano, hemos querido hacer un especial sobre Inteligencia Artificial Generativa (GenAI). En este número encontraréis herramientas, soluciones, demos y talleres relacionados con la IA.
Todo esto gracias a la comunidad, cuya colaboración hace posible esta newsletter.
Comencemos!
Novedades y Herramientas
Productividad
Framework Orquestador Agentes Múltiples IA
El framework del Orquestador de Agentes Múltiples es una herramienta muy útil para implementar sistemas de inteligencia artificial que comprenden varios agentes especializados. Su propósito principal es encaminar de manera inteligente las consultas de los usuarios a los agentes más apropiados mientras mantiene una conciencia contextual a lo largo de las interacciones.
Para más información: https://awslabs.github.io/multi-agent-orchestrator/
quickstart-for-amazon-q
Quickstart-for-amazon-q proporciona recursos para comenzar a usar Amazon Q en tu entorno de desarrollo (IDE).
refchecker
El problema de los grandes modelos de lenguaje (LLM), es su tendencia a alucinar o hacer afirmaciones que suenan plausibles pero son inexactas. Refchecker mejora la calidad de los datos en tus modelos con verificación automatizada. Consulta la publicación para esta herramienta: Nueva herramienta y conjunto de datos para detectar alucinaciones en los grandes modelos de lenguaje.
fm-leaderboarder compara LLMs y encuentra el más adecuado para tu caso de uso (basado en tus propias tareas, indicaciones y datos).
bedrock-vscode-playground
bedrock-vscode-playground es una extensión de Visual Studio Code (VS Code) que permite experimentar con LLMs en Amazon Bedrock desde VS Code.
Promptus
Promptus, una herramienta de prompt engineering que te permite crear y organizar prompts de manera eficiente. Con Promptus, puedes:
- Construir rápidamente prompts usando una interfaz intuitiva.
- Versionar automáticamente y comparar las iteraciones de los prompts para optimizar la calidad de los mismos.
- Organizar los prompts en proyectos y compartirlos con compañeros de equipo.
- Ver un historial de tus prompts y volver fácilmente a cualquier ejecución de prompt anterior.
- Ya seas un investigador, creador de contenido o emprendedor, Promptus te brinda el poder de desbloquear todo el potencial de la IA generativa.
generative-ai-newsletter-app
generative-ai-newsletter-app es una solución serverless lista para permitir crear boletines informativos de forma automática con resúmenes generados por inteligencia artificial. La aplicación ofrece a los usuarios la capacidad de influir en las sugerencias de la IA generativa para personalizar cómo se resumen los contenidos, el tono con el que escribe, el público objetivo y más. Los usuarios pueden dar estilo al boletín de noticias HTML, definir con qué frecuencia se crean los boletines y compartirlos con otros.
partysmith es un proyecto de nuestro AWS Community Builder Stephen Sennett, que proporciona una forma no oficial de transformar tus aplicaciones PartyRock de AWS en aplicaciones SvelteKit de stack completo desplegables. Los usuarios pueden poner la URL de una aplicación PartyRock publicada, seleccionar la configuración deseada y PartySmith te devolverá una aplicación en un archivo ZIP lista para su uso. Puedes obtener más información leyendo la publicación: PartySmith: lleva las aplicaciones PartyRock a tu lugar.
amazon-bedrock-client-for-mac
amazon-bedrock-client-for-mac es un repositorio que te proporciona el código para el Cliente de Amazon Bedrock en MacOS. La app está construida con SwiftUI. Sirve como una interfaz de cliente para AWS Bedrock, permitiendo a los usuarios interactuar con los modelos de AWS Bedrock.
python-bedrock-converse-generate-docs
python-bedrock-converse-generate-docs es un proyecto de Alan Blockley, miembro de AWS Community Builder, que genera documentación para un archivo de código fuente utilizando la API de Anthropic Bedrock Runtime. La documentación generada se formatea en markdown y se almacena en el directorio de salida especificado. Alan también ha escrito un blog, No es un chatbot: Escribiendo Documentación, que muestra cómo funciona y cómo empezar. Otra cosa interesante de este proyecto es que utiliza la API Converse, la cual deberías revisar si aún no la has visto o utilizado.
get-the-news-rss-atom-feed-summary
get-the-news-rss-atom-feed-summary es una demostración fantástica que muestra algunas de las capacidades que los grandes modelos de lenguaje (LLMs) pueden ayudarte a introducir en tus aplicaciones. El código de la demo proporciona un resumen de las noticias más recientes de un feed RSS o Atom utilizando Amazon Bedrock.
Infraestructura
foundation-model-benchmarking-tool
El foundation-model-benchmarking-tool es una herramienta comparativa de modelos Fundacionales (FM). Ejecuta cualquier modelo en Amazon SageMaker y evalúa su rendimiento en términos de tipo de instancia y opciones de stack de servicio. Uno de los desafío con los FMs es la capacidad de evaluar su rendimiento en términos de latencia de inferencia, rendimiento y coste para determinar qué modelo, ejecutado con qué combinación de hardware y stack de servicio, proporciona la mejor combinación de rendimiento y precio para una carga de trabajo dada.
bedrock-access-gateway
bedrock-access-gateway proporciona APIs RESTful compatibles con OpenAI para Amazon Bedrock. Amazon Bedrock ofrece una amplia gama de modelos fundacionales (como Claude 3 Opus/Sonnet/Haiku, Llama 2/3, Mistral/Mixtral, etc.) y un conjunto amplio de capacidades para construir aplicaciones de inteligencia artificial generativa. A veces, es posible que tengas aplicaciones desarrolladas utilizando APIs o SDKs de OpenAI y desees experimentar con Amazon Bedrock sin modificar tu código. O simplemente quieras evaluar las capacidades de estos modelos base en herramientas como AutoGen, etc. Bueno, este repositorio te permite acceder a los modelos de Amazon Bedrock de forma transparente a través de APIs y SDKs de OpenAI, lo que te permite probar estos modelos sin necesidad de realizar cambios en el código
cfn-bedrock-notify es una herramienta creada por nuestro compañero Du'an Lightfoot donde incorpora de una forma muy creativa e interesante los grandes modelos de lenguaje (LLMs) para ayudarte a solucionar despliegues fallidos de CloudFormation. ¿Cuántas veces has tenido un despliegue fallido y has tenido que recurrir a un buscador para ayudarte a resolver el problema? Bueno, con este proyecto, cualquier problema detectado se envía a través de SNS a Amazon Bedrock utilizando Anthropic Claude v3, y (con suerte) la respuesta a tus problemas se devuelve a través del correo electrónico del suscriptor de SNS. ¡Genial!
Train Llama2 con AWS Trainium en Amazon EKS
Sanjeev Ganjihal y Scott Perry nos muestran cómo puedes utilizar AWS Trainium con Neuronx-nemo-megatron en Amazon EKS para abordar las crecientes demandas computacionales y los desafíos de costos en el entrenamiento de modelos de IA avanzados. Si eso suena como algo que necesitas saber más, entonces sumérgete en su blog.
Open source observability for AWS Inferentia nodes within Amazon EKS clusters te guía a través del patrón de Observabilidad open-source para AWS Inferentia. Podrás ver cómo monitorear el rendimiento de los chips de aprendizaje automático, utilizados en un clúster de Amazon Elastic Kubernetes Service (Amazon EKS), con nodos de plano de datos basados en instancias de Amazon Elastic Compute Cloud (Amazon EC2) del tipo Inf1 e Inf2. [Hands-on]
Acelera la inferencia de PyTorch con torch.compile en procesadores AWS Graviton, te muestra cómo optimizar el rendimiento de torch.compile en instancias EC2 basadas en AWS Graviton3, y luego cómo usar las optimizaciones para mejorar el rendimiento de inferencia [Hands-On].
amazon-bedrock-serverless-prompt-chaining
Este repositorio proporciona diferentes ejemplos de cómo utilizar AWS Step Functions y Amazon Bedrock para construir aplicaciones de IA generativa complejas, sin servidor y altamente escalables con prompt chains.
bedrock-multi-tenant-saas
En este repositorio, os mostramos cómo construir un servicio SaaS interno para acceder a modelos fundacionales (FMs) con Amazon Bedrock en una arquitectura multitenant. Disponer de un SaaS interno para modelos FMs puede abordar los requisitos de gobernabilidad y proporcionar una interfaz simple y consistente para los usuarios finales.
Este artículo demuestra cómo automatizar de manera fluida el despliegue de una solución RAG de extremo a extremo utilizando Bases de Conocimiento para Amazon Bedrock y AWS CloudFormation, permitiendo a las organizaciones configurar rápidamente un potente sistema RAG sin complicaciones.
Seguridad
agent-evaluation
agent-evaluation es un framework impulsado por inteligencia artificial generativa para probar agentes virtuales. Agent Evaluation implementa un agente LLM (evaluador) que orquestará conversaciones con tu propio agente (target) y evaluará las respuestas durante la conversación. El repositorio tiene enlaces a documentos detallados que proporcionan configuraciones de ejemplo y una guía de referencia para que puedas comenzar. ¡Es una lectura práctica que no querrás perderte!
alarm-context-tool
alarm-context-tool mejora la resolución de problemas en CloudWatch con análisis contextual de IA. Utilizando las capacidades de IA generativa de Amazon Bedrock, resume los hallazgos, identifica las posibles causas raíz y ofrece enlaces a documentación relevante para ayudar a los operadores a resolver problemas de manera más eficiente. La implementación está diseñada para una fácil integración en los flujos de trabajo de observabilidad existentes, reduciendo significativamente los tiempos de respuesta y mejorando el análisis del root cause.
Este artículo muestra cómo los equipos de ingeniería pueden automatizar la remediación eficiente de CVEs (vulnerabilidades y exposiciones comunes) de contenedores en las primeras etapas de su pipeline de integración continua (CI). Utilizando servicios en la nube como Amazon Bedrock, Amazon Inspector, AWS Lambda y Amazon EventBridge, es posible diseñar una solución sin servidor impulsada por eventos para detectar y parchear automáticamente vulnerabilidades en contenedores. El uso de IA generativa y tecnologías serverless puede simplificar lo que solía ser un desafío complejo.
Demos, Ejemplos, Soluciones y Talleres
IA Generativa y LLMs
llm-colosseum es otro repositorio que ofrece una forma más divertida de comparar LLMs. Nuestro compañero Banjo pone a luchar (¿recordáis el juego Street Fighter?) 14 LLMs. Al cabo de 314 partidas obtuvo un ganador. ¿Queréis saber quién resultó el ganador? En su blog nos cuenta los detalles.
genai-sports-commentary es un repositorio que apela a ese fan del deporte que llevamos dentro. Puedes aplicar la IA generativa y LLMs para crear contenidos altamente personalizables para los fans del deporte. En nuestro ejemplo, usaremos un modelo base para generar comentarios basados en datos de fútbol americano creados sintéticamente (en realidad, los datos podrían ser obtenidos directamente de los estadios o de la nube). El modelo generará una variedad de comentarios utilizando diferentes indicaciones que le hayamos dado. Por ejemplo, crear indicaciones en un estilo de escritura particular o en un idioma específico.
real-time-social-media-analytics-with-generative-ai
Aquí os presentamos una solución para el análisis de redes sociales en tiempo real con IA generativa. Este repositorio te ayuda a construir e implementar una arquitectura AWS que puede combinar datos con GenAI utilizando el Servicio Administrado de Amazon para Apache Flink y Amazon Bedrock.
hackernews-converse-api-demo
Este repositorio proporciona ejemplos sobre cómo puedes usar la API Converse de Amazon Bedrock. Uno de los casos que presenta es el resumen de los comentarios de un hilo de Hacker News. Es un ejemplo sencillo, pero te muestra lo fácil que es incorporar IA generativa en tus propias aplicaciones. También puedes consultar la publicación de blog de apoyo, Ahorra tiempo leyendo comentarios de Hacker News usando la API Converse.
genai-asl-avatar-generator
genai-asl-avatar-generator es un repositorio que demuestra el poder de varios servicios de AWS trabajando en conjunto para habilitar una traducción fluida de voz/texto a animaciones de avatar en Lenguaje de Señas Americano (ASL). Consulta la publicación del blog de apoyo, Avatares en Lenguaje de Señas Americano potenciados por IA Generativa, donde Suresh Poopandi explica el proyecto, el código y cómo se integra todo.
serverless-genai-food-analyzer-app
Muchas veces nos preguntáis por el código de las demos que mostramos en nuestros AWS Summits. Pues bien, aquí tenéis esta aplicación que analiza los alimentos usando IA generativa y serverless. Fue la ganadora del AWS Hackathon France 2024 y se presentó como demo en el AWS Summit Paris y de Madrid 2024 (Foodlens). Con Foodlens, simplemente escaneas un código de barras de un producto y obtienes explicaciones de los ingredientes e información nutricional que puedes personalizar con tus alergias o si estás siguiendo una dieta, introducir tus requerimientos. También puedes tomar una foto de los productos y recibir recetas personalizadas basadas en tus preferencias alimenticias. ¿Qué os parece?
Multimedia y Vídeo
youtube-video-summarizer-with-bedrock
youtube-video-summarizer-with-bedrock es un proyecto de de Zied Ben Tahar que utiliza grandes modelos de lenguaje (LLMs) para crear un resumen de videos de YouTube. Zied también ha creado una publicación de blog de apoyo, Resumen de video impulsado por IA con Amazon Bedrock, que proporciona todo lo que necesitas para poner en marcha este proyecto.
video-understanding-solution
video-understanding-solution es una solución para ayudarte a ahorrar tiempo en videos sin tener que ver cada uno. Puedes subir el video y la solución te generar un resumen impulsado por IA. También admite preguntas y respuestas sobre el video como "¿Qué hay de gracioso en el video?", "¿Cómo se ve Jeff Bezos allí?", y "¿Qué camisa lleva?". También puedes buscar videos utilizando la búsqueda semántica, por ejemplo, "Cultura e historia de Amazon". Esta solución extrae información de escenas visuales, audio, textos visibles y celebridades o rostros detectados en el video. Utiliza un LLM que puede entender visualmente y describir los fotogramas del video.
Puedes subir videos a tu bucket de S3 utilizando la consola de AWS, CLI, SDK u otros medios (por ejemplo, a través de AWS Transfer Family). Esta solución activará automáticamente procesos que incluyen llamadas a Amazon Transcribe para la transcripción de voz, llamadas a Amazon Rekognition para extraer los objetos visibles y llamadas a Amazon Bedrock con el modelo Claude 3 para extraer escenas y texto visualmente visible. El LLM utilizado puede realizar VQA (respuestas a preguntas visuales) a partir de imágenes (fotogramas de video), que se utiliza para extraer la escena y el texto. Esta información combinada se utiliza para generar el resumen. Echa un vistazo al README para ver algunos excelentes videos de demostración de esto en acción. Vale la pena explorar esta demo.
amazon-bedrock-audio-summarizer
amazon-bedrock-audio-summarizer proporciona una forma automatizada de transcribir y resumir ficheros de audio utilizando AWS. Utiliza Amazon S3, AWS Lambda, Amazon Transcribe y Amazon Bedrock (con Claude 3 Sonnet) para crear transcripciones de texto y resúmenes a partir de grabaciones de audio que hayamos cargado. Este proyecto apareció en la publicación en el blog del Dr. Werner Vogels, Hackeando nuestro camino hacia mejores reuniones de equipo.
svdxt-sagemaker-huggingface es un repositorio de Gary Stafford, que muestra el campo emergente de la generación de videos a través de Stable Video Diffusion XT (SVT-XT) de Stability AI. Este modelo fundacional es un modelo de difusión que toma una imagen fija como marco de condicionamiento y genera un video a partir de ella. El repositorio proporciona todo lo necesario para comenzar y muestra algunos de los videos que Gary ha creado, ¡una pasada!
Caracterización de Imágenes Satelitales utilizando el taller de Amazon Bedrock
Esta aplicación en Python te permite caracterizar imágenes satelitales utilizando el modelo Anthropic Claude en el entorno de ejecución de Amazon Bedrock.
Series y Publicaciones Destacadas
Infraestructura de IA
Nuestro compañero Guillermo Ruiz ha iniciado una serie de artículos donde explora la 𝗶𝗻𝗳𝗿𝗮𝗲𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗮 𝘆 𝗹𝗼𝘀 𝗰𝗼𝗺𝗽𝗼𝗻𝗲𝗻𝘁𝗲𝘀 𝗰𝗹𝗮𝘃𝗲 𝗽𝗮𝗿𝗮 𝗲𝗻𝘁𝗿𝗲𝗻𝗮𝗿 𝗺𝗼𝗱𝗲𝗹𝗼𝘀 𝗱𝗲 𝗶𝗻𝘁𝗲𝗹𝗶𝗴𝗲𝗻𝗰𝗶𝗮 𝗮𝗿𝘁𝗶𝗳𝗶𝗰𝗶𝗮𝗹 en la nube. Abordará temas como la arquitectura de red con Nitro y protocolos como SRD, así como el uso de servicios avanzados como SageMaker Hyperpod. A medida que avance, profundizará en cada concepto y presentará ejercicios prácticos para poner en acción lo aprendido.
Si alguna vez te has preguntado "¿qué tiene AWS de especial para entrenar mis modelos?", en estos blogs encontrarás la respuesta.
API Converse Amazon BedRock
Dennis Traub nos trae un tutorial para aprender de manera práctica cómo utilizar la nueva API de Converse de Amazon Bedrock para interactuar con modelos de inteligencia artificial generativa en Amazon Bedrock, utilizando el AWS SDK para JavaScript.
Abishek Gupta ha varias publicaciones de obligada lectura en este área. En primer lugar, Bases de datos vectoriales para aplicaciones de inteligencia artificial generativa, donde comparte cómo superar limitaciones utilizando bases de datos vectoriales y RAG. En la siguiente publicación, Cómo usar la Generación Aumentada por Recuperación (RAG) para aplicaciones en Go, Abi nos muestra cómo implementar RAG con LangChain y PostgreSQL usando Go.
João Galego explora dos proyectos de código abierto (RAGmap y RAGxplorer) que ayudan a explorar los embeddings que creamos. Lo tenéis disponible en su publicación Mapeando embeddings: de significado a vectores y viceversa.
Nuestra compañera Elizabeth Fuentes nos introduce un enfoque innovador con 𝗔𝗴𝗲𝗻𝘁𝘀 𝗳𝗼𝗿 𝗔𝗺𝗮𝘇𝗼𝗻 𝗕𝗲𝗱𝗿𝗼𝗰𝗸, 𝗔𝗺𝗮𝘇𝗼𝗻 𝗔𝘂𝗿𝗼𝗿𝗮 𝘃𝗲𝗰𝘁𝗼𝗿𝗶𝘇𝗮𝗱𝗮 𝘆 𝗣𝗼𝘀𝘁𝗴𝗿𝗲𝗦𝗤𝗟 𝗽𝗮𝗿𝗮 𝗔𝗺𝗮𝘇𝗼𝗻 𝗕𝗲𝗱𝗿𝗼𝗰𝗸, proporcionando alternativas avanzadas para el diseño de sistemas serverless y el desarrollo de chatbots inteligentes. Además, dispone de una serie de publicaciones relacionadas con asistentes virtuales que utilizan IA, que no os podéis perder.
Seguimos con un fanático de WordPress, Rio Astamal, quien comparte cómo puedes usar la IA generativa para construir un plugin de WordPress que se integra con Amazon Bedrock, en su blog Creé un plugin de inteligencia artificial para WordPress para que los creadores sean más productivos. Así es cómo lo hice.
¿Buscas una guía sobre cómo construir el mejor RAG para tu producto?
¡Este increíble repositorio https://github.com/NirDiamant/RAG_Techniques enumera todas las mejores prácticas y técnicas!
Por último, si sois usuarios de Hugging Face ahora tenéis disponible AWS Inferentia2. Podéis implementar más de 100,000 modelos en AWS Inferentia2 usando Amazon SageMaker, incluidas arquitecturas populares como BERT y RoBERTa. Los endpoints de inferencia de Hugging Face os facilitarán la implementación. Simplemente eliges tu modelo y seleccionas la opción de instancia Inf2. Para que os hagáis una idea: podemos implementar modelos Llama 3 en:
inf2-small: 2 núcleos, 32 GB de memoria (0.75/hora)
inf2-xlarge: 24 núcleos, 384 GB de memoria (12/hora)
Los endpoints admiten el agrupamiento continuo, el streaming y son compatibles con la API de mensajes del SDK de OpenAI, lo que garantiza una transición fluida para tus aplicaciones GenAI.
Proyectos Abiertos y Repositorios
aws-genai-rfpassistant
aws-genai-rfpassistant es un repositorio que contiene el código e infraestructura como código para un asistente de solicitudes de propuestas (RFP) impulsado por IA generativa, utilizando Amazon Bedrock y AWS Cloud Development Kit (CDK). Esto puede ser muy útil si responder a RFPs es parte de tu trabajo y estás buscando formas de optimizar tu enfoque. La documentación en el repositorio es muy completa. No lo he probado personalmente, pero he participado en la redacción y revisión de RFPs en el pasado, por lo que entiendo el dolor que llevó a la creación de este proyecto.
Self-hosted AI starter kit
Aquí tienes un kit de inicio de IA de código abierto y que puedes desplegar en tu instancia de EC2 (autoalojado).
Esta plantilla de Docker Compose configurará un entorno de desarrollo low-code completamente funcional para construir aplicaciones de IA.
Este kit incluye 4 elementos:
• Una plataforma low-code (n8n) con más de 400 componentes e integraciones de IA
• Ollama, para ejecutar tus modelos localmente
• Un almacén de vectores de alto rendimiento (Qdrant)
• PostgreSQL (¡por supuesto!)
bedrock-embed-web
bedrock-embed-web es un nuevo proyecto de mi colega Olivier Leplus que facilita más la integración de modelos fundacionales de Amazon Bedrock dentro de una interfaz de chat en tus aplicaciones web.
Vídeos del Mes
Usando Amazon Q Developer para escribir código para Observabilidad
Ricardo Ferreira nos muestra en este vídeo cómo puedes utilizar herramientas como Amazon Q Developer para ayudarte a integrar OpenTelemetry en tus aplicaciones. En este video, Ricardo muestra cómo utilizar Amazon Q Developer para instrumentar un microservicio escrito en Go para OpenTelemetry.
AI Ejecutando Su Propio Código: Intérprete de Código Agente
Mi compañero Mike Chambers nos muestra en este video cómo utilizar el intérprete de código agente de Amazon Bedrock para permitir que los modelos de IA realicen tareas complejas de matemáticas y análisis de datos. Mike demuestra cómo crear un agente utilizando Claude 3 Sonnet que puede escribir y ejecutar código Python en un entorno sandbox seguro.
El Mundo de Rust
Darko Mesaros nos presenta una forma práctica de invocar modelos en Amazon Bedrock. Escrito en Rust, podéis encontrar el código en su Github o ¡podéis verlo en Twitch!
¿Sabías que Rust 🦀 no tiene una implementación tan ordenada como LangChain?, Darko se ha embarcado en la misión de solucionar este problema y ha creado en Bedrust una función de CHAT! ¡Ya puedes tener una conversación con cualquier modelo en ejecución en Amazon Bedrock!
Joshua Mo nos muestra cómo utilizar AWS Bedrock con Rust, donde despliega una API que puede recibir un prompt JSON de una solicitud HTTP y devolver una respuesta de AWS Bedrock que se puede transmitir o devolver como una respuesta completa.
Dr. Werner Vogels nos presenta una CLI sencilla en Rust llamada Distill, que resume y extrae detalles importantes de nuestras reuniones diarias. Después de compilar desde el código fuente, simplemente pasa el archivo multimedia a Distill CLI y selecciona el bucket de S3 donde deseas almacenar el archivo. Hoy en día, Distill admite la salida de resúmenes como documentos de Word, archivos de texto e impresión directa en la terminal (de forma predeterminada). Encontrarás que es fácilmente extensible: mi equipo (OCTO) ya lo está utilizando para exportar resúmenes de nuestras reuniones de equipo directamente a Slack (y trabajando en el soporte para Markdown).
Y hasta aquí nuestra edición especial de IA. Esperamos que el contenido os haya sido útil. Nos vemos el mes que viene con una nueva edición. Hasta entonces, Happy coding!