Aprende ML con Pyre-Code: 68 ejercicios interactivos
Pyre-Code es una plataforma de práctica interactiva self-hosted con 68 problemas de machine learning que van desde activaciones hasta transformers, RLHF y difusión, con feedback instantáneo en el navegador. Creada por whwangovo, permite implementar desde cero los algoritmos que normalmente usás como caja negra, ejecutándose localmente en Next.js y FastAPI.
En 30 segundos
- 68 ejercicios de código que cubren fundamentos de ML, normalización, atención, transformers, entrenamiento, alineación (RLHF/DPO) y difusión.
- Self-hosted en tu máquina: frontend en localhost:3000, backend en localhost:8000, sin dependencias en la nube.
- Feedback instantáneo por test case en el navegador, con soluciones de referencia incluidas y hints opcionales con IA.
- Stack: Next.js, FastAPI, torch_judge (grader basado en PyTorch), SQLite. Instalación rápida con setup.sh o Docker.
- Casos de uso: preparación para entrevistas técnicas de ML, aprendizaje de arquitecturas modernas, desarrollo profesional de ML engineers en producción.
Qué es una plataforma de práctica de machine learning
Ponele que leés un paper sobre transformers, ves las ecuaciones, entendés la lógica (o creés que la entendés) y decís “bueno, esto es relativamente simple”. Después intentás implementarlo desde cero y te tropezás con detalles de normalización, inicialización de pesos, indexación en PyTorch que no funcionan como esperabas. Eso es el gap entre la teoría de los papers y el código que realmente funciona. Una plataforma de práctica de machine learning es justamente eso: un espacio donde podés implementar los internals de sistemas AI modernos sin tener que armarte todo el boilerplate, configurar GPUs, debugguear errores de tensor shape.
Hay diferencia entre aprender la teoría y aprender a implementar. En un curso tradicional de ML, te enseñan conceptos y vos escribís notebooks con librerías que ya lo hacen todo (PyTorch, TensorFlow). Pero los internals, la implementación real de un transformer o un algoritmo de optimización, eso no lo tocás. Cuando después entrás a una entrevista técnica de una big tech o necesitás debugguear algo en producción, descubrís que hay un montón de detalles que nunca practicaste.
Por qué la práctica es crucial en machine learning
Los algoritmos se entienden mejor cuando los implementás. No es lo mismo leer que LayerNorm normaliza sobre la última dimensión que descubrir (por ensayo y error en un test case) que si normalizás sobre la dimensión equivocada, todo el training se rompe. La diferencia entre un ML engineer que pasó 6 meses leyendo papers y uno que implementó transformers desde cero es como la diferencia entre leer sobre natación en Wikipedia y meterte en una piscina.
Hay un problema structural en el onboarding de ML engineers: (spoiler: no tiene solución perfecta) pasamos años usando librerías que abstraen los detalles, y después en producción nos encontramos con problemas que no podemos resolver porque no entendemos qué está pasando adentro. GSC te muestra que un post ranquea mal, pero no te dice por qué. Un modelo de IA en producción devuelve predicciones raras, pero sin entender qué hace cada componente, no tenés forma de debugguear. La práctica estructurada en implementación resuelve esto: no es solo memorizar conceptos, es construir intuición real sobre cómo funcionan las cosas cuando todo se rompe.
Introducción a Pyre-Code: la plataforma de 68 problemas
Pyre-Code es una plataforma de práctica interactiva self-hosted creada por whwangovo. El objetivo es simple: implementar los internals de sistemas AI modernos. No “usar” transformers, sino implementarlos. No aplicar RLHF, sino escribir el código de RLHF desde cero.
La plataforma tiene 68 problemas distribuidos en categorías que van desde lo fundamental (activaciones como ReLU, embeddings) hasta arquitecturas complejas (transformers con atención multi-cabeza, training distribuido, alineación de modelos, difusión). Cada problema es un código incompleto que vos tenés que rellenar. Cuando subís la solución, obtenés feedback instantáneo en el navegador: pasa los tests o no. Si no pasa, podés ver la solución de referencia. Si querés un hint, la plataforma puede darte sugerencias con IA (esto es opcional y corre localmente si activás el feature).
Características principales de Pyre-Code
Editor en el navegador con syntax highlighting. Usá Monaco (el mismo editor que VS Code), escribí código, y obtenés feedback al enviar. No necesitás clonar nada en local ni abrir un IDE separado.
Instant feedback por test case. Subís la solución y en segundos sabés si pasó todos los tests. Ojo con esto: los test cases son exhaustivos, así que si tu implementación tiene un bug de off-by-one o un error de normalización, lo vas a detectar inmediatamente. No hay forma de pasar un test si tu código está mal. Ya lo cubrimos antes en ejecutar herramientas de IA sin depender de APIs externas.
Reference solutions incluidas. Cada problema tiene una solución de referencia que podés consultar después de intentarlo. No es un “spoiler”, es aprendizaje: ves cómo lo hizo el creador, compará con tu approach, aprendés patterns que probablemente no habías considerado.
Progress tracking. La plataforma guarda qué ejercicios completaste, cuál es tu score, en qué categoría te va bien y en cuál te cuesta. Esto es útil si estudiás de a poco: volvés mañana y sabés exactamente dónde estabas.
AI hints opcionales. Si querés una pista sobre cómo resolver un problema, podés pedirle al sistema. Esto corre localmente (a menos que setees config para usar una API externa), así que tu código no se sube a ningún lado. La realidad es que si necesitás la pista, probablemente también necesites ver la solución, pero el feature existe.
Cómo instalar y usar Pyre-Code
La instalación es lo más piola de todo. Tenés varias opciones:
Quick setup con script. Bajás el repo, corrés ./setup.sh y listo. El script te arma el ambiente de Python, instala dependencias, y levanta el servidor. Frontend en localhost:3000, backend en localhost:8000.
Con conda. Si preferís conda en vez de venv, hay instrucciones. Creá un environment, activá, instala requerimientos, y listo.
Manual con venv. Para los que prefieren control total: clone el repo, creá un venv, instala requerimientos, levantá el frontend y backend por separado.
Docker. Si no querés debugguear dependencias en tu máquina, hay Dockerfile. Un comando y está todo containerizado (si bien Docker agrega complejidad, acá simplifica porque no tenés que ver los detalles del sistema).
Stack técnico. Sabé qué estás corriendo: frontend en Next.js, backend en FastAPI, grading con torch_judge (que es basically PyTorch evaluando los tests), y SQLite para la BD. Nada de lo que no entendés. Si necesitás debugguear, todo es standard. Para más detalles técnicos, mirá herramientas de ML optimizadas para GPU.
Los 68 problemas: desde fundamentos hasta arquitecturas avanzadas
Los 68 ejercicios están organizados en categorías. No es una secuencia lineal donde hago uno, hago dos, hago tres. Es más bien un árbol donde algunos ejercicios construyen sobre otros.
Activaciones y Embeddings. Empezás con lo básico: implementar ReLU, Sigmoid, Tanh. Después embeddings, lookup tables, normalized embeddings. Estos son cimientos: si no entendés qué es una activación o cómo funciona un embedding, todo lo que viene después no cierra.
Normalización. LayerNorm, BatchNorm, RMSNorm. Acá es donde muchos se topan con detalles que nunca practicaron: dimensiones, inicialización, qué pasa en training vs. inference. BatchNorm sin tracking de running_mean/running_var no funciona en validación. LayerNorm mal indexado normaliza sobre la dimensión equivocada.
Atención y Transformers. Scaled dot-product attention (la operación fundamental). Multi-head attention (coordinar múltiples “cabezas” de atención). Causal attention (masks). Grouped Query Attention (GQA, una optimización). Flash attention (una implementación eficiente). Estos ejercicios son el corazón de la plataforma: implementar transformers es el skill que más pedidas en entrevistas técnicas de ML.
Position Encoding. Positional embeddings, rotary embeddings (RoPE). Suena simple (“agregar la posición al embedding”) pero hay detalles sobre cómo inyectar información de posición sin que interfiera con el resto del modelo.
Entrenamiento. Optimizadores: SGD básico, Momentum, Adam. Gradient clipping (crucial para evitar explosiones en RNNs y cuando entrenas modelos grandes). Learning rate scheduling. Warm-up. Estos son detalles que separan un training que funciona de uno que explota o no converge.
Entrenamiento Distribuido. Data parallelism. Model parallelism. Cómo coordinar múltiples GPUs o TPUs sin que cada una compute cosas diferentes. Esto es producción: nadie entrena un modelo grande en una sola GPU.
Inferencia. KV cache (para no recalcular tokens anteriores). Batching eficiente. Quantización. Serving. No es solo “tomar un modelo y predecir”, es optimizarlo para latencia y throughput reales. Complementá con privacidad al trabajar con código localmente.
Alineación. RLHF (Reinforcement Learning from Human Feedback). DPO (Direct Preference Optimization, un enfoque más moderno). PPO (Proximal Policy Optimization). Estos son los algoritmos que usan para “entrenar” ChatGPT a ser útil. No es trivial.
Difusión. Diffusion models (los que usa Stable Diffusion para generar imágenes). Reverse diffusion. Noise scheduling. Vision Transformers. Estos son los papers que salieron en 2022-2023 y todavía son complejos.
Casos de uso reales: desde estudiantes hasta ML engineers
Preparación para entrevistas técnicas. Si estás aplicando a Google, Meta, OpenAI, Anthropic o cualquier empresa grande de IA, en algún momento te van a preguntar: “Implementá un transformer / atención / RLHF / difusión.” Pyre-Code te da exactamente eso. No es un tutorial, es práctica real con feedback.
Aprendizaje para developers que quieren entender arquitecturas modernas. Talvez sos frontend engineer y querés entender cómo funciona un LLM. O sos backend engineer y necesitás servir modelos en producción. O sos data scientist y querés pasar de usar librerías a entender los internals. Pyre-Code es el puente.
Desarrollo profesional para ML engineers en producción. Si trabajás en un team de IA, hay problemas que no podés resolver sin entender los detalles. “¿Por qué el model explota durante training?” “¿Por qué la atención no está aprendiendo nada?” “¿Cómo debuggueo esto sin leerme el paper de nuevo?” Pyre-Code te da ese baseline de conocimiento.
Diferencia con cursos tradicionales. Un curso típico de Udemy o Coursera te enseña conceptos y vos escribís notebooks que usan scikit-learn o PyTorch. Aprendés qué es un transformer pero no cómo implementarlo. Pyre-Code es lo opuesto: no hay teoría separada, es todo “acá está el código incompleto, completalo, verificate con tests, mirá cómo lo hizo el expert”. Es learning by doing puro.
Comparativa con otras plataformas de práctica de ML
| Plataforma | Enfoque | Modo de ejecución | Costo | Feedback |
|---|---|---|---|---|
| Pyre-Code | Implementación de internals (transformers, RLHF, difusión) | Self-hosted (tu máquina, localhost) | Gratis (open source) | Instantáneo en el navegador, test cases exhaustivos |
| AprendeMachineLearning.com | Teoría + práctica con librerías (scikit, pandas, numpy) | En la plataforma, notebooks interactivos | Freemium, planes pagos | Lento, dependencia de la plataforma |
| Google ML Crash Course | Introducción conceptual a ML, TensorFlow | Colab (cloud), ejercicios guiados | Gratis | Validación automática de ejercicios |
| Udemy / Coursera (cursos de ML) | Conceptos + implementación con librerías standard | Videos + notebooks, tu máquina | Pagos (USD 15-200) | Foros de la comunidad, no automático |
| LeetCode Machine Learning | Problemas de ML + system design | En el navegador | Premium (USD 159/año) | Automático, test cases |

