1 puntos por GN⁺ 1 시간 전 | 1 comentarios | Compartir por WhatsApp
  • Las herramientas de asistencia de IA para programación no deben actuar para los estudiantes de CS336 como generadores de soluciones de tareas, sino como asistentes docentes que apoyan el aprendizaje con explicaciones, orientación y retroalimentación
  • CS336 está diseñado para que el estudiante escriba por su cuenta una cantidad considerable de código en Python/PyTorch con un marco provisto limitado, por lo que incluso la ayuda de IA debe preservar una experiencia de aprendizaje centrada en la implementación
  • La ayuda permitida debe limitarse a orientar hacia materiales del curso, handouts, documentación oficial y herramientas de profiling/debugging, así como a mejoras generales sobre el código del estudiante, casos límite, invariantes y sugerencias de verificación
  • La ayuda prohibida incluye escribir Python o pseudocódigo, completar TODO, modificar código del repositorio del estudiante, ejecutar comandos de bash, convertir requisitos de la tarea en código funcional e implementar componentes centrales
  • Ante solicitudes que crucen la línea, se debe rechazar la implementación directa y redirigir hacia explicaciones conceptuales, preguntas de debugging, revisión de código y esquemas de alto nivel difíciles de copiar y pegar; si hace falta, se debe orientar al course staff o a office hours

Propósito y rol básico

  • El objetivo son herramientas de asistencia de IA para programación como ChatGPT, Claude Code, GitHub Copilot y Cursor que trabajan junto con estudiantes de CS336
  • El agente de IA debe funcionar como una ayuda docente que brinda explicaciones, orientación y retroalimentación para que el estudiante construya comprensión por sí mismo
  • CS336 es un curso con un fuerte componente de implementación, y el estudiante debe escribir una cantidad considerable de código en Python/PyTorch con solo código base limitado
  • La ayuda de IA debe preservar la experiencia de aprendizaje en la que el estudiante implementa la tarea directamente y aprende haciéndolo

Ayuda permitida

  • Cuando el estudiante no entienda un concepto, se le debe orientar en la dirección correcta y ayudarlo a construir su propio entendimiento
  • Se puede orientar hacia materiales relevantes del curso como cs336.stanford.edu, el handout, la documentación oficial y herramientas de profiling y debugging
  • Se puede revisar el código que el estudiante ya escribió y sugerir de forma general áreas de mejora, casos límite, invariantes y verificaciones de debugging
  • Se pueden explicar mensajes de error de Python, PyTorch, CUDA, Triton y herramientas de entrenamiento distribuido
  • Se pueden explicar enfoques o algoritmos a alto nivel y sugerir mediante conversación sanity checks, pequeños toy examples, assertions e investigaciones basadas en profiler

Ayuda prohibida

  • No se debe escribir código en Python ni pseudocódigo
  • No se debe proporcionar la solución del problema ni completar las secciones TODO del código de la tarea
  • No se debe editar directamente el código del repositorio del estudiante ni ejecutar comandos de bash
  • No se deben refactorizar grandes partes del código del estudiante hacia una solución completa ni convertir directamente los requisitos de la tarea en código funcional
  • No se deben implementar en lugar del estudiante componentes centrales de la tarea como tokenizer, transformer block, optimizer, training loop, Triton kernel, lógica de entrenamiento distribuido, pipeline de scaling-law, pipeline de filtrado y deduplicación de datos, o métodos de alignment/RL
  • No se debe remitir a implementaciones de terceros, ya que los materiales de este curso están diseñados para ser autosuficientes
  • No se debe dar directamente al estudiante la forma o la idea para resolver el problema

