Cómo construir un LLM desde cero: taller práctico de 3 horas
(magazine.sebastianraschka.com)- Es un taller donde puedes dedicar unas horas del fin de semana a seguir en código cómo funciona un LLM y revisar de una sola vez el flujo de implementación, entrenamiento y uso.
- La práctica comienza con una introducción a los LLM y avanza paso a paso por los datos de entrada, el tokenizador y la implementación de la arquitectura del modelo.
- Después de implementar la arquitectura, se cubren GPT-2 y Llama 2, el preentrenamiento y la carga de pesos preentrenados, conectándolo con el flujo real de uso del modelo.
- También incluye el uso de pesos con LitGPT, ajuste fino de instrucciones, evaluación con benchmarks y evaluación del desempeño en conversación.
- Se proporcionan el libro, el repositorio de GitHub, el código del taller, Lightning Studio y el repositorio de LitGPT, así que es fácil seguirlo por tu cuenta.
Flujo del video del taller de 3 horas
- Trata el proceso de implementar, entrenar y usar un LLM dentro de un solo taller práctico de programación.
- Tiene capítulos clicables para ir directamente al tema que necesites.
-
Fundamentos y procesamiento de entrada
- 0:00 Resumen del taller
- 2:17 Introducción a los LLM
- 9:14 Materiales del taller
- 10:48 Entender los datos de entrada de un LLM
- 23:25 Una clase de tokenizador sencilla
-
Implementación del modelo y entrenamiento
- 41:03 Codificación de la arquitectura del LLM
- 45:01 GPT-2 y Llama 2
- 1:07:11 Preentrenamiento
- 1:29:37 Carga de pesos preentrenados
- 1:45:12 Uso de pesos preentrenados con LitGPT
-
Ajuste fino y evaluación
- 1:53:09 Ajuste fino de instrucciones
- 2:08:21 Ajuste fino de instrucciones con LitGPT
- 2:26:45 Evaluación con benchmarks
- 2:36:55 Evaluación del desempeño en conversación
- 2:42:40 Cierre
Materiales necesarios para seguirlo
- Build an LLM from Scratch book: libro para construir un LLM desde cero
- Build an LLM from Scratch GitHub repository: repositorio de GitHub relacionado con el libro
- GitHub repository with workshop code: repositorio con el código del taller
- Lightning Studio for this workshop: Lightning Studio para este taller
- LitGPT GitHub repository: repositorio de GitHub de LitGPT
1 comentarios
Opiniones en Hacker News
Hay bastante superposición, pero tratan distintos temas con más detalle o tienen enfoques diferentes. Toda la serie de Andrej vale mucho la pena, y el trabajo que viene de Eureka Labs también se ve muy bueno. También creo que el blog y el libro de Sebastian valen el tiempo y el dinero.
https://ai.meta.com/research/publications/the-llama-3-herd-o...
Es un buen tutorial de PyTorch, pero no finjamos que es de bajo nivel.
Antes intenté aprender con fast.ai, pero arrancaba directamente creando redes en Pytorch y me salí rápido. Me pareció tan poco divertido como aprender Java en la secundaria; necesitaba entender con qué estaba trabajando.
https://16x.engineer/2023/12/29/nanoGPT-azure-T4-ubuntu-guid...
También me pregunto qué se pudo hacer con lo que se construyó así, y cómo se le enseñan los eventos recientes.
Ahora, si lo analizamos, "code" es algo que se establece con el contenido de un medio llamado codex. Para el contexto histórico se puede ver https://en.wikipedia.org/wiki/Codex, y partió de conjuntos de reglas en el ámbito legal; en inglés, al menos desde mediados del siglo XVI, su uso se extendió a otros ámbitos.
"program" se acerca más a publicar algo que contiene un conjunto de intenciones, por ejemplo con el sentido de "primero se toca Bach y después Mozart". Ese uso aparece varios siglos después que code como "conjunto de reglas".
"develop" está bien porque significa desplegar o desenvolver, pero no implica reglas ni procedimientos secuenciales como las dos palabras anteriores.
No sé exactamente por qué, pero creo que es porque en portugués brasileño "program" está fuertemente asociado con la prostitución.
El material de Andrej me resulta demasiado de bajo nivel y tiendo a perderme en los detalles. No es una crítica, sino un comentario que puede servirle a alguien en una situación parecida a la mía.
Hace mucho seguí cómo funcionaba la retropropagación en RNN profundas, así que pensé que sería interesante ver el resto.
Cuando Windows no se menciona explícitamente, suelo ver que no se probó en ese entorno y que por problemas arbitrarios no funciona bien.
https://developer.nvidia.com/cuda-downloads?target_os=Linux&...