Claude puede enseñar a modelos más pequeños a resolver problemas complejos. Interesante, ¿no? En este artículo te explico cómo funciona el flujo de "teacher-student" usando la herramienta upskill, y por qué esto puede ahorrarte tiempo y dinero al desplegar modelos locales para tareas especializadas como escribir kernels CUDA.
Qué es upskill y por qué importa
upskill es una herramienta para generar, validar y transferir skills (capacidades) desde modelos potentes hacia modelos más baratos o locales. La idea es simple: usa un modelo caro y de alta calidad como "profesor" para crear una guía estructurada (un archivo SKILL.md y casos de prueba), y luego prueba esa guía con modelos más ligeros como "estudiantes".
¿Por qué te debería importar? Porque muchas tareas especializadas requieren conocimiento de dominio que los modelos pequeños no traen en contexto por defecto. Con upskill encapsulas ese conocimiento una sola vez y lo cargas cuando lo necesites. Es como pasarle tu manual experto a un asistente que antes no lo tenía.
Cómo funciona el flujo técnico (resumen práctico)
El profesor (por ejemplo Claude Opus-4.5) realiza la tarea en una sesión, generando un trace o registro.
A partir del trace se genera un SKILL.md y un conjunto de casos de prueba (skill_meta.json).
upskill ejecuta evaluaciones automáticas: prueba el desempeño del estudiante con y sin la skill y mide la "skill lift" (mejora en precisión) y el consumo de tokens.
Esto permite comparar modelos no solo por exactitud, sino por eficiencia de tokens y costo por tarea. Ideal para decidir si un modelo local es suficiente para producción.
Ejemplo práctico: escribir kernels CUDA con kernel-builder
El caso que muestra el post original es claro: usar Claude para crear una skill que enseña a construir kernels CUDA optimizados para PyTorch con la librería kernel-builder de HuggingFace.
¿Qué incluye la skill? Todo lo necesario: estructura del proyecto, build.toml, convenciones para arquitecturas GPU (por ejemplo H100 -> compute capability 9.0), optimizaciones (uso de memoria compartida, alineamiento), y bindings de PyTorch. Eso son 500 tokens que condensan horas de documentación.
Fragmento de la estructura que genera upskill:
./skills/kernel-builder-cuda-kernels/
├── SKILL.md # instrucciones principales (~520 tokens)
└── skill_meta.json # metadatos y casos de prueba
Los números son los que convencen. En el post se muestran casos concretos:
Un modelo local pasó de 40% a 85% de pase en las pruebas después de aplicar la skill (+45%).
Otro ejemplo: un modelo tipo sonnet pasó de 60% a 95% (+35%).
Pero ojo: no siempre es ganancia neta. En modelos grandes (p. ej. Claude Opus 4.5) la skill a veces no mejora precisión y puede aumentar el uso de tokens. ¿Qué significa eso? Que para tareas recurrentes quieres no solo precisión, sino eficiencia: llegar al mismo resultado consumiendo menos tokens.
Por tanto, upskill te da dos dimensiones: mejora en accuracy y cambio en token usage. Ambas importan para elegir tu modelo objetivo.
Cómo lo pruebas tú mismo (comandos útiles)
Instalar y correr es directo:
pip install upskill
# o usar uvx
uvx upskill --help
upskill usa Claude Opus-4.5 por defecto como generador, pero soporta OpenAI y endpoints compatibles para modelos locales.
Buenas prácticas y recomendaciones
Evalúa siempre con y sin la skill. No asumas que la skill mejora todo; mide.
Mide tokens además de accuracy. Para pipelines repetitivos la eficiencia puede ser más valiosa que una pequeña ganancia en precisión.
Itera: regenera la skill desde un trace mejorado o añade casos de prueba cuando fallan.
Versiona tus skills junto al código: ./skills/mi-skill/ es un activo compartible entre equipos.
¿Para qué más sirve esto? Capturar conocimiento interno, construir bibliotecas de skills para herramientas internas, y estandarizar cómo interactúan los agentes con tu stack.
Reflexión final
La idea es poderosa pero práctica: usa un modelo caro como profesor y modelos baratos como ejecutores. No es magia, es ingeniería de conocimiento empaquetado. Si trabajas con tareas especializadas —desde kernels CUDA hasta parsers de YAML internos— empaquetar ese conocimiento en skills puede ahorrarte horas de prompts y dinero en producción.