jueves, 2 de enero de 2025

Retrieval Augmented Generation (RAG)

RAG es un enfoque en el campo de la inteligencia artificial que combina modelos de recuperación de información con modelos generativos de lenguaje para mejorar la precisión y la relevancia de las respuestas generadas. Este enfoque permite que los modelos generativos accedan a información externa en tiempo real, lo que es útil para manejar tareas que requieren datos actualizados o específicos, como responder preguntas basadas en documentos o ejecutar búsquedas dinámicas.





¿Cómo funciona RAG?

  1. Componente de Recuperación (Retriever):

    • Identifica información relevante a partir de una base de datos, corpus de texto, o fuente externa.
    • Métodos comunes:
      • Sistemas tradicionales: TF-IDF, BM25.
      • Modelos de embeddings: Dense retrievers como DPR (Dense Passage Retrieval) que utilizan vectores para comparar similitudes semánticas.
  2. Componente Generativo (Generator):

    • Toma los documentos recuperados y genera una respuesta basada en la información contenida en ellos.
    • Modelos típicos: GPT, T5, o BART.
  3. Pipeline completo:

    • Dado un input (como una pregunta), el retriever busca información relevante, y el generator usa esta información para crear una respuesta natural y contextual.


Ejemplos de uso de RAG

  1. Chatbots empresariales:

    • Responden preguntas específicas sobre documentos de política interna, bases de conocimiento o contratos legales.
    • Ejemplo: Un chatbot que accede a manuales de empleados para responder preguntas sobre beneficios.
  2. Sistemas de búsqueda mejorados:

    • Motores de búsqueda que combinan la recuperación con respuestas explicativas.
    • Ejemplo: Un motor de búsqueda académico que genera un resumen de los papers relevantes.
  3. Asistentes de soporte técnico:

    • Generan instrucciones personalizadas basadas en guías técnicas.
    • Ejemplo: Un asistente que ayuda a resolver problemas técnicos con base en manuales de productos.
  4. Generación de contenido personalizado:

    • Utilizado para redactar informes o resúmenes basados en datos recopilados.
    • Ejemplo: Herramientas que generan reportes financieros combinando datos recientes.


Ejemplos de modelos RAG existentes

  1. Dense Passage Retrieval (DPR):

    • Combina embeddings densos con modelos generativos.
    • Ejemplo de uso: Enriquecer respuestas en asistentes virtuales.
  2. Google Bard y OpenAI ChatGPT con Plugins:

    • Usan fuentes externas en tiempo real para recuperar información y generar respuestas.
  3. RAG Framework (Meta AI):

    • Combina retrieval y generación utilizando modelos como BART para respuestas basadas en contexto.
  4. Haystack (de deepset):

    • Framework modular de código abierto para implementar sistemas de preguntas y respuestas basados en RAG.


Recursos para desarrollar un sistema RAG

    1. Bibliotecas y herramientas
  • Haystack: Framework que soporta RAG con múltiples backend retrievers y generadores.
    GitHub
  • LangChain: Facilita la integración de RAG para aplicaciones conversacionales.
    GitHub
  • Pinecone: Base de datos vectorial para indexar y buscar embeddings.
  • Weaviate: Base de datos para búsquedas semánticas.
    2. Modelos preentrenados
  • DPR (Dense Passage Retrieval): Implementación de Facebook AI.
  • T5 y BART: Modelos generativos efectivos para tareas de generación de texto.
  • OpenAI GPT API: Compatible con integración RAG mediante plugins.
    3. Datasets
  • Natural Questions (NQ): Preguntas reales de usuarios con respuestas basadas en documentos.
    Google Dataset
  • SQuAD (Stanford Question Answering Dataset): Dataset clásico para preguntas y respuestas.
  • MS MARCO: Dataset para recuperación y generación de respuestas a partir de texto.
    4. Infraestructura
  • Bases de datos vectoriales:
    • Pinecone, Milvus, Weaviate.
  • Frameworks de aprendizaje profundo:
    • PyTorch, TensorFlow.
  • API de acceso a modelos:
    • OpenAI API, Hugging Face Transformers.
    5. Recursos educativos