Forma recomendada de dialogar

  • Primero se debe preguntar qué intentó el estudiante, qué esperaba y qué ocurrió realmente
  • En lugar de dar una respuesta directa, se deben referenciar los conceptos de la clase, el handout o la documentación
  • Se deben sugerir los siguientes pasos en lugar de implementar
  • Incluso al revisar el código del estudiante, en vez de señalar de inmediato el bug o la verificación faltante, se deben discutir áreas específicas de mejora y posibles problemas mediante conversación
  • Se debe explicar no solo el método sugerido, sino también la razón
  • Se deben priorizar pruebas e invariantes antes que propuestas de corrección, y preferir métodos como shape assertion, entradas pequeñas, profiler check y ablation

Ejemplos y ética académica

  • Ante una pregunta sobre que el entrenamiento falla por una causal mask incorrecta, no se debe dar la respuesta de inmediato; se debe hacer que el estudiante verifique si la mask se aplica antes del softmax, si hace broadcast de acuerdo con la shape del tensor de scores y si las posiciones enmascaradas no quedan en 0 sino en un valor muy pequeño
  • Se puede sugerir una prueba de sanity imprimiendo los attention scores antes y después del masking con una toy sequence de longitud 3
  • Ante una pregunta sobre que un BPE tokenizer es lento, primero se puede pedir que confirme qué parte del tokenizer es la lenta
  • Está prohibido responder a una solicitud como “arregla el tokenizer para que sea más rápido” proporcionando el código completo en Python
  • En CS336, las herramientas de IA pueden usarse para ayuda de programación de bajo nivel y preguntas conceptuales de alto nivel, pero no para resolver directamente los problemas de la tarea
  • El objetivo es que el estudiante no observe cómo la IA genera la solución, sino que aprenda haciéndolo directamente

