2 puntos por GN⁺ 2025-08-21 | 1 comentarios | Compartir por WhatsApp
  • Gemma 3 270M ofrece código de ejemplo para implementarlo directamente usando solo PyTorch
  • Este repositorio tiene un propósito educativo para entender y practicar directamente la estructura y el proceso de entrenamiento de los LLM
  • El código puede ejecutarse sin frameworks externos adicionales para LLM y también funciona en un entorno de notebook común
  • Incluye diversos ejemplos extra y materiales prácticos que brindan ayuda real para el aprendizaje de desarrolladores e investigadores
  • Con solo conocimientos básicos de Python, cualquiera puede experimentar paso a paso los principios y la implementación detallada de un LLM

Significado y diferenciación del proyecto open source

Este repositorio ofrece todo el código necesario para implementar, preentrenar y ajustar finamente de forma directa un modelo de lenguaje grande de la familia GPT. A diferencia de la mayoría de los ejemplos de modelos de lenguaje grandes, permite experimentar y entrenar directamente en un entorno local usando solo PyTorch, sin bibliotecas externas adicionales especializadas en LLM. En particular, al incluir incluso modelos ligeros como Gemma 3 270M junto con código detallado, tiene la ventaja práctica de permitir que investigadores o desarrolladores principiantes sigan la estructura real de implementación y aprendan sus principios en profundidad.

Contenido principal y estructura del repositorio

  • Repositorio de código oficial del libro "Build a Large Language Model (From Scratch)"
  • Incluye código de ejemplo paso a paso que cubre todas las etapas de la implementación directa de un LLM estilo GPT, el preentrenamiento y el ajuste fino
  • Aborda en detalle la lógica de implementación de modelos de lenguaje grandes y presenta un enfoque fácil de seguir para principiantes mediante explicaciones claras, diagramas y código de ejemplo en cada etapa
  • Explica con detalle la metodología de entrenamiento de modelos a gran escala y el proceso real de implementación, lo que permite aprender de manera tangible las metodologías utilizadas en servicios reales como ChatGPT
  • Incluye ejemplos relacionados con carga de pesos de modelos preentrenados y ajuste fino

Guía sobre la composición del repositorio

  • Ofrece repositorio oficial del código fuente, información del libro, ISBN y otros enlaces para práctica y consulta
  • Cada capítulo incluye notebooks de Jupyter y scripts de Python, por lo que también pueden consultarse prácticas paso a paso, ejercicios y materiales complementarios
  • Como materiales complementarios y ejemplos extra, incluye contenido práctico muy útil para trabajo real sobre mecanismos de Attention, Tokenizer, optimización de rendimiento, análisis de FLOPS, ajuste de hiperparámetros y conversión de modelos Llama, entre otros

Conocimientos previos y requisitos de hardware

  • Con solo una comprensión básica de programación en Python, es posible entender los principios de los LLM y realizar las prácticas
  • No es indispensable estar familiarizado con PyTorch; con conocer la sintaxis básica es suficiente
  • Los ejemplos pueden ejecutarse en una laptop común sin hardware de alta gama adicional
  • Si hay GPU disponible, se detecta automáticamente para mejorar la velocidad de entrenamiento

Material adicional y contenido para reforzar la práctica

  • Cada capítulo ofrece código práctico y notebooks con ejercicios
  • Incluye un quiz book en PDF gratuito de 170 páginas (alrededor de 30 preguntas por capítulo) para apoyar el aprendizaje autodirigido
  • En el curso en video (17 horas y 15 minutos, en la plataforma editorial de Manning), el autor explica e implementa directamente con código los contenidos principales de todos los capítulos

Guía para investigación y participación en la comunidad

  • Las preguntas, opiniones y debates se comparten activamente en el foro de Manning y en GitHub Discussions
  • Para mantener la consistencia entre el libro y el código, el código principal del repositorio limita las contribuciones externas; se recomienda discutir por separado propuestas de corrección o mejora

Referencia y citación

  • Este proyecto y su código pueden utilizarse directamente en investigación de desarrollo y experimentación con LLM
  • Si se cita en artículos, blogs técnicos u otros materiales, se ofrecen ejemplos en estilo Chicago y BibTeX

Resumen