Large Action Models (LAMs)

Los Large Action Models (LAMs) son un concepto emergente relacionado con la inteligencia artificial, que amplía las capacidades de los modelos de lenguaje (como GPT) hacia la toma de decisiones y la ejecución de acciones en entornos dinámicos y complejos. Mientras que los modelos de lenguaje generan texto, los LAMs están diseñados para realizar acciones concretas, interactuar con sistemas o ejecutar tareas en el mundo real. Esto los hace ideales para aplicaciones en robótica, sistemas autónomos, juegos, y otras áreas donde la toma de decisiones automatizada es clave.


Características principales de los LAMs

  1. Generación de Acciones: En lugar de producir solo texto, generan comandos o secuencias de acciones ejecutables.
  2. Entrenamiento basado en interacción: Se entrenan en entornos simulados o reales donde pueden experimentar las consecuencias de sus decisiones.
  3. Adaptabilidad: Son capaces de aprender y ajustarse a dinámicas cambiantes en su entorno.
  4. Integración multimodal: Pueden combinar texto, visión, movimiento, y otros datos para realizar tareas complejas.

Ejemplos de LAMs

  1. AlphaGo (DeepMind):
    • Desarrollado para jugar al juego de Go.
    • Combina aprendizaje profundo y aprendizaje por refuerzo para decidir movimientos en el tablero.
  2. Tesla FSD (Full Self Driving):
    • Utiliza modelos para tomar decisiones de manejo en tiempo real, como frenar, girar o cambiar de carril.
  3. Codex (OpenAI):
    • Aunque no es un LAM puro, puede considerarse precursor en tareas programáticas, ya que genera código para ejecutar funciones específicas.
  4. ControlNet (para robótica):
    • Utiliza instrucciones textuales para controlar robots físicos o simulados.

Recursos disponibles para desarrollar LAMs

Desarrollar un LAM requiere herramientas avanzadas y acceso a datos especializados. Aquí tienes una lista de recursos clave:

1. Plataformas de desarrollo
  • OpenAI Gym / PettingZoo: Entornos para aprendizaje por refuerzo.
  • Unity ML-Agents: Simulador de entornos 3D interactivos.
  • MuJoCo: Simulador físico utilizado para entrenar modelos en tareas motoras.
2. Modelos base
  • Transformers: Modelos como GPT, BERT, y variantes para usar como base.
  • Reinforcement Learning Algorithms: Algoritmos como DQN, PPO, o A3C.
3. Datasets
  • D4RL (Datasets for Reinforcement Learning): Conjunto de datos para aprendizaje por refuerzo offline.
  • Meta-World: Conjunto de entornos simulados para tareas de robótica.
  • OpenAI CLIP datasets: Para modelos que integran lenguaje y visión.
4. Infraestructura
  • GPUs y TPUs: Para entrenar modelos grandes.
  • Frameworks como PyTorch y TensorFlow: Implementación de modelos y entrenamiento.
  • Cloud Services (AWS, Azure, Google Cloud): Escalabilidad para entrenar modelos.
5. Bibliografía y recursos educativos
  • Libros:
    • "Reinforcement Learning: An Introduction" de Sutton y Barto.
    • "Deep Reinforcement Learning Hands-On" de Maxim Lapan.
  • Cursos:
    • "Deep Learning Specialization" en Coursera.
    • "CS294: Deep Reinforcement Learning" de UC Berkeley (disponible en YouTube).
  • Blogs y Papers:
6. Comunidades y foros
  • Reddit: Subreddits como r/MachineLearning y r/ControlTheory.
  • GitHub: Repositorios de código abierto para aprendizaje por refuerzo.
  • Discord y Slack: Comunidades como ML Collective.

Asistentes y Aplicaciones IA

 A continuación mencionamos las aplicacioens de IA más conocidas hasta el momento. 


Asistentes Personales y Compañeros Digitales

