Cuarta etapa: Aprendizaje profundo y redes neuronales

Un tutorial completo para construir un modelo de lenguaje grande desde cero, implementando paso a paso la arquitectura GPT con PyTorch, incluyendo la práctica de todo el proceso de preentrenamiento, ajuste fino e implementación.

LLMTransformerPyTorchGitHubTextFreeEnglish

Descripción detallada del curso LLMs-from-scratch

Resumen del proyecto

LLMs-from-scratch es un recurso de aprendizaje integral creado por Sebastian Raschka, diseñado para enseñar cómo construir Modelos de Lenguaje Grandes (LLM) desde cero. Este proyecto es el repositorio de código oficial del libro "Build a Large Language Model (From Scratch)".

Características principales

📚 Objetivos de aprendizaje

  • Comprender el funcionamiento interno de los modelos de lenguaje grandes.
  • Construir tu propio LLM paso a paso a través de la codificación.
  • Aprender los métodos de entrenamiento y desarrollo de los modelos fundamentales detrás de ChatGPT y similares.
  • Dominar las técnicas para cargar y ajustar finamente los pesos de modelos preentrenados.

🎯 Metodología de enseñanza

  • Codificación desde cero: Implementación desde cero usando PyTorch, sin depender de bibliotecas LLM externas.
  • Paso a paso: Cada etapa se explica con texto claro, diagramas y ejemplos.
  • Altamente práctico: Creación de modelos educativos pequeños pero completamente funcionales.
  • Recursos complementarios ricos: Incluye 17 horas y 15 minutos de curso en video.

Estructura del curso

Contenido de los capítulos

Capítulo 1: Entendiendo los modelos de lenguaje grandes (Understanding large language models)

  • Introducción a los conceptos básicos de LLM
  • Visión general de la arquitectura del modelo

Capítulo 2: Trabajando con datos de texto (Working with text data)

  • Código principal: ch02.ipynb, dataloader.ipynb
  • Preprocesamiento de texto y carga de datos
  • Soluciones a los ejercicios: exercise-solutions.ipynb

Capítulo 3: Codificando mecanismos de atención (Coding attention mechanisms)

  • Código principal: ch03.ipynb, multihead-attention.ipynb
  • Implementación del mecanismo de autoatención
  • Explicación detallada del mecanismo de atención multi-cabeza

Capítulo 4: Implementando un modelo GPT desde cero (Implementing a GPT model from scratch)

  • Código principal: ch04.ipynb, gpt.py
  • Implementación completa de la arquitectura GPT
  • Explicación detallada de los componentes del modelo

Capítulo 5: Preentrenamiento con datos sin etiquetar (Pretraining on unlabeled data)

  • Código principal: ch05.ipynb, gpt_train.py, gpt_generate.py
  • Proceso de preentrenamiento
  • Implementación de generación de texto

Capítulo 6: Ajuste fino para tareas de clasificación (Finetuning for classification)

  • Código principal: ch06.ipynb, gpt_class_finetune.py
  • Ajuste del modelo para tareas de clasificación específicas
  • Técnicas y estrategias de ajuste fino

Capítulo 7: Ajuste fino para seguir instrucciones (Finetuning to follow instructions)

  • Código principal: ch07.ipynb, gpt_instruction_finetuning.py
  • Métodos de ajuste fino por instrucciones
  • Evaluación del modelo: ollama_evaluate.py

Contenido de los apéndices

Apéndice A: Introducción a PyTorch

  • Código: code-part1.ipynb, code-part2.ipynb
  • Entrenamiento distribuido de datos en paralelo: DDP-script.py
  • Introducción rápida a los fundamentos de PyTorch

Apéndices B-E

  • Apéndice B: Referencias y lecturas adicionales
  • Apéndice C: Resumen de soluciones a los ejercicios
  • Apéndice D: Añadiendo funcionalidades adicionales
  • Apéndice E: Ajuste fino eficiente de parámetros

Materiales adicionales (Bonus Materials)

Recursos adicionales del Capítulo 5

  • Métodos alternativos de carga de pesos: Diferentes técnicas de carga de pesos del modelo.
  • Preentrenamiento con el conjunto de datos Project Gutenberg: Entrenamiento en un gran corpus de texto.
  • Optimización del ciclo de entrenamiento: Adición de varias funciones de mejora.
  • Programadores de tasa de aprendizaje: Optimización del proceso de entrenamiento.
  • Ajuste de hiperparámetros: Optimización de hiperparámetros de preentrenamiento.
  • Construcción de interfaz de usuario: UI para interactuar con LLM preentrenados.
  • Conversión de modelos:
    • Conversión de GPT a Llama
    • Implementación de Llama 3.2 desde cero
    • Modelos Qwen3 densos y de expertos mixtos (MoE)
    • Implementación de Gemma 3 desde cero
  • Carga de pesos eficiente en memoria: Optimización de la carga del modelo.
  • Extensión del tokenizador Tiktoken BPE: Adición de nuevos tokens.
  • Consejos de optimización del rendimiento de PyTorch: Aceleración del entrenamiento de LLM.

Recursos adicionales del Capítulo 6

  • Técnicas avanzadas de ajuste fino para clasificación.

Recursos adicionales del Capítulo 7

  • Herramientas de conjuntos de datos: Búsqueda de duplicados aproximados y creación de entradas en voz pasiva.
  • Evaluación de respuestas: Uso de la API de OpenAI y Ollama para evaluar respuestas a instrucciones.
  • Generación de conjuntos de datos: Generación de conjuntos de datos para ajuste fino por instrucciones.
  • Mejora de conjuntos de datos: Mejora de la calidad de los conjuntos de datos para ajuste fino por instrucciones.
  • Generación de conjuntos de datos de preferencias: Uso de Llama 3.1 70B y Ollama.
  • Alineación DPO: Implementación de Optimización de Preferencia Directa (Direct Preference Optimization).
  • Interfaz de usuario: Interacción con modelos GPT ajustados por instrucciones.