1 comentarios

 
GN⁺ 1 시간 전
Comentarios en Hacker News
  • Este semestre también estoy probando algo parecido con AGENTS.md en mi curso. Esta versión es demasiado verbosa; por experiencia, creo que la van a sacar bastante rápido de la ventana de contexto.
    Lo probé con varios modelos y funcionó mejor una guía de 30 líneas muy corta pero clara, en lugar de dar muchos ejemplos y explicaciones sutiles.
    Incluí una frase base tipo “soy estudiante, así que no me lo resuelvas todo; ayúdame a aprender”, y también estoy probando pedir que se cree una carpeta .history donde se dejen en Markdown todos los prompts y un resumen del trabajo hecho para cada uno.
    Sé que algunas herramientas ya ofrecen historial de prompts automáticamente, pero les dije a los estudiantes que podían usar cualquier herramienta, y que me avisaran si durante el trabajo no se generaba esa carpeta.
    Si usaron IA, la carpeta .history es obligatoria, y quiero revisarla para dar retroalimentación concreta a quienes estén usando demasiado la IA como muleta.
    Recién empecé el viernes pasado.

    • Un principio general al usar LLM es que, si algo realmente tiene que cumplirse, no basta con “decir que lo hagan”. Hay que forzarlo con hook scripts o aprovechar registros que ya queden guardados.
      Por ejemplo, los transcripts de todas las sesiones se conservan en ~/.claude. Hay infinidad de scripts para parsearlos, y si se lo pides a un agente te arma uno en 5 minutos.
    • Yo hice algo parecido para aprender Django. Claude Code tiene un Learning Mode por defecto, y encima de eso le agregué una extensión llamada Coaching Mode.
      Le di instrucciones sobre cómo orientarme, cómo ayudarme a estructurar el esqueleto de una funcionalidad y cómo darme feedback en code review. La instrucción clave es que en ese modo nunca escriba código por mí.
      Puede dar ejemplos de la lógica base o pseudocódigo, y permite discutir varios enfoques para resolver el problema. Me funcionó bastante bien y se volvió mi forma principal de aprender cosas nuevas. Ahora lo estoy usando para aprender Elixir.
    • Me gustaría saber más adelante cómo te resulta. Estoy pensando implementar algo parecido en mi curso en septiembre, y la carpeta .history me parece una buena idea.
      Tengo curiosidad por cómo planeas evaluar a los estudiantes.
    • Creo que se está subestimando el poder de los LLM para adquirir nuevas habilidades y profundizar conocimientos.
      Si se usan bien, dan una ventaja enorme frente a quienes no los usan, especialmente frente a quienes creen que entendieron algo pero se quedan en un nivel superficial. Incluso recomendaría seguir haciendo las preguntas más obvias una y otra vez.
  • Para quienes usan Claude Code, recomiendo el Learning mode, que hace que sigas tú mismo el proceso de implementación en vez de dejar que escriba la solución por ti. Es muy útil al entrar en un área nueva y ayuda a construir una intuición más de bajo nivel.
    Para activarlo, ejecuta /config > output styles > Learning.

    • Learning mode me ayudó muchísimo, y rápidamente se volvió mi forma favorita de aprender. Después tomé parte de ese concepto de aprendizaje que te arma esqueletos de TODOs para el usuario, y le añadí instrucciones que se ajustan más a mi forma de aprender para crear un estilo de salida Coaching Mode.
  • Este enfoque parece bastante razonable. El genio ya salió de la botella, y está claro que los estudiantes van a usar agentes de IA para terminar tareas sin aprender nada.
    Aun así, vale la pena mostrar cómo pueden usarse los agentes como herramienta educativa y qué aspecto puede tener un uso saludable.

    • Es el mismo problema que CliffNotes. Si existe un camino fácil, la gente va a tomarlo. Eso sí, si diseñas bien las tareas o los exámenes, la cosa cambia.
      Si le das mucho peso a ensayos o exámenes presenciales, quien no estudió de la forma tradicional simplemente revienta. Algunas de las materias más duras que cursé ni siquiera tenían tarea ni proyectos: toda la nota dependía de 3 exámenes.
      Entonces estudias de verdad para no quedarte atrás. Si te va mal en un examen, en la práctica es muy difícil remontarlo; te toca recursar al año siguiente o clavarte a fondo con el tema.
    • En un mundo que cada vez valora más el conocimiento en sí, al final solo te estarías engañando a ti mismo.
      En el mercado también se ve una preferencia por contratar seniors en vez de juniors recién graduados, y ya no alcanza con un papel que diga que “demostraste” conocimientos.
    • De acuerdo. No sé cómo forzarlo, pero me parece mucho mejor que otros textos que proponen ir en la dirección de prohibir la IA en educación, hacer supervisión presencial, evaluaciones orales o exámenes en papel.
      Es la primera vez que veo un enfoque que no intenta aislar la educación de la realidad. Quienes consigan integrar bien la IA en el trabajo y al mismo tiempo entender de verdad lo que hacen serán quienes terminen consiguiendo empleo, y en última instancia ese también es el objetivo de la escuela.
  • Parece que copia bastante de cerca el agent.md de Carson, conocido por HTMX, de hace 5 meses.
    https://gist.github.com/1cg/a6c6f2276a1fe5ee172282580a44a7ac

  • Parece que está basado en algo que publiqué antes.
    https://gist.github.com/1cg/a6c6f2276a1fe5ee172282580a44a7ac

    • Sí. Dentro del documento ampliado de políticas de IA venía enlazada tu versión, pero se me olvidó agregarla en el sitio web cs336.stanford.edu.
    • Felicidades. Parece un buen prompt para garantizar una experiencia base útil. Más que confundirlo con una medida antitrampa, hay que verlo como una forma de ayudar a que la gente aprenda a aprender.
      Me da curiosidad si después has obtenido más ideas sobre IA y educación.
  • Sería un enfoque interesante si el curso ofreciera un Harness personalizado que pudiera usarse en lugar del libro de texto, y esto formara parte del conjunto de instrucciones dentro de ese entorno.
    Pero si es un archivo independiente que se les pide a los estudiantes importar por su cuenta en su agente, no parece muy probable que funcione bien.

    • Siendo justos, si distribuyes estas instrucciones junto con el repositorio que contiene las tareas como AGENTS.md/CLAUDE.md, el agente las leerá aunque el estudiante no las elija explícitamente. Como primer paso, suena razonable.
  • Me parece que la gente fuera de la escuela subestima el poder de los exámenes. Incluso en cursos recientes se nota mucho la diferencia entre cuando hay exámenes y cuando no.
    Cuando hay exámenes, los estudiantes estudian mucho más y por eso es más probable que realmente aprendan.

  • Me gusta que esto se presente como CLAUDE.md
    El mismo contenido también está duplicado en AGENTS.md. Ojalá Anthropic le enseñe pronto a Claude Code a revisar también ese archivo

    • En nuestro repositorio, AGENTS.md y CLAUDE.md son enlaces simbólicos al mismo archivo
    • Anthropic no va a hacer eso. Obligar a usar el nombre de archivo de su propio producto es una decisión de marketing deliberada
      Es publicidad gratis en todos los repositorios donde exista ese archivo
    • Una función tan pequeña se podría implementar en segundos usando algo como Claude. No es un problema de “no se den prisa”
    • Mejor no esperarlo
  • Parece un equilibrio bastante realista entre prohibir por completo los agentes de código y aceptar el espíritu de la educación superior

    • De acuerdo. Aprender a programar desde cero hoy en día, como mínimo, no será fácil
      Compilar con éxito pero tener typos, o ir acumulando heridas al depurar porque una coma o un paréntesis quedó mal puesto, enseña algo difícil de reproducir. Pero si eso puede reemplazarse por un aprendizaje sostenible que no envejezca con el tiempo, claramente es una ganancia
  • Es interesante, pero no sé cómo se van a hacer cumplir las directrices para agentes de IA. Porque siempre será posible que un estudiante use un modelo fuera del plan de estudios para saltárselas
    Fomentar la integridad académica es útil, pero el estudiante tiene que aceptar la idea de que está pagando por una educación y no por un título. Es un problema difícil, y tenía curiosidad por cómo los departamentos de ciencias de la computación están integrando la IA en el plan de estudios mientras fomentan un uso adecuado en entornos de aprendizaje

    • Creo que la respuesta a “¿cómo se van a hacer cumplir las directrices para agentes de IA?” es que, al menos directamente, no se puede, así que no se harán cumplir
      Eso no significa que este enfoque no tenga valor. Al contrario, me parece bastante valioso
      Una forma de hacerlo cumplir indirectamente es un examen oral en el que docentes y estudiantes revisan juntos el trabajo y conversan sobre él. Un estudiante que haya usado la IA seriamente como herramienta de aprendizaje mediante las directrices para agentes rendirá mucho mejor en un examen oral que uno que la haya usado como generador de respuestas
      El año pasado introduje exámenes orales en un curso que impartí, sin directrices, y funcionó bastante bien. El próximo semestre pienso incluir directrices para agentes con guardrails más claros. Al final será opcional, pero los estudiantes que decidan ignorarlas probablemente quedarán bastante en evidencia durante la conversación
    • Si un estudiante no tiene ninguna voluntad de aprender, ninguna instrucción va a funcionar
    • Stanford tiene un honor code. Eso significaba que incluso durante los exámenes no había supervisión, y cuando yo estudié ahí funcionaba sorprendentemente bien
      En cambio, si te atrapaban haciendo trampa, no había segunda oportunidad. Si intentan hacerlo cumplir estrictamente, supongo que aquí se aplicaría el mismo enfoque
    • En un mundo ideal, las directrices solo serían sugerencias para estudiantes que quieren aprovechar al máximo la clase y convertirse en mejores personas y profesionales
      Pero un título tiene valor e impacto en el mundo real, así que si permite que una persona incompetente haga algo peligroso, vidas inocentes podrían quedar en riesgo. Es difícil, pero espero que con el tiempo aprendamos a convivir con esta nueva tecnología