Suelen responder preguntas, administrar calendarios, controlar dispositivos inteligentes. 

Las más conocidas son las que vienen incorporadas en los celulares y sistemas operativos:

  • Siri
  • Alexa
  • Google Assistant
Compañeros digitales más avanzados son:
  • Character.AI: Diseña compañeros virtuales. Ideal para entretenimiento y simulaciones específicas.
  • Replika: permite generar un Avatar, un amigo virtual que ayuda con apoyo emocional y social. Ofrece conversaciones relajadas, ejercicios de bienestar, y escucha activa.
  • Woebot: Terapeuta virtual basado en IA para mejorar la salud mental.

Suplantación de Identidad

Deepfakes (video e imágenes): crear videos falsos en los que alguien parece decir o hacer algo que nunca ocurrió.
Voice Synthesis: replicar patrones vocales a partir de grabaciones existentes.
Text Spoofing: imitar el estilo de escritura de una persona.
Image Spoofing: manipular o crear de imágenes realistas con IA.

Herramientas para clonarte en video:
  • Synthesia: Permite crear un avatar digital a partir de tu imagen y voz para generar videos con texto como entrada.
  • Avatarify: Software de código abierto que te permite controlar un avatar en tiempo real usando tus expresiones faciales.
  • DeepBrain AI: Crea un avatar hiperrealista a partir de un video tuyo, que luego puedes usar para generar contenido con texto o guiones.
  • HeyGen (antes Movio): Permite crear videos con avatares personalizados que incluyen movimientos faciales y sincronización de labios.
  • D-ID: Ofrece la posibilidad de crear videos a partir de una foto estática de ti mismo combinada con texto o audio.