Por qué Pyre-Code se diferencia. La mayoría de plataformas de práctica te enseña a usar librerías. Google Crash Course está bien para principiantes pero es superficial. LeetCode tienes ML problems pero es más general. Pyre-Code es específico: “implementá lo que está dentro de las librerías que usas todos los días”. 68 problemas cuidadosamente seleccionados que cubren todo lo que necesitás saber para trabajar con IA moderna.
Errores comunes al practicar ML
Error 1: Creer que entender la teoría es lo mismo que poder implementar. Leés el paper de attention, ves las fórmulas, decís “claro, es simple” e intentás código. Y se rompe porque no inicializaste los pesos bien, o normalizaste sobre la dimensión equivocada, o los índices de PyTorch no hacen lo que creés que hacen. Pyre-Code te obliga a pasar el test: si tu implementación no funciona, no pasa. Sin atajos. Relacionado: exponer funcionalidades como APIs HTTP.
Error 2: Nunca practicar los internals que abstraen las librerías. Usás PyTorch toda la vida pero nunca implementaste un optimizer desde cero. Nunca escribiste manual backward pass. Nunca tuviste que debugguear por qué tu gradient explota. Después en una entrevista o en producción, no sabés qué está pasando. Pyre-Code te obliga a implementar: sin librerías que lo hacen por vos.
Error 3: Asumir que todas las operaciones que ves en papers son simples de codificar. Suena fácil, ¿no? “Normalized embeddings” es una línea. Pero “normalizar embeddings manteniendo gradientes correctos sin que explote el training” es otra cosa. Pyre-Code cubre esos detalles. Si no los tuviste en cuenta, tus tests fallan.
Preguntas Frecuentes
¿Necesito GPU para practicar con Pyre-Code?
No obligatoriamente. Los problemas de la plataforma están diseñados para ser resueltos en CPU. Si querés hacer training distribuido de verdad o trabajar con modelos grandes, sí necesitás GPU. Pero para aprender los algoritmos y pasar los test cases, CPU alcanza.
¿Cuánto tiempo tardé en completar los 68 problemas?
Depende tu nivel. Si ya implementaste transformers antes, talvez tardes 40-60 horas. Si es tu primer contacto con estos temas, podría ser 100+ horas. No es una carrera. La idea es aprender, no completarlos todos. Mucha gente elige 15-20 problemas clave (atención, RLHF, difusión) y profundiza en esos.
¿Es mejor Pyre-Code que un curso de Udemy sobre transformers?
Depende tu objetivo. Un curso de Udemy te enseña conceptos y vos implementás con librerías (PyTorch hizo el trabajo pesado). Pyre-Code te obliga a implementar los internals. Si buscás entrevista técnica o debugging profundo, Pyre-Code. Si querés un overview rápido de cómo funcionan las cosas, un curso. Lo ideal es combinar: mira un curso para entender, después hacé Pyre-Code para verificar que realmente entendiste.
¿Los hints con IA en Pyre-Code funcionan bien?
Los hints son útiles si te atascás en detalles menores (tipo, “¿cómo indexo esto en PyTorch?”). No son para resolver el problema por vos, son pistas. Si necesitás hints en cada problema, probablemente la plataforma sea demasiado avanzada para tu nivel actual. Y eso está bien, podés volver después con más experiencia.
¿Qué necesito saber antes de empezar Pyre-Code?
Python intermedio (clases, decoradores, generators). NumPy o PyTorch básico (cómo funcionan los tensores). Matemática lineal: vectores, matrices, multiplicación, transposición. Si no sabés esto, es mejor hacer un curso introductorio primero. Pyre-Code asume cierto baseline.
Conclusión
Pyre-Code es lo que necesitabas si querés pasar de “entiendo la teoría” a “puedo implementar y debugguear”. 68 problemas que van desde activaciones básicas hasta RLHF y difusión, feedback instantáneo, soluciones de referencia, todo self-hosted y gratis. No es un sustituto para cursos de ML (necesitás teoría también), pero es el complemento perfecto si tu objetivo es ser un ML engineer que realmente entiende qué está adentro de las librerías que usa.
Si estás preparando una entrevista técnica para un rol de IA, si trabajás en un equipo de ML y necesitás más profundidad, o si simplemente querés dejar de confiar ciegamente en las librerías, Pyre-Code es exactamente lo que buscabas. Y que sea open source y self-hosted es un plus: no dependés de que una plataforma siga existiendo, está en tu máquina, bajo tu control.

![I had fun testing out LTX's lipsync ability. Full open source Z-Image -> LTX-2.3 -> WanAnimate semi-automated workflow. [explicit music] - ilustracion](https://donweb.news/wp-content/uploads/2026/04/flujo-lipsync-ltx-wanimate-sincronizacion-hero-768x429.jpg)


![[PokeClaw] First working app that uses Gemma 4 to autonomously control an Android phone. Fully on-device, no cloud. - ilustracion](https://donweb.news/wp-content/uploads/2026/04/pokeclaw-gemma-4-android-autonomo-hero-768x429.jpg)

