Tema 1: Frameworks y Cloud
Conceptos de la Nube
La computación en la nube permite acceder a recursos computacionales (servidores, almacenamiento, redes, software) a través de internet, bajo demanda y con pago por uso. Elimina la necesidad de infraestructura física propia y permite escalabilidad instantánea.
Principales proveedores Cloud
- AWS (Amazon Web Services): El proveedor más grande del mercado. Ofrece más de 200 servicios: EC2 (cómputo), S3 (almacenamiento), SageMaker (ML), Lambda (serverless), etc.
- Azure (Microsoft): Fuerte integración con productos Microsoft. Servicios como Azure OpenAI Service, Azure ML, Azure Cognitive Services.
- GCP (Google Cloud Platform): Especializado en IA y datos. Vertex AI, BigQuery, TPUs exclusivas para modelos de ML.
- Alibaba Cloud: Líder en Asia. Fuerte en comercio electrónico y datos a gran escala.
Modelos de servicio en la nube
- IaaS (Infrastructure as a Service): Infraestructura virtualizada. El usuario gestiona SO, middleware y aplicaciones. Ejemplo: EC2, Azure VMs.
- PaaS (Platform as a Service): Plataforma completa para desarrollo. El proveedor gestiona la infraestructura subyacente. Ejemplo: Google App Engine, Azure App Service.
- SaaS (Software as a Service): Software listo para usar vía navegador. Ejemplo: Gmail, Microsoft 365, Salesforce.
Modelos de despliegue cloud
- Nube Pública: Recursos compartidos gestionados por el proveedor. Mayor escalabilidad y menor coste.
- Nube Privada: Infraestructura exclusiva para una organización. Mayor control y seguridad.
- Nube Híbrida: Combinación de pública y privada. Flexibilidad para gestionar cargas de trabajo sensibles localmente.
- Nube Comunitaria: Compartida por organizaciones con objetivos comunes (sectores regulados como salud o finanzas).
Virtualización y contenedores
La virtualización permite ejecutar múltiples sistemas operativos en un único servidor físico mediante hipervisores (VMware, Hyper-V, KVM). Los contenedores (Docker) son más ligeros: comparten el kernel del SO del host, ofreciendo portabilidad y arranque rápido.
- Docker: Empaqueta aplicaciones con todas sus dependencias en contenedores portables.
- Kubernetes: Orquestador de contenedores. Automatiza despliegue, escalado y gestión de contenedores en clústeres. Garantiza alta disponibilidad y balanceo de carga.
Edge Computing
El edge computing lleva el procesamiento de datos cerca de donde se generan (dispositivos IoT, smartphones, sensores) en lugar de enviarlo todo a la nube central. Ventajas: menor latencia, reducción de ancho de banda, mayor privacidad. Aplicaciones: vehículos autónomos, ciudades inteligentes, industria 4.0.
Tema 2: Infraestructura y Hardware para IA
CPU, GPU y TPU
- CPU (Central Processing Unit): Procesador de propósito general con pocos núcleos potentes. Ideal para tareas secuenciales. Limitada para entrenamiento de modelos grandes.
- GPU (Graphics Processing Unit): Miles de núcleos paralelos. Ideal para operaciones matriciales del deep learning. NVIDIA (CUDA) domina el mercado IA. Modelos: A100, H100, RTX series.
- TPU (Tensor Processing Unit): ASICs diseñados por Google específicamente para operaciones tensoriales. Extremadamente eficientes para TensorFlow y JAX. Disponibles en GCP.
Tipos de memoria
- DDR (Double Data Rate): RAM de propósito general. Rápida pero con ancho de banda limitado para IA.
- HBM (High Bandwidth Memory): Memoria de alta capacidad integrada en GPUs de alto rendimiento (A100, H100). Ancho de banda muy superior a DDR.
- SSD (Solid State Drive): Almacenamiento rápido para datasets. NVMe ofrece velocidades de lectura de hasta 7 GB/s.
- HDD: Almacenamiento masivo y económico para datos fríos (archivos, backups).
Consumo energético y sostenibilidad
El entrenamiento de modelos grandes como GPT-3 consume millones de kWh. El impacto de carbono es equivalente a varios vuelos transatlánticos. Tendencias para reducir el impacto:
- Uso de energías renovables en data centers.
- Destilación de modelos (modelos más pequeños y eficientes).
- Cuantización y pruning de redes neuronales.
- Reutilización de calor residual de los servidores.
Protección de datos y privacidad
- Federated Learning: Entrenamiento distribuido donde los datos nunca salen del dispositivo local.
- Differential Privacy: Añade ruido estadístico para proteger datos individuales en conjuntos de entrenamiento.
- Cifrado homomórfico: Permite realizar cómputos sobre datos cifrados sin descifrarlos.
Tema 3: Aplicaciones NLP en la vida real
Análisis de sentimiento
El análisis de sentimiento determina la polaridad emocional (positivo, negativo, neutro) de un texto. Aplicaciones: monitorización de marca, análisis de reseñas, detección de crisis en redes sociales. Modelos: BERT fine-tuned, RoBERTa, modelos específicos de dominio.
T5 y Tokenización
T5 (Text-to-Text Transfer Transformer) convierte todas las tareas NLP en un problema de texto a texto. Tokenización: proceso de dividir el texto en unidades procesables. T5 usa SentencePiece como tokenizador, permitiendo vocabularios multilingües eficientes.
Traducción automática
Los sistemas modernos de traducción automática neuronal (NMT) usan arquitecturas encoder-decoder con atención. Google Translate, DeepL y Meta's NLLB (No Language Left Behind, con soporte para 200 idiomas) representan el estado del arte.
BART y Sumarización
BART (Bidirectional and Auto-Regressive Transformers) es un modelo de denoising pre-entrenado para generación de texto. Combina el encoder bidireccional de BERT con el decoder autoregresivo de GPT. Ideal para sumarización: dado un documento largo, genera un resumen coherente.
GPT y OpenAI
La familia GPT (Generative Pre-trained Transformer) de OpenAI ha evolucionado desde GPT-1 (2018) hasta GPT-4 (2023). GPT-3 con 175B parámetros demostró capacidades emergentes sorprendentes. GPT-4 es multimodal (texto e imágenes) y muestra razonamiento más complejo.
Embeddings y búsqueda semántica
Los embeddings permiten la búsqueda semántica: en lugar de buscar por palabras clave exactas, se busca por similitud de significado. Aplicaciones: motores de búsqueda inteligentes, sistemas de recomendación, RAG (Retrieval-Augmented Generation).
ChatGPT y arquitecturas de chat
ChatGPT combina GPT con RLHF (Reinforcement Learning from Human Feedback) para alinear el modelo con preferencias humanas. La arquitectura de chat mantiene un historial de conversación para coherencia contextual. InstructGPT demostró que el fine-tuning con RLHF mejora significativamente la utilidad y seguridad.
Prompting
- Zero-shot prompting: El modelo responde sin ejemplos previos.
- Few-shot prompting: Se proporcionan 2-5 ejemplos antes de la tarea.
- Chain-of-thought (CoT): Se pide al modelo que razone paso a paso.
- Prompt engineering: Diseño cuidadoso de instrucciones para maximizar la calidad de la respuesta.
Voz y texto a imagen
ASR (Automatic Speech Recognition): Convierte audio en texto. Modelos como Whisper de OpenAI ofrecen transcripción multilingüe robusta. TTS (Text-to-Speech): Genera voz sintética a partir de texto. Texto a imagen: DALL-E, Midjourney y Stable Diffusion generan imágenes a partir de descripciones textuales.
Tema 4: Futuro del NLP
Modelos de lenguaje multimodal
Los modelos multimodales integran múltiples modalidades: texto, imagen, audio, video. GPT-4V, Gemini (Google) y Claude (Anthropic) son ejemplos de modelos multimodales de última generación. Permiten razonamiento visual, descripción de imágenes, análisis de documentos complejos.
NLP para idiomas con pocos recursos
La mayoría de los modelos NLP están entrenados principalmente en inglés. Iniciativas como mBERT (BERT multilingüe), XLM-R y NLLB buscan extender capacidades a más de 100 idiomas, especialmente lenguas con pocos recursos digitales.
Modelos multilingües
Los modelos multilingües aprenden representaciones compartidas entre idiomas, permitiendo transferencia de conocimiento cruzada. Un modelo entrenado en inglés puede aplicar conocimientos a otras lenguas con menos datos de entrenamiento.
Tema 5: Extensión de conceptos
Semantic Kernel
Semantic Kernel (SK) es un SDK de código abierto creado por Microsoft (lanzado en marzo de 2023) que actúa como orquestador para integrar modelos de lenguaje en aplicaciones empresariales. Soporta lenguajes C#, Java y Python.
Instalación:
pip install semantic-kernelArquitectura de Semantic Kernel
SK se estructura en dos grandes bloques:
- Servicios: conectores a modelos de lenguaje (OpenAI, Azure OpenAI, Hugging Face) y servicios externos.
- Plugins: funciones reutilizables que el kernel puede invocar. Pueden ser funciones semánticas (prompts) o nativas (código).
Plugins nativos incluidos
- TimePlugin: obtiene fecha y hora actual.
- MathPlugin: operaciones matemáticas básicas.
- FileIOPlugin: lectura y escritura de ficheros.
- HttpPlugin: peticiones HTTP a APIs externas.
- TextMemoryPlugin: almacenamiento y recuperación de memoria semántica.
- WaitPlugin: introduce pausas en el flujo de ejecución.
Planners (Planificadores)
Los planners son el componente central de SK. Permiten que el modelo genere un plan de ejecución automáticamente a partir de un objetivo en lenguaje natural, encadenando plugins según sea necesario. Esto se denomina meta-prompting: el propio LLM decide qué funciones invocar y en qué orden.
Memoria y Vector Stores soportados
SK soporta memoria a corto y largo plazo mediante bases de datos vectoriales:
- Chroma, DuckDB, SQLite
- Pinecone, Azure Cosmos DB, Azure PostgreSQL
Document Loaders
SK puede cargar documentos en formatos: PDF, TXT, Word, MSGraph.
Secuencias y pipelines
SK organiza el flujo de trabajo como pipelines o cadenas donde las funciones comparten datos entre sí. Una función puede tomar la salida de la anterior como entrada, manteniendo un contexto compartido a lo largo del pipeline.
LangChain
LangChain es un framework open-source para construir aplicaciones con LLMs, lanzado en octubre de 2022 por Harrison Chase y más de 2.200 contribuidores. Licencia MIT. Soporta Python, Java, JavaScript y TypeScript. Cuenta con más de 11.800 forks en GitHub.
Ecosistema LangChain
- LangChain Core: el framework principal con cadenas, agentes y memoria.
- LangSmith: plataforma DevOps para monitorización, depuración y evaluación de aplicaciones LLM.
- LangServe: permite desplegar cadenas LangChain como APIs REST fácilmente.
Orquestación — componentes clave
- Cadenas (Chains): secuencias de llamadas a LLMs y herramientas.
- Memoria: historial conversacional, corto y largo plazo via vectores.
- Agentes: el LLM decide qué herramienta usar en cada paso.
- Input/Output parsers: estructuran las entradas y salidas del modelo.
Tipos de cadenas
- LLM Chain: prompt → LLM → salida. La más básica.
- Sequential Chain: encadena varias LLM Chains en serie.
- Router Chain: enruta la consulta a la cadena más apropiada según el contexto.
- Retrieval QA Chain: combina búsqueda en vectorstore con generación (base del patrón RAG).
Document Loaders (más de 100 formatos)
LangChain puede cargar documentos desde: HTML, PDF, código fuente, JSON, Word, CSV, Markdown, PowerPoint, Amazon S3, YouTube (transcripciones), arXiv, y muchos más.
Herramientas (Tools) disponibles
- Alpha Vantage (datos financieros), Apify (web scraping)
- ArXiv (papers científicos), Wikipedia
- AWS Lambda, Shell (ejecución de comandos)
- Bearly Code Interpreter (ejecución de código Python)
- Bing Search, Google Search
Vector Stores soportados (más de 50)
Chroma, Pinecone, Weaviate, FAISS, Qdrant, Milvus, Redis, Elasticsearch, y más de 40 adicionales.
Memoria
LangChain soporta memoria a corto y largo plazo mediante bases de datos vectoriales, permitiendo recuperar conversaciones o documentos relevantes del pasado.
LangChain vs Semantic Kernel — tabla comparativa completa
| Característica | LangChain | Semantic Kernel |
|---|---|---|
| Lanzamiento | Octubre 2022 | Marzo 2023 |
| Creador | Harrison Chase + 2.200 contribuidores | Microsoft + 200 contribuidores |
| Lenguajes | Python, Java, JS, TypeScript | C#, Java, Python |
| Licencia | MIT | MIT |
| GitHub forks | 11.800 | 2.500 |
| Orquestación | Cadenas, memoria, input/output, datos | Plugins + Planners + Agente (meta-prompting) |
| Memoria | Corto y largo plazo via vectores | Corto y largo plazo via vectores |
| Document loaders | +100 (HTML, PDF, JSON, Word, CSV, YouTube, arXiv, S3…) | PDF, TXT, Word, MSGraph |
| Vector stores | +50 (Chroma, Pinecone, FAISS, Weaviate…) | Chroma, DuckDB, SQLite, Pinecone, Azure Cosmos DB, Azure PostgreSQL |
| Secuencias | Sequential / Router / Retrieval QA / LLM Chain | Pipeline / cadena con datos compartidos entre funciones |
| DevOps / Deploy | LangSmith (monitorización) + LangServe (REST API) | — |
| Integración Azure | Buena | Nativa (Azure OpenAI) |
| Enfoque | Comunidad open-source, amplio ecosistema | Empresarial, Microsoft stack |
Modelos open-source vs privados
- Open-source: Llama (Meta), Mistral, Falcon, Phi. Ventajas: personalización, privacidad de datos, sin costes de API. Desventajas: requieren infraestructura propia.
- Privados: GPT-4 (OpenAI), Claude (Anthropic), Gemini (Google). Ventajas: rendimiento superior, fácil acceso vía API. Desventajas: coste, dependencia del proveedor, privacidad de datos.
Azure OpenAI Service
Azure OpenAI Service permite acceder a los modelos de OpenAI (GPT-4, DALL-E, Whisper, Embeddings) desde la infraestructura de Azure, con garantías de cumplimiento normativo, privacidad de datos y SLAs empresariales. Especialmente relevante para organizaciones con regulaciones de datos estrictas (sector financiero, salud).
Mixture of Experts (MoE)
Mixture of Experts (MoE) es una arquitectura de red neuronal que divide el modelo en múltiples subredes especializadas llamadas "expertos". Para cada token de entrada, solo se activa un subconjunto de expertos, haciendo el modelo esparsamente activado.
Cómo funciona MoE
- Expertos: subredes independientes (normalmente capas FFN — Feed-Forward Networks) especializadas en diferentes tipos de datos o tareas.
- Router / Gating Network: red pequeña que, para cada token, calcula qué expertos deben activarse. Generalmente selecciona los top-K expertos (típicamente K=1 o K=2) de entre todos los disponibles.
- Activación dispersa (Sparse Activation): solo los K expertos seleccionados procesan cada token. El resto queda inactivo para ese token específico.
- Combinación de salidas: las salidas de los expertos activos se combinan ponderadas según las probabilidades asignadas por el router.
MoE vs Modelos Densos
| Aspecto | Modelo Denso | Modelo MoE |
|---|---|---|
| Parámetros totales | Todos activos por token | Muchos más, pero pocos activos por token |
| Coste inferencia | Proporcional a todos los parámetros | Solo los expertos activados (mucho menor) |
| Coste entrenamiento | Moderado | Mayor (comunicación entre expertos) |
| Capacidad | Limitada por parámetros activos | Alta (muchos expertos especializados) |
| Memoria RAM/VRAM | Proporcional | Alta (todos los pesos deben estar cargados) |
Ventajas de MoE
- Eficiencia computacional en inferencia: se procesan muchos menos parámetros por token → mayor velocidad con el mismo presupuesto de cómputo.
- Mayor capacidad de representación: al tener más parámetros totales, puede aprender representaciones más ricas y especializadas.
- Escalabilidad: se puede aumentar el número de expertos sin aumentar linealmente el coste de inferencia.
Desafíos de MoE
- Load balancing: el router tiende a enviar tokens siempre a los mismos expertos. Se necesitan pérdidas auxiliares para forzar distribución uniforme.
- Alta memoria: aunque la inferencia es eficiente en cómputo, todos los pesos deben estar en VRAM simultáneamente.
- Complejidad de entrenamiento: la comunicación entre expertos en sistemas distribuidos es costosa.
- Sensibilidad al router: si el gating network falla, la calidad del modelo se degrada significativamente.
Ejemplos de modelos MoE
- GPT-4 (OpenAI): se especula que usa arquitectura MoE (no confirmado oficialmente).
- Mixtral 8x7B (Mistral AI): 8 expertos FFN, activa 2 por token. Parámetros activos por inferencia: ~13B de 47B totales.
- Gemini (Google): arquitectura MoE a gran escala.
- Switch Transformer (Google, 2021): paper fundacional de MoE moderno, simplificó el routing a top-1.
Agentes de IA
Un agente de IA es un sistema autónomo que percibe su entorno, planifica acciones y las ejecuta para alcanzar un objetivo. A diferencia de una llamada simple a un LLM, un agente puede iterar, usar herramientas, corregir errores y tomar decisiones en múltiples pasos.
Componentes de un agente
- LLM como "cerebro": decide qué acción tomar en cada paso.
- Herramientas (Tools): funciones que el agente puede invocar (búsqueda web, ejecución de código, consulta a bases de datos, APIs).
- Memoria: almacena el contexto de la conversación y resultados previos.
- Loop de acción: ciclo Observación → Pensamiento → Acción (patrón ReAct).
5 tipos principales de agentes
- 1. ReAct (Reasoning + Acting): el modelo alterna entre razonamiento en lenguaje natural y ejecución de acciones. Genera un "pensamiento" antes de cada acción. Es el patrón base más común.
- 2. Reflexion: el agente genera una respuesta, luego la evalúa críticamente ("reflexiona") y la mejora de forma iterativa antes de entregarla.
- 3. Plan-and-Execute: primero genera un plan completo de pasos, luego ejecuta cada paso secuencialmente. Separación explícita entre planificación y ejecución.
- 4. OpenAI Functions: el modelo llama a funciones definidas mediante un esquema JSON. La API de OpenAI devuelve qué función invocar y con qué argumentos. Enfoque más estructurado y predecible.
- 5. MRKL (Modular Reasoning, Knowledge and Language): sistema modular que combina LLMs con módulos especializados (calculadoras, buscadores, bases de datos). El LLM actúa como enrutador que decide qué módulo usar.
Flujo de ejecución de un agente ReAct
- El usuario envía una pregunta o tarea.
- El LLM genera un pensamiento ("Necesito buscar información sobre X").
- El agente ejecuta una acción (llama a la herramienta de búsqueda).
- Recibe una observación (resultado de la búsqueda).
- Repite hasta que tiene suficiente información para responder.
- Genera la respuesta final.
Retos de los agentes
- Alucinaciones en la planificación: el LLM puede generar planes incoherentes o acciones inválidas.
- Bucles infinitos: el agente puede quedarse atascado sin llegar a una conclusión.
- Seguridad: agentes con acceso a shell o APIs pueden causar daños si no están bien limitados.
- Coste: múltiples llamadas al LLM aumentan la latencia y el coste por tarea.
AutoGen (Microsoft)
AutoGen es un framework open-source de Microsoft para construir aplicaciones con múltiples agentes conversacionales que colaboran entre sí. La idea central es que diferentes agentes especializados pueden comunicarse y coordinarse para resolver tareas complejas.
Arquitectura de AutoGen
- ConversableAgent: clase base de todos los agentes. Puede enviar y recibir mensajes, invocar herramientas y llamar a LLMs.
- AssistantAgent: agente impulsado por un LLM (GPT-4, Claude…). Genera respuestas, escribe código, planifica.
- UserProxyAgent: representa al usuario o ejecuta código automáticamente. Puede ejecutar código Python o Bash generado por el AssistantAgent.
- GroupChat: permite que múltiples agentes participen en una conversación compartida. Un GroupChatManager modera los turnos.
Patrón básico de AutoGen
El patrón más habitual es: AssistantAgent + UserProxyAgent. El asistente propone código o soluciones; el proxy las ejecuta y devuelve el resultado; el asistente corrige o mejora según el feedback. Este ciclo se repite hasta resolver la tarea.
Casos de uso de AutoGen
- Generación y ejecución automática de código (Data Science, automatización).
- Pipelines de investigación: un agente busca papers, otro los resume, otro extrae conclusiones.
- Sistemas de revisión de código: agente escritor + agente revisor.
- Automatización de flujos de trabajo empresariales con múltiples roles especializados.