Herramientas para clonarte tu voz:

  • ElevenLabs: Clona tu voz con alta precisión para generar audios personalizados.
  • Respeecher: Genera una clonación perfecta de tu voz para contenido creativo.


    Chatbots

    Inicialmente surgieron para brindar servicios de atención al cliente:
    • Zendesk Chat
    • Intercom
    • Drift

    Frameworks para armar chatbots más personalizados:
  • Rasa: Open-source y personalizable.
  • Microsoft Bot Framework: Para integrar con Azure y otras plataformas.
  • Dialogflow: Plataforma de Google Cloud para crear chatbots basados en IA.
  •  

    Modelos de LLM :

    • Modelos de OpenAI (GPT-4, GPT-3.5, etc.): Disponibles a través de APIs comerciales.
    • Hugging Face Transformers: Modelos open-source como BERT, GPT-Neo, LLaMA o Falcon que puedes entrenar o afinar localmente.
    • Google Vertex AI: Ofrece acceso a modelos de PaLM y otros.
    • Azure OpenAI Service: Acceso a modelos de OpenAI con integración empresarial.
    • Anthropic Claude: Otra opción para modelos de lenguaje avanzados.

    Para estructurar datos:
    • Pipelines ETL: Extraer, transformar y cargar datos (Apache Spark, Pandas).
    • Herramientas de indexación: para convertir los datos en un formato accesible.
      • LangChain: Para conectar datos y LLMs de manera estructurada.
      • Haystack: Framework para construir pipelines de NLP basados en búsqueda.
      • Pinecone, Weaviate, o Milvus: Bases de datos vectoriales para búsquedas semánticas.

    Automatización de Tareas

    Se utilizan para automatizar flujos de trabajo e integrar aplicaciones.
    • ZapierIdeal para usuarios no técnicos que necesitan automatizaciones simples y rápidas. Fácil de usar y buen soporte. Menos flexible para flujos complejos. Limitado para manipulación avanzada de datos. Ideal para casos simples como enviar un correo tras recibir un formulario.
    • Make: plataforma visual, flexible y escalable para automatizar tareas y workflows. Orientado a usuarios con cierta experiencia técnica que buscan más flexibilidad. Integraciones con muchas APIs y capacidad para personalizaciones avanzadas. Curva de aprendizaje más pronunciada. Menos integraciones predefinidas comparado con Zapier. Automatizaciones complejas que requieren lógica condicional o transformaciones avanzadas de datos.
    • Microsoft Power Automate: Diseñado para empresas que ya usan el ecosistema Microsoft 365 y necesitan integración profunda con estas herramientas. Compatible con aplicaciones de Microsoft (Excel, Teams, SharePoint, etc.). Soporte para RPA (Automatización Robótica de Procesos) para tareas repetitivas en sistemas antiguos. Integraciones con apps externas limitadas en comparación con Zapier o Make. Ideal para automatizaciones empresariales dentro del ecosistema de Microsoft.

    Procesamiento de Lenguaje Natural (NLP)

    Análisis de texto, generación de contenido, corrección gramatical.
    • Grammarly
    • Jasper
    • Copy.ai

    Análisis de Datos e Inteligencia de Negocios

    Visualización de datos, generación de reportes, consultas en lenguaje natural.
    • Tableau con Ask Data
    • ThoughtSpot.

    Educación y Aprendizaje

    Personalización del aprendizaje, generación de ejercicios, retroalimentación.
    • Duolingo
    • Khan Academy con AI
    • Quizlet

    Creación de Imágenes

    Crear ilustraciones, gráficos, renders, o imágenes a partir de texto.
    • DALL·E
    • MidJourney
    • Stable Diffusion
    • ChatGPT Plus (se conecta con DALL-E): Puedes describir con palabras lo que necesitas y DALL·E creará una imagen basada en esa descripción.

    Creación de Audio

    Composición de música, creación de narraciones, síntesis de voz.
    • Descript
    • AIVA
    • Murf.ai.

    Generación de Textos

    Escritura de artículos, copywriting, generación de diálogos o guiones, traducciones.
    • ChatGPT
    • Jasper
    • Copy.ai

    Generación de Video


    Edición de video asistida, creación de videos a partir de texto, deepfake.
    • Runway
    • Synthesia
    • Pictory

    Generación de Modelos 3D

    Creación de modelos 3D a partir de imágenes o descripciones.

    • NVIDIA Omniverse
    • Kaedim

    Edición y Mejora Creativa

    Mejora automática de fotos, sugerencias de diseño, ajustes asistidos.
    • Canva con Magic Write
    • Adobe Sensei.

    Generación Multimodal (Texto a Imagen, Audio, Video, etc.)

    Transformar texto en múltiples formatos creativos como imágenes, videos o audios.

    • Runway Gen-2
    • Hugging Face (text-to-image models)

    Analizar Videos y Resumir Ideas

    • Otter.ai: Transcribe automáticamente el audio de un video y utiliza NLP para generar resúmenes de las ideas principales. Ideal para reuniones o conferencias. Compatible con Zoom, Google Meet y videos subidos directamente.
    • Derscript: Transcripción automática y edición basada en texto; permite identificar ideas clave y eliminar fragmentos irrelevantes. Integra edición de video y herramientas de resumen.
    • Trint: Transcribe videos y genera resúmenes o puntos clave. También permite la edición colaborativa del contenido transcrito. Muy útil para periodistas y creadores de contenido.
    • Wisecut: Transcribe y genera resúmenes automáticos de videos largos, eliminando silencios y pausas. Fácil de usar, especialmente para ediciones rápidas.
    • Rephrase.ai: Utiliza inteligencia artificial para resumir ideas clave de videos. También puede convertir texto en videos personalizados. Compatible con varios idiomas y plataformas.
    • Video Insights de IBM Watson Media:  Extrae automáticamente resúmenes e ideas clave de contenido de video mediante análisis de lenguaje y reconocimiento de imágenes. Potente herramienta empresarial con análisis avanzado.
    • InVideo: Transcribe audio de video y permite resaltar y extraer puntos clave. Incluye opciones de edición adicional y mejora visual.
    • Microsoft Stream: Genera transcripciones automáticas de videos y permite buscar palabras clave dentro del contenido transcrito. Integrado en la suite de Microsoft 365, útil para uso corporativo.

    Aplicaciones de Salud

    Diagnósticos iniciales, terapia conversacional, seguimiento de salud.
    • Ada Health
    • Woebot
    • Babylon Health

    Gaming e IA Narrativa
    Generación de historias, personajes interactivos.
    • AI Dungeon
    • Replica.

    Gestión y Productividad

    Resúmenes automáticos, toma de notas, planificación.
    • Notion AI
    • Otter.ai: Transcribe automáticamente el audio de un video y utiliza NLP para generar resúmenes de las ideas principales. Ideal para reuniones o conferencias.

    E-commerce y Recomendaciones

    Personalización de productos, chatbots para ventas.
    • Shopify con AI
    • Amazon Personalize

    Otras Aplicaciones

    En esta categoría entran algunas Apps recomendadas fuera de serie.

    • Simple Sing: My Singing App - Adapta cualquier cansión a tu tono de voz para poder cantarla sin problemas.

    Plataformas

    Estas son las plataformas más conocidas que ofrecen generación de imágenes mediante inteligencia artificial, organizadas por su popularidad y enfoque:

    MidJourney
    • Descripción: Plataforma muy reconocida por su capacidad para crear imágenes artísticas y visualmente impresionantes a partir de texto.
    • Acceso: Funciona principalmente a través de Discord.
    • Usos Destacados: Arte conceptual, diseño gráfico, creación de portadas de libros.
    DALL·E 2 (de OpenAI)
    • Descripción: Creado por OpenAI, genera imágenes detalladas a partir de texto y permite edición en las imágenes generadas.
    • Acceso: Directamente desde OpenAI o a través de la integración con ChatGPT Plus.
    • Usos Destacados: Imágenes conceptuales, ilustraciones personalizadas.
    Stable Diffusion
    • Descripción: Una plataforma de código abierto para generación de imágenes, que permite personalizaciones avanzadas.
    • Acceso: A través de interfaces como DreamStudio, Automatic1111 o aplicaciones independientes.
    • Usos Destacados: Creación de imágenes únicas, diseño técnico, experimentación.
    Runway ML
    • Descripción: Plataforma multimodal que no solo genera imágenes, sino también videos, permitiendo edición y creación avanzada.
    • Acceso: Basado en navegador; ideal para creadores multimedia.
    • Usos Destacados: Generación de videos, prototipos creativos, efectos visuales.
    Artbreeder
    • Descripción: Especializado en modificar y generar retratos o imágenes estilizadas mediante IA.
    • Acceso: Plataforma en línea con herramientas simples para usuarios principiantes.
    • Usos Destacados: Diseño de personajes, retratos, arte conceptual.
    DeepAI
    • Descripción: Proporciona herramientas básicas para la generación de imágenes, enfocándose en simplicidad y resultados rápidos.
    • Acceso: Basado en navegador; ideal para uso casual.
    • Usos Destacados: Generación rápida de conceptos, bocetos básicos.
    NightCafe Studio
    • Descripción: Enfocado en la creación de obras de arte mediante diferentes algoritmos de IA.
    • Acceso: Plataforma en línea con opciones gratuitas y de pago.
    • Usos Destacados: Arte digital, murales, diseño decorativo.
    Fotor (AI Art Generator)
    • Descripción: Herramienta simple y amigable para usuarios no técnicos, con un enfoque en diseño y marketing.
    • Acceso: En línea y como app móvil.
    • Usos Destacados: Publicidad, diseño gráfico rápido.
    Craiyon (antes DALL·E Mini)
    • Descripción: Versión simplificada de DALL·E, accesible y gratuita, aunque con resultados más básicos.
    • Acceso: Basado en navegador.
    • Usos Destacados: Experimentación casual.

    Factores para Elegir una Plataforma

    • Calidad de las imágenes: MidJourney y DALL·E destacan por su realismo y creatividad.
    • Facilidad de uso: NightCafe y Fotor son ideales para principiantes.
    • Costo: Stable Diffusion (gratuito en local) y Craiyon son opciones económicas.
    • Flexibilidad: Stable Diffusion y Runway ML son muy personalizables.