Introducción a los LLMs para Desarrolladores
Este curso es una versión adaptada al chino de la serie de tres cursos sobre modelos de lenguaje grandes lanzada conjuntamente por Andrew Ng y OpenAI. Cubre la ingeniería de prompts, la creación de sistemas con la API de ChatGPT, el desarrollo de aplicaciones con LangChain y el uso de LangChain para acceder a datos privados. El curso ofrece una introducción clara y accesible sobre cómo aprovechar las capacidades de los modelos de lenguaje grandes para construir aplicaciones con funciones de resumen, inferencia, transformación, expansión y chat.
Lecciones
Descripción del curso
📚 Resumen del Contenido
Este curso es una adaptación china de la serie de tres partes sobre Modelos de Lenguaje Grandes (LLM), desarrollada conjuntamente por Andrew Ng y OpenAI. Cubre ingeniería de prompts, construcción de sistemas basados en la API de ChatGPT, desarrollo de aplicaciones con LangChain y uso de LangChain para acceder a datos privados. El curso ofrece una introducción profunda pero accesible al aprovechamiento de las capacidades de los LLM para desarrollar aplicaciones con funcionalidades de resumen, inferencia, transformación, expansión y chat.
Domina la ingeniería de prompts y el marco LangChain para convertirte en un desarrollador de aplicaciones de IA en la era de los modelos grandes.
🎯 Objetivos de Aprendizaje
- Distinguir entre LLMs base y LLMs ajustados mediante instrucciones.
- Aplicar cuatro tácticas específicas para redactar instrucciones claras y precisas (delimitadores, salida estructurada, comprobaciones condicionales y promp de ejemplo reducido).
- Implementar estrategias para dar a los modelos "tiempo para pensar", especificando pasos de la tarea y requiriendo resolución independiente del problema.
- Implementar procesamiento de texto estructurado: resumir e extraer información específica de documentos únicos o múltiples, controlando la longitud y el enfoque de la salida.
- Realizar análisis automatizado de texto: clasificar sentimientos, identificar emociones específicas y ejecutar clasificación de temas sin ejemplos (zero-shot) usando prompts.
- Ejecutar transformaciones multimodales: traducir entre idiomas, convertir formatos de datos (por ejemplo, JSON a HTML) y corregir gramática/ortografía de forma programática.
- Distinguir entre LLMs base y LLMs ajustados mediante instrucciones, comprendiendo el impacto de la tokenización en el comportamiento del modelo.
- Implementar arquitecturas de sistema estructuradas utilizando roles de mensajes System, User y Assistant para definir personalidades del modelo.
- Aplicar técnicas de clasificación y moderación para evaluar entradas de usuarios en términos de seguridad y enrutamiento.
- Implementar encadenamiento de prompts: descomponer tareas complejas en sub-tareas manejables para mejorar la confiabilidad y reducir costos.
🔹 Lección 1: Principios de Prompting y Desarrollo Iterativo
Resumen: Esta lección aborda los principios fundamentales de la ingeniería de prompts para desarrolladores, pasando de los "LLMs base" básicos a los "LLMs ajustados mediante instrucciones". Introduce dos pilares principales para una interacción efectiva: redactar instrucciones claras y específicas, y permitir al modelo suficiente "tiempo para pensar". Además, establece un flujo iterativo para refinar prompts según requisitos empresariales específicos, como restricciones de longitud y necesidades de formato.
Resultados de Aprendizaje:
- Distinguir entre LLMs base y LLMs ajustados mediante instrucciones.
- Aplicar cuatro tácticas específicas para redactar instrucciones claras y precisas (delimitadores, salida estructurada, comprobaciones condicionales y promp de ejemplo reducido).
- Implementar estrategias para dar a los modelos "tiempo para pensar", especificando pasos de la tarea y requiriendo resolución independiente del problema.
🔹 Lección 2: Capacidad Básica de Prompting y Chatbots
Resumen: Esta lección explora la aplicación práctica de Modelos de Lenguaje Grandes (LLM) en cinco áreas funcionales clave: resumir, inferir, transformar, expandir y crear chatbots interactivos. Proporciona a los desarrolladores una guía práctica para usar Python y la API de OpenAI para procesar texto, extraer datos estructurados, ajustar estilos lingüísticos y mantener el contexto conversacional para aplicaciones del mundo real como bots de servicio al cliente.
Resultados de Aprendizaje:
- Implementar procesamiento de texto estructurado: resumir e extraer información específica de documentos únicos o múltiples, controlando la longitud y el enfoque de la salida.
- Realizar análisis automatizado de texto: clasificar sentimientos, identificar emociones específicas y ejecutar clasificación de temas sin ejemplos (zero-shot) usando prompts.
- Ejecutar transformaciones multimodales: traducir entre idiomas, convertir formatos de datos (por ejemplo, JSON a HTML) y corregir gramática/ortografía de forma programática.
🔹 Lección 3: Lógica del Sistema: Clasificación de Entradas y Razonamiento
Resumen: Esta lección explora los mecanismos fundamentales de los Modelos de Lenguaje Grandes (LLM), avanzando desde la tokenización básica y los roles de mensaje hasta estrategias avanzadas de manejo de entradas. Los estudiantes aprenderán a construir sistemas robustos mediante la clasificación de la intención del usuario, la moderación de contenido para garantizar seguridad y la implementación del razonamiento en cadena de pensamiento (CoT) para mejorar la precisión y controlar la experiencia del usuario a través de "monólogos internos".
Resultados de Aprendizaje:
- Distinguir entre LLMs base y LLMs ajustados mediante instrucciones, comprendiendo el impacto de la tokenización en el comportamiento del modelo.
- Implementar arquitecturas de sistema estructuradas utilizando roles de mensajes System, User y Assistant para definir personalidades del modelo.
- Aplicar técnicas de clasificación y moderación para evaluar entradas de usuarios en términos de seguridad y enrutamiento.
🔹 Lección 4: Flujos de Trabajo Complejos y Evaluación del Sistema
Resumen: Esta lección cubre la transición de prompts simples a flujos de trabajo LLM complejos y multietapa. Se centra en el "encadenamiento de prompts" para descomponer tareas, la implementación de capas de seguridad mediante la API de Moderación y la creación de marcos rigurosos de evaluación, tanto para casos con una única respuesta correcta como para aquellos que requieren evaluación subjetiva basada en criterios.
Resultados de Aprendizaje:
- Implementar encadenamiento de prompts: descomponer tareas complejas en sub-tareas manejables para mejorar la confiabilidad y reducir costos.
- Construir un sistema seguro de extremo a extremo: integrar mecanismos de moderación de entrada/salida y verificación de hechos en un pipeline listo para producción.
- Desarrollar estrategias de evaluación: crear conjuntos de validación para medir el rendimiento del LLM comparándolo con respuestas "ideales" y usando rúbricas asistidas por LLM.
🔹 Lección 5: Fundamentos de LangChain: Modelos, Prompts y Memoria
Resumen: Esta lección presenta los componentes centrales del marco LangChain, enfocándose específicamente en cómo abstractizar las interacciones con Modelos de Lenguaje Grandes (LLM). Cubre la transición de llamadas directas a la API al uso de componentes modulares de LangChain: Modelos, Plantillas de Prompt y Analizadores de Salida, concluyendo con un análisis profundo de cuatro estrategias distintas de memoria para mantener el estado de conversación.
Resultados de Aprendizaje:
- Implementar llamadas básicas a LLM usando ChatOpenAI y componentes modulares de LangChain.
- Crear estructuras reutilizables de ChatPromptTemplate para gestionar lógica de prompts compleja y variables.
- Extraer datos estructurados (JSON/diccionarios de Python) de respuestas no estructuradas del LLM usando StructuredOutputParser.
🔹 Lección 6: Cadenas de LangChain, Preguntas y Respuestas y Agentes Autónomos
Resumen: Esta lección aborda los bloques arquitectónicos centrales de LangChain, pasando de secuencias lineales simples de prompt-completitud a sistemas complejos y orientados por lógica. Los estudiantes aprenderán a orquestar múltiples llamadas a LLM mediante Cadenas, implementar Generación Incrementada por Recuperación (Preguntas y Respuestas) sobre documentos privados usando almacenes vectoriales y desplegar Agentes Autónomos que usan razonamiento para seleccionar y ejecutar herramientas. El material enfatiza pasar más allá de interacciones con un solo prompt hacia aplicaciones de LLM automatizadas y escalables.
Resultados de Aprendizaje:
- Construir flujos de trabajo lineales y complejos de múltiples pasos usando SequentialChain y RouterChain.
- Crear un sistema de preguntas y respuestas basado en documentos usando embeddings, almacenes vectoriales y la cadena RetrievalQA.
- Implementar evaluación automatizada de aplicaciones de LLM usando QAGenerateChain y QAEvalChain.
🔹 Lección 7: Preparación de Datos Privados: Carga y Vectorización
Resumen: Esta lección cubre las fases iniciales de la creación de un sistema de Generación Incrementada por Recuperación (RAG) usando LangChain. Guiará a los desarrolladores a cargar datos no estructurados de diversas fuentes (PDFs, YouTube, web, Notion), dividir esos datos en fragmentos semánticamente significativos y transformarlos en embeddings numéricos para su almacenamiento y búsqueda de similitud en bases de datos vectoriales.
Resultados de Aprendizaje:
- Implementar diversos cargadores de documentos de LangChain para importar datos desde PDFs, audio de YouTube, URLs web y bases de datos Notion.
- Configurar y comparar diferentes divisores de texto (Caracteres, Recursivo, Tokens y Markdown) usando parámetros como chunk_size y chunk_overlap.
- Ejecutar el proceso de vectorización creando embeddings y almacenándolos en un vectorstore Chroma para habilitar búsquedas de similitud semántica.
🔹 Lección 8: Generación Incrementada por Recuperación (RAG) e Interacción
Resumen: Este material explora la transición desde la búsqueda semántica básica hasta técnicas avanzadas de recuperación e interacción conversacional dentro de aplicaciones de LLM. Cubre técnicas sofisticadas de recuperación —como Máxima Relevancia Marginal (MMR), filtrado por metadatos y compresión contextual— antes de demostrar cómo construir cadenas de preguntas y respuestas con estado y chatbots completos usando las funciones de memoria y GUI de LangChain.
Resultados de Aprendizaje:
- Implementar estrategias avanzadas de recuperación (MMR, Auto-búsqueda y Compresión) para mejorar la diversidad y relevancia de los documentos recuperados.
- Comparar y desplegar diferentes tipos de cadenas (stuff, MapReduce, Refine) para procesar el contexto recuperado en tareas de preguntas y respuestas.
- Construir una interfaz de chatbot con estado usando ConversationalRetrievalChain y ConversationBufferMemory para mantener el contexto de la conversación.