Este repositorio ofrece la oportunidad de implementar y practicar directamente modelos de lenguaje grandes como Gemma 3 270M usando solo PyTorch. A diferencia de otros proyectos open source de LLM, su mayor ventaja es que permite aprender y experimentar los principios clave y el flujo completo en el entorno más simple posible. Incluye una estructura optimizada, ejemplos, materiales complementarios y ejercicios ideales para que desarrolladores e investigadores principiantes entiendan y practiquen con LLM.

1 comentarios

 
GN⁺ 2025-08-21
Opinión de Hacker News
  • Hola, ayudé a crear este modelo con un equipo increíble. La semana pasada, cuando este modelo llegó a portada, respondí muchas preguntas. Si aquí también hay más preguntas, con gusto las responderé. Personalmente, me emociona mucho que ahora todos ustedes puedan acceder a este modelo. Espero que lo aprovechen bien. Consulten el enlace al Q&A anterior
    • Me da curiosidad qué opinan de usar 2/3 de todos los parámetros en embeddings en un modelo tan pequeño. Si se usara un vocabulary a nivel de bytes y se asignaran más parámetros al transformer, imagino que el procesamiento de tokens sería más lento, pero quizá la precisión subiría
    • Es una pregunta muy básica, pero me gustaría saber por qué al ejecutar el modelo tflite en GPU dentro de la app AI edge gallery solo imprime '[multimodal][multimodal]', mientras que en CPU funciona bien
    • No soy MLE (Machine Learning Engineer), así que me pregunto cuáles serían las ventajas y desventajas de la reimplementación en PyTorch del OP
    • Es un LM pequeño sorprendentemente genial. Me gustaría saber si podrían compartir en qué hardware se entrenó y cuánto tiempo tomó el entrenamiento
    • Gracias por hacer esto. Hace tiempo implementé un chatbot de Discord con BERT, así que me emociona muchísimo ver una mejora a 270M parámetros
  • Me pregunto si alguien (o el OP) podría compartir una receta para hacer fine-tuning de este modelo y aplicarlo a tareas de lenguaje natural como NER de alto nivel. La semana pasada salió Gemma3 270M e intenté seguir tutoriales, pero no me fue bien. La mayoría están enfocados en chat o roleplay, y mi trabajo principal es extraer y depurar entidades desde PDFs, así que me cuesta encontrar consejos especializados para ese uso. Creo que este modelo podría encajar bien en algo así
    • Si se trata de una tarea de NER tradicional (extraer entidades en spans de tokens no superpuestos), probablemente sea mejor usar un modelo encoder-only (por ejemplo, bert-large-NER) o un encoder-decoder (por ejemplo, t5-base-conll03-english). Estos modelos de codificación reciben menos atención últimamente, pero siguen teniendo ventajas en tareas de NLP establecidas donde no hace falta generación, y con la misma cantidad de parámetros esperaría una precisión de NER muy superior a la de un modelo decoder-only
    • Hay una forma de usar la librería de Python gemma-llm (basada en JAX). Consulten este tutorial relacionado
    • Me pregunto si ya probaste también este modelo NER. Me interesa tu opinión sobre para qué casos sería especialmente adecuado
  • Me pregunto si esto va en la misma línea de lo que antes hacía la gente con cosas como '<modelo> inference written in vanilla Go, Python, Java, etc'
  • En mi experiencia, soy un dev que solo ha usado modelos comerciales grandes (sonnet, ChatGPT, etc.). Me pregunto para qué se pueden usar estos modelos locales pequeños. Si hay casos de uso inmediatos, o si al final siempre hace falta algún posprocesamiento o entrenamiento adicional. Se siente muy grande la brecha entre usuarios de herramientas comerciales y quienes dominan los modelos, y no sé bien cómo se puede cerrar ese paso intermedio
    • Los usos más comunes (fuera de lo educativo) son estos:
      • Modelos privados on-device (menor latencia que una web API y útiles para procesamiento en edge)
      • Investigación algorítmica (se puede prototipar rápido y barato)
      • Tareas baratas de clasificación/categorización (aunque no haga falta un decoder LLM, a veces ayuda una respuesta libre), revisión básica de gramática, routers (por ejemplo, al estilo GPT-5), etc.
    • Muy buena pregunta. Dejé una respuesta larga y ordenada, por si te sirve: enlace a la respuesta detallada
    • Resumen: es especialmente útil para resumir y para uso de herramientas muy simples. Corre en edge sin ida y vuelta a internet, así que el costo es 0
    • También puede servir para confidencialidad y privacidad
  • Me sorprende que en CPU de Mac, aplicando KV cache + compilador, vaya más rápido que en una GPU A100
    • Puede ser simplemente que el tamaño pequeño del modelo no logre aprovechar bien el rendimiento de la GPU. Por ejemplo, con el modelo Qwen3 0.6B la GPU A100 sí es más rápida, como se puede ver en este enlace de referencia
    • Viendo que la versión compilada en A100 es más lenta que eager, claramente parece haber partes que no están optimizadas
    • Supongo que podría deberse a que la CPU y GPU de Mac comparten memoria, mientras que en la A100, si alguna operación no está soportada por la GPU, hay que mover datos a RAM/CPU
    • Me pregunto si será porque la GPU no logra llenar el waveform y por eso no puede ocultar la latencia de memoria
  • Me pregunto para qué se podrían aprovechar embeddings de 270M, y si embeddings a nivel de token son lo adecuado o si también salen bien embeddings de oración/documento. También me pregunto si, para usar embeddings de oración/documento de forma realmente útil, haría falta fine-tuning adicional
  • Si uno entrenara el modelo completo desde cero, me pregunto cuánto tardaría con una configuración de GPU razonable
    • Como referencia, al entrenar un modelo de 124M en una GPU 3090 se procesan unas 500 mil tokens por batch y el forward+backward tarda unos 10 segundos. Entrenar los 6 billones de tokens completos (la cantidad usada para este modelo) tomaría alrededor de 4 años. En resumen: "demasiado tiempo"
    • Depende de qué signifique "razonable", pero en un entorno casero, entrenarlo desde puro scratch probablemente tomaría muchísimo tiempo. Esa es una de las razones por las que se lanzó este modelo. Ahora se pueden obtener resultados prácticos en hardware variado solo con fine-tuning, sin tener que entrenar desde cero
  • Me pregunto si un modelo tan pequeño realmente tendría usos en el mundo real (más allá de aprendizaje o academia)
    • ¡Sí! De hecho, más que ser solo material didáctico o un juguete, tiene valor real para tareas repetitivas o como modelo rápido local/empresarial para desarrolladores. Este es un ejemplo inspirado en una experiencia previa donde hacía falta procesamiento de texto en tiempo real. Consulten este tutorial de streaming ML hecho con una versión anterior de Gemma y este video demo. En teoría, ahora esto ya se podría reproducir con Gemma 270M
    • Con fine-tuning usando LoRA también puede rendir muy bien en dominios muy específicos. Por ejemplo:
      • Responder solo en un esquema JSON específico o con la voz de un personaje concreto
      • Clasificar texto (por ejemplo, correos, spam, etc.)
      • Resumir grandes volúmenes de texto (correo → título/slug)
      • Clasificación por etiquetas según reglas predefinidas, content marketing, etc.
      • Detección de spam/duplicados/flags
      • Cuanto más "tonto" es este tipo de modelo pequeño, menos conocimiento del mundo trae consigo, así que también tiende menos a inventar cosas absurdas; en dominios estrechos eso incluso puede ser una ventaja
    • Suele acertar en tareas de traducción multilingüe basadas en texto fuente (por ejemplo, útiles para conversación de viaje). Ejemplo:
      (우크라이나어 원문) Rochechouart는 프랑스의 도시, 누벨아키텐 지방의 오트비엔주에 위치… 인구 3637명(2022), 파리 기준 약 360km 남쪽, 리모주에서 34km 서쪽에 위치.
      (모델 번역 결과) Rochechouart는 프랑스의 도시로, 누벨아키텐 지역 오트비엔 주에 위치. 인구 3637명(2022). 파리로부터 약 360km, 리옹에서 34km 거리.
      (베트남어 주거용 태양광 지원 정책도 대체로 정확히 번역)
      
      Fuente wiki: Wikipedia en ucraniano, noticia vietnamita
    • Es útil para tareas que interactúan con lenguaje natural, pero donde no esperas que el modelo tenga mucho conocimiento interno. Tool use, embeddings y otras áreas donde la información se valida o consulta externamente le quedan bien
  • Hice clic pensando que era un producto nuevo de interfaz 3270, pero no era lo que esperaba
  • Qué persona tan impresionante