Recursos del modelo de inferencia (del repositorio reasoning-from-scratch)

  • Base Qwen3
  • Métodos de evaluación del modelo

Requisitos técnicos

Conocimientos previos

  • Obligatorio: Sólida base en programación Python.
  • Útil: Conocimientos básicos de redes neuronales profundas.
  • Útil: Fundamentos de PyTorch (se proporciona una introducción rápida en el Apéndice A).

Requisitos de hardware

  • 💻 Basta con un portátil normal: El código de los capítulos principales está diseñado para ejecutarse en un portátil convencional.
  • 🚀 Aceleración automática de GPU: Si está disponible, el código utilizará automáticamente la GPU.
  • No se requiere hardware especializado: Asegura que una amplia audiencia pueda aprender.

Entorno de software

  • Python 3.x
  • PyTorch
  • Otras dependencias detalladas en el directorio setup.

Recursos complementarios

Curso en video

  • 📹 Curso completo en video de 17 horas y 15 minutos
  • Demostraciones de codificación capítulo por capítulo
  • Puede usarse como recurso de aprendizaje independiente o junto con el libro
  • Plataforma Manning: Master and Build Large Language Models

Libro de seguimiento

"Build A Reasoning Model (From Scratch)"

  • Puede considerarse una secuela
  • Comienza con modelos preentrenados
  • Implementa diferentes métodos de razonamiento:
    • Expansión del tiempo de inferencia
    • Aprendizaje por refuerzo
    • Técnicas de destilación
  • Mejora la capacidad de razonamiento del modelo
  • Repositorio de GitHub: reasoning-from-scratch

Recursos de prueba

PDF gratuito de 170 páginas: "Test Yourself On Build a Large Language Model (From Scratch)"

  • Aproximadamente 30 preguntas de prueba por capítulo y sus respuestas
  • Ayuda a evaluar el nivel de comprensión
  • Descarga gratuita en el sitio web de Manning

Soluciones a los ejercicios

  • Cada capítulo contiene varios ejercicios
  • Las soluciones se resumen en el Apéndice C
  • Los notebooks de código correspondientes se encuentran en las carpetas de cada capítulo
    • Ejemplo: ./ch02/01_main-chapter-code/exercise-solutions.ipynb

Adquisición del proyecto

Métodos de descarga

Método 1: Descarga directa del ZIP

# Haz clic en el botón Download ZIP de la página de GitHub

Método 2: Clonación con Git

git clone --depth 1 https://github.com/rasbt/LLMs-from-scratch.git

Organización del código

  • Cada capítulo tiene una carpeta independiente: ch02/, ch03/, etc.
  • El código principal se encuentra en la subcarpeta 01_main-chapter-code/.
  • Los recursos adicionales están en las carpetas numeradas correspondientes.

Sugerencias de ruta de aprendizaje

Modelo mental

El libro proporciona un mapa mental claro que resume todo el contenido cubierto:

  1. Comprensión de los fundamentos de los LLM
  2. Procesamiento de datos de texto
  3. Mecanismos de atención
  4. Implementación de la arquitectura GPT
  5. Técnicas de preentrenamiento
  6. Métodos de ajuste fino
  7. Implementación de aplicaciones prácticas

Recomendaciones de aprendizaje

  1. Principiantes: Comienza desde el Capítulo 1, aprende en orden y completa los ejercicios de cada capítulo.
  2. Con experiencia: Puedes saltarte los capítulos familiares y centrarte en temas específicos.
  3. Practicantes: Utiliza los materiales adicionales para explorar temas avanzados.
  4. Investigadores: Consulta el formato de citación para referenciar este recurso en tu investigación.

Comunidad y soporte

Canales de retroalimentación

  • 💬 Foro de Manning: Foro oficial
  • 💭 Discusiones de GitHub: Área de discusión
  • 🤝 Se agradecen todas las formas de retroalimentación, preguntas e intercambio de ideas.

Notas sobre contribuciones

  • Debido a que corresponde a un libro impreso, el código de los capítulos principales mantiene la coherencia.
  • Actualmente no se aceptan contribuciones que extiendan el contenido de los capítulos principales.
  • Esto asegura la coherencia con el contenido del libro físico y proporciona una experiencia de aprendizaje fluida.

Información de citación

Formato Chicago

Raschka, Sebastian. Build A Large Language Model (From Scratch). Manning, 2024. ISBN: 978-1633437166.

Formato BibTeX

@book{build-llms-from-scratch-book,
  author = {Sebastian Raschka},
  title = {Build A Large Language Model (From Scratch)},
  publisher = {Manning},
  year = {2024},
  isbn = {978-1633437166},
  url = {https://www.manning.com/books/build-a-large-language-model-from-scratch},
  github = {https://github.com/rasbt/LLMs-from-scratch}
}

Enlaces clave

Resumen

Este es un recurso de aprendizaje de LLM completo y sistemático, adecuado para:

  • 🎓 Estudiantes que desean comprender en profundidad el funcionamiento de los LLM.
  • 👨‍💻 Desarrolladores que quieren practicar la implementación de modelos tipo GPT.
  • 🔬 Investigadores que trabajan en PNL y aprendizaje profundo.
  • 🚀 Entusiastas de la tecnología interesados en la IA y el aprendizaje automático.

A través de este proyecto, adquirirás la capacidad completa para construir, entrenar y ajustar finamente modelos de lenguaje grandes desde cero.