1 puntos por GN⁺ 2024-09-01 | 1 comentarios | Compartir por WhatsApp
  • 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

1 comentarios

 
GN⁺ 2024-09-01
Opiniones en Hacker News
  • Puede que sea una pregunta ignorante, pero me pregunto si esto es distinto de lo de Andrej Karpathy: https://www.youtube.com/watch?v=kCc8FmEb1nY
    • La serie de Andrej también es excelente, y el libro y este video de Sebastian también son excelentes.
      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.
  • Me gustan los textos de Sebastian y espero con ganas el libro. Hay muchos detalles sobre cómo se construyen los LLM, pero a largo plazo parece que el campo de batalla irá hacia ese lado, así que me gustaría que también cubriera más cómo Llama y OpenAI pueden depurar y estructurar los datos de entrenamiento.
  • Usar PyTorch no es hacer un LLM desde cero.
    Es un buen tutorial de PyTorch, pero no finjamos que es de bajo nivel.
    • Para hacer una tarta de manzana desde cero, primero hay que inventar el universo.
    • El contenido de Sebastian me encanta, pero en esto estoy de acuerdo. No sentí que hubiera entrado de verdad en deep learning hasta que empecé creando un motor de diferenciación automática desde cero, como en la serie de Karpathy.
      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.
    • Aprender a tocar Bach: empezar por construir tu propio piano.
    • ¿Según qué criterio no es de bajo nivel? ¿Escribir un cliente de IRC en Python usando solo la API de sockets tampoco es desde cero?
    • En el contexto de los LLM, pytorch.nn también es de bajo nivel. En educación es importante no manejar demasiadas capas de abstracción a la vez.
  • Hace un tiempo escribí una guía práctica para entrenar nanoGPT desde cero en Azure. Es fácil de seguir a mano y bastante práctica.
    https://16x.engineer/2023/12/29/nanoGPT-azure-T4-ubuntu-guid...
    • Me da curiosidad si de verdad solo costó 200 dólares.
      También me pregunto qué se pudo hacer con lo que se construyó así, y cómo se le enseñan los eventos recientes.
  • Puede que sea irracional, pero de entrada me genera una sensación negativa que usen la palabra coding en vez de programming o development.
    • Que esa reacción venga de una publicación de alguien que está entre los más obsesionados con el lenguaje en esta comunidad se siente bastante ruidoso.
      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.
    • Soy de Brasil y esto me parece interesante porque, entre mis amigos y colegas, cuando hablamos en inglés normalmente usamos coding, y entre brasileños usamos mucho codar como verbo en portugués.
      No sé exactamente por qué, pero creo que es porque en portugués brasileño "program" está fuertemente asociado con la prostitución.
    • Totalmente de acuerdo. Hace un año también discutimos este tema: https://news.ycombinator.com/item?id=36924239
    • Hoy quizá sea una opinión impopular, pero estoy de acuerdo, incluso en un ambiente donde ese tipo de juicio se percibe como juzgar de más o hacer gatekeeping.
    • Esto se acerca más a una sensibilidad europea.
  • Es exactamente el nivel de detalle que estaba buscando. Tengo bastante experiencia con deep learning y pytorch, así que no quiero ver cómo implementan eso desde cero.
    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.
  • Excelente. Justo ayer me estaba preguntando cómo funcionan exactamente los transformers/attention y los LLM.
    Hace mucho seguí cómo funcionaba la retropropagación en RNN profundas, así que pensé que sería interesante ver el resto.
    • Si quieres ganar intuición, los videos de 3b1b lo explican bastante bien. Eso sí, no entran en detalles muy finos.
  • Bien. Ojalá funcione también en Windows 11.
    Cuando Windows no se menciona explícitamente, suelo ver que no se probó en ese entorno y que por problemas arbitrarios no funciona bien.
    • En WSL2 se puede acceder a la GPU, así que debería correr sin problemas. No hay que olvidar instalar el Cuda toolkit, y NVidia también ofrece uno específico para WSL2.
      https://developer.nvidia.com/cuda-downloads?target_os=Linux&...
    • Si no funciona en Windows 11, otra opción es probar en WSL (Windows Subsystem for Linux).
  • Esta página en realidad es solo un contenedor con un video de YouTube. Como la descripción de la página incluye los mismos enlaces, sería mejor cambiar el enlace de HN para que apunte directamente al video.
    • Más bien te ahorra el paso extra de buscar el repositorio de artículos de Sebastian Raschka.
    • Él comparte muchos videos y código, y sus materiales tienen muchísimo valor. ¿Por qué no simplemente apoyar al creador?
    • ¿Hay alguna razón para no apoyar el sitio web del autor? El sitio también se ve bueno.