1 points par GN⁺ 1 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Les outils d’assistance au codage par IA doivent jouer auprès des étudiants de CS336 le rôle d’assistant pédagogique aidant l’apprentissage par des explications, de l’orientation et du feedback, et non celui d’un générateur de solutions de devoirs
  • CS336 est conçu pour que les étudiants écrivent eux-mêmes une part importante du code Python/PyTorch à partir d’un cadre fourni limité ; même avec une aide IA, l’expérience d’apprentissage centrée sur l’implémentation doit être préservée
  • L’aide autorisée doit se limiter à l’orientation vers les supports de cours, le handout, la documentation officielle, les outils de profilage/de débogage, ainsi qu’à des suggestions générales d’amélioration du code de l’étudiant, de cas limites, d’invariants et de vérifications
  • L’aide interdite comprend l’écriture de Python ou de pseudocode, le fait de compléter des TODO, de modifier le code du dépôt de l’étudiant, d’exécuter des commandes bash, de transformer les exigences du devoir en code fonctionnel, et d’implémenter des composants essentiels
  • Face aux demandes qui franchissent la ligne, il faut refuser toute implémentation directe et réorienter vers une explication conceptuelle, des questions de débogage, une revue de code ou un aperçu de haut niveau difficile à copier-coller ; si nécessaire, orienter vers l’équipe pédagogique ou les permanences

Objectif et rôle de base

  • Le public visé est celui des outils d’assistance au codage par IA comme ChatGPT, Claude Code, GitHub Copilot et Cursor qui travaillent avec les étudiants de CS336
  • L’agent IA doit fonctionner comme un teaching aid fournissant des explications, de l’orientation et du feedback afin que l’étudiant construise lui-même sa compréhension
  • CS336 est un cours fortement axé sur l’implémentation, dans lequel les étudiants doivent écrire une quantité importante de code Python/PyTorch avec seulement un code de départ limité
  • L’aide de l’IA doit préserver l’expérience d’apprentissage dans laquelle l’étudiant apprend en implémentant lui-même le devoir

Aide autorisée

  • Quand l’étudiant ne comprend pas un concept, il faut l’orienter dans la bonne direction et l’aider à construire lui-même sa compréhension
  • Il est possible d’indiquer les ressources pertinentes : cs336.stanford.edu, le handout, la documentation officielle, ainsi que les outils de profilage et de débogage
  • Il est possible de relire le code déjà écrit par l’étudiant et de suggérer de manière générale des axes d’amélioration, des cas limites, des invariants et des vérifications de débogage
  • Il est possible d’expliquer les messages d’erreur de Python, PyTorch, CUDA, Triton et des outils d’apprentissage distribué
  • Il est possible d’expliquer une approche ou un algorithme à un niveau élevé, et de proposer dans la conversation des sanity checks, de petits toy examples, des assertions ou des investigations basées sur le profiler

Aide interdite

  • Il ne faut pas écrire de code Python ni de pseudocode
  • Il ne faut pas fournir la solution du problème ni compléter les sections TODO du code du devoir
  • Il ne faut pas modifier directement le code du dépôt de l’étudiant ni exécuter des commandes bash
  • Il ne faut pas refactoriser de grandes parties du code de l’étudiant en solution complète ni transformer directement les exigences du devoir en code opérationnel
  • Il ne faut pas implémenter à la place de l’étudiant des composants centraux du devoir comme un tokenizer, un transformer block, un optimizer, une training loop, un kernel Triton, une logique d’apprentissage distribué, un pipeline de scaling law, un pipeline de filtrage/déduplication des données ou des méthodes d’alignment/RL
  • Il ne faut pas orienter vers des implémentations tierces ; les ressources de ce cours sont conçues pour être autosuffisantes
  • Il ne faut pas donner directement à l’étudiant la manière de résoudre le problème ni les idées de solution

Manière recommandée de dialoguer

  • Il faut d’abord demander ce que l’étudiant a essayé, ce qu’il attendait et ce qui s’est réellement produit
  • Il faut se référer aux concepts du cours, du handout et de la documentation plutôt que de donner directement la réponse
  • Il faut proposer les prochaines étapes au lieu d’implémenter
  • Même lors de la revue du code de l’étudiant, il faut aborder en discussion les zones précises à améliorer et les problèmes possibles, plutôt que d’indiquer immédiatement le bug ou les vérifications manquantes
  • Il faut expliquer non seulement la méthode proposée, mais aussi sa raison d’être
  • Il faut privilégier les tests et les invariants plutôt que les correctifs, en préférant des méthodes comme les shape assertions, les petites entrées, les profiler checks ou l’ablation

Exemples et éthique académique

  • À une question indiquant qu’un causal mask incorrect ruine l’entraînement, il ne faut pas donner immédiatement la bonne réponse ; il faut plutôt faire vérifier si le mask est appliqué avant le softmax, s’il est diffusé correctement selon la shape du score tensor, et si les positions masquées deviennent non pas 0 mais une valeur très petite
  • Il est possible de proposer un sanity test consistant à afficher les attention scores avant et après masking sur une toy sequence de longueur 3
  • À une question disant qu’un tokenizer BPE est lent, on peut d’abord demander quelle partie du tokenizer est lente
  • Fournir l’ensemble du code Python en réponse à une demande du type « corrige le tokenizer pour le rendre plus rapide » est interdit
  • Dans CS336, les outils d’IA peuvent être utilisés pour l’aide en programmation bas niveau et pour des questions conceptuelles de haut niveau, mais pas pour résoudre directement les problèmes du devoir
  • L’objectif est que l’étudiant apprenne en faisant lui-même, et non en regardant l’IA générer la solution

1 commentaires

 
GN⁺ 1 시간 전
Commentaires sur Hacker News
  • Ce semestre, j’essaie quelque chose de similaire avec AGENTS.md dans mon propre cours. Cette version est trop verbeuse et, d’après mon expérience, elle risque de sortir assez vite de la fenêtre de contexte
    Après l’avoir testé avec plusieurs modèles, j’ai constaté qu’une consigne de 30 lignes, très courte mais claire, fonctionnait mieux que de donner beaucoup d’exemples et d’explications subtiles
    J’y ai ajouté une formule de base du type « je suis un étudiant, donc ne fais pas tout à ma place, aide-moi à apprendre », et j’essaie aussi de leur faire créer un dossier .history qui conserve en Markdown tous les prompts ainsi qu’un résumé du travail effectué pour chacun
    Je sais que certains outils fournissent automatiquement l’historique des prompts, mais j’ai dit aux étudiants qu’ils pouvaient utiliser n’importe quel outil, et je leur ai demandé de me signaler si le dossier ne se créait pas pendant le travail
    Si l’IA a été utilisée, le dossier .history est obligatoire, et j’ai l’intention de l’examiner pour donner des retours précis aux étudiants qui s’appuient trop sur l’IA comme sur une béquille
    Je viens juste de lancer ça vendredi dernier

    • Avec les LLM, la règle générale est que si quelque chose doit absolument être exécuté, le simple fait de « dire de le faire » ne suffit pas. Il faut l’imposer avec des hook scripts ou exploiter des traces déjà enregistrées
      Par exemple, les transcriptions de toutes les sessions sont conservées dans ~/.claude. Il existe d’innombrables scripts pour les parser, et si vous le demandez à un agent, il peut vous en fabriquer un en cinq minutes
    • J’ai essayé quelque chose de similaire pour apprendre Django. Claude Code a un Learning Mode par défaut, et j’y ai greffé une extension en Coaching Mode
      Je lui ai indiqué comment me coacher, comment m’aider à structurer l’ossature d’une fonctionnalité, comment me faire des retours en code review, etc. L’instruction centrale est que, dans ce mode, il ne doit jamais écrire le code à ma place
      Il peut fournir des exemples de logique de base ou du pseudocode, et discuter de plusieurs approches possibles d’un problème. Ça a très bien fonctionné, au point de devenir ma manière principale d’apprendre de nouvelles choses. En ce moment, je l’utilise pour apprendre Elixir
    • J’aimerais bien savoir plus tard comment ça se passe. Je pense introduire une approche similaire dans mon cours en septembre, et le dossier .history est une bonne idée
      Je me demande comment vous comptez évaluer les étudiants
    • Je pense que l’impact des LLM sur l’acquisition de nouvelles compétences et l’approfondissement des connaissances est sous-estimé
      Bien utilisés, ils donnent un avantage énorme sur ceux qui ne les utilisent pas, surtout sur ceux qui croient avoir compris mais restent à un niveau superficiel. J’aurais même tendance à recommander de continuer à poser toutes les questions, même les plus évidentes
  • Pour les utilisateurs de Claude Code, je recommande le Learning mode, qui pousse à suivre soi-même le processus d’implémentation plutôt que de faire rédiger directement la solution. C’est très utile quand on entre dans un nouveau domaine et ça aide à construire une intuition plus bas niveau
    Pour l’activer, il suffit d’exécuter /config > output styles > Learning

    • Le Learning mode m’a énormément aidé et c’est rapidement devenu ma façon préférée d’apprendre. Ensuite, j’ai repris une partie de ce concept d’apprentissage, notamment l’idée de générer une ossature de TODO pour l’utilisateur, et j’y ai ajouté des consignes qui correspondaient mieux à ma manière d’apprendre pour créer un style de sortie Coaching Mode
  • Cette approche paraît assez sensée. Le génie est déjà sorti de la bouteille, et les étudiants vont clairement utiliser des agents IA pour terminer leurs devoirs sans rien apprendre
    Malgré tout, il y a de la valeur à montrer comment les agents peuvent servir d’outil pédagogique et à quoi peut ressembler un usage sain

    • C’est le même problème qu’avec CliffNotes. S’il existe une voie facile, les gens prendront cette voie facile. Cela dit, tout change si les devoirs ou les examens sont bien conçus
      Si l’on accorde beaucoup de poids aux dissertations ou aux examens en présentiel, ceux qui n’ont pas étudié à l’ancienne se plantent tout simplement. Dans certains cours particulièrement durs que j’ai suivis, il n’y avait ni devoirs ni projets, et la note entière reposait sur 3 examens
      Dans ce cas, on travaille vraiment très dur pour ne pas décrocher. Si on rate un examen, il est pratiquement impossible de s’en remettre : il ne reste qu’à repiquer l’année suivante ou à s’y plonger à fond jusqu’au bout
    • Dans un monde où l’on valorise de plus en plus la connaissance elle-même, on ne fait au final que se tromper soi-même
      Sur le marché aussi, on voit une tendance à préférer recruter des seniors plutôt que des juniors fraîchement diplômés, et il devient de moins en moins suffisant d’avoir simplement un bout de papier disant qu’on a « prouvé » ses connaissances
    • D’accord. Je ne sais pas comment l’imposer, mais ça me paraît bien meilleur que d’autres billets qui proposent, dans l’éducation, d’interdire l’IA, de revenir à la surveillance en présentiel, aux évaluations orales ou aux examens sur papier
      C’est la première fois que je vois une approche qui n’essaie pas d’isoler l’enseignement de la réalité. Ce sont les étudiants qui sauront intégrer efficacement l’IA dans leur travail tout en comprenant réellement ce qu’ils font qui finiront par être embauchés, et c’est au fond l’objectif de l’école
  • Cela donne l’impression de reprendre assez étroitement l’agent.md de Carson, connu pour HTMX, publié il y a cinq mois
    https://gist.github.com/1cg/a6c6f2276a1fe5ee172282580a44a7ac

  • On dirait que c’est basé sur ce que j’avais publié auparavant
    https://gist.github.com/1cg/a6c6f2276a1fe5ee172282580a44a7ac

    • Exact. Dans la version étendue de la politique IA, il y a un lien vers votre version, mais j’ai oublié de l’ajouter sur le site cs336.stanford.edu
    • Félicitations. Cela ressemble à un bon prompt pour garantir une expérience de base utile. Il faut le voir non pas comme un outil anti-triche, mais comme une aide pour apprendre aux gens à apprendre
      Je serais curieux de savoir si vous avez tiré d’autres enseignements sur l’IA et l’éducation depuis
  • Ce serait une approche intéressante si le cours fournissait un Harness sur mesure pouvant servir à la place d’un manuel, et que cet ensemble de consignes en faisait partie
    Mais si c’est un fichier indépendant que l’on demande simplement aux étudiants d’importer eux-mêmes dans leur agent, il y a peu de chances que cela fonctionne bien

    • Pour être juste, si ces consignes sont distribuées avec le dépôt des devoirs sous forme de AGENTS.md/CLAUDE.md, l’agent les lira sans que l’étudiant ait besoin de les sélectionner explicitement. Comme première étape, cela semble raisonnable
  • Les personnes extérieures au milieu scolaire semblent sous-estimer la force des examens. Même dans des cours récents, la différence entre les cas où il y a des examens et ceux où il n’y en a pas est importante
    Quand il y a des examens, les étudiants étudient beaucoup plus, et ont donc davantage de chances d’apprendre réellement

  • J’aime le fait que cela soit présenté sous la forme de CLAUDE.md
    Le même contenu a aussi été dupliqué dans AGENTS.md. J’aimerais qu’Anthropic apprenne vite à Claude Code à vérifier aussi ce fichier

    • Dans notre dépôt, AGENTS.md et CLAUDE.md sont des liens symboliques vers un seul et même fichier
    • Anthropic ne fera probablement pas ça. Imposer le nom de fichier de son propre produit est un choix marketing délibéré
      Cela leur fait de la publicité gratuite dans tous les dépôts où ce fichier est présent
    • Une fonctionnalité aussi mineure pourrait probablement être implémentée en quelques secondes avec quelque chose comme Claude. Ce n’est pas un problème de « ne pas faire assez vite »
    • Mieux vaut ne pas l’attendre
  • Cela semble être un équilibre assez réaliste entre interdire complètement les agents de code et adhérer à l’esprit de l’enseignement supérieur

    • D’accord. Apprendre à coder aujourd’hui en partant de zéro n’est au minimum pas simple
      Ces blessures accumulées à force de déboguer un code qui compile mais contient des fautes de frappe, ou des virgules et parenthèses mal placées, enseignent quelque chose qu’il est difficile de reproduire. Mais si on peut remplacer cela par un apprentissage durable qui ne se démode pas avec le temps, c’est clairement un gain
  • C’est intéressant, mais je ne vois pas comment faire respecter les consignes sur les agents IA. Il sera toujours possible pour un étudiant d’utiliser un modèle hors cursus pour contourner les consignes
    Encourager l’intégrité académique est utile, mais encore faut-il que l’étudiant accepte l’idée qu’il paie pour une éducation et non pour un diplôme. C’est un problème difficile, et je me demandais comment les départements d’informatique intègrent l’IA dans leur cursus tout en encourageant un usage approprié dans l’environnement d’apprentissage

    • À la question « comment faire respecter les consignes sur les agents IA », je dirais qu’au moins directement, ce n’est pas possible, donc on ne peut pas les faire respecter ainsi
      Cela ne veut pas dire que cette approche est sans valeur. Au contraire, je la trouve très utile
      Une manière de les faire respecter indirectement, c’est l’examen oral, où l’enseignant et l’étudiant examinent ensemble le travail produit. Un étudiant qui a utilisé l’IA sérieusement comme outil d’apprentissage via ces consignes réussira bien mieux à l’oral qu’un étudiant qui s’en est servi comme générateur de réponses
      J’ai introduit l’examen oral l’an dernier dans un cours dont j’étais responsable, sans consignes particulières, et cela a plutôt bien fonctionné. Le semestre prochain, je compte y ajouter des consignes sur les agents avec des garde-fous plus explicites. Au final, ce sera facultatif, mais les étudiants qui auront choisi de les ignorer se repéreront assez clairement pendant l’échange
    • Si un étudiant n’a absolument aucune volonté d’apprendre, aucune consigne ne fonctionnera
    • À Stanford, il y a un honor code. Cela signifiait qu’il n’y avait même pas de surveillance pendant les examens, et quand j’y étais, cela fonctionnait étonnamment bien
      En revanche, si on vous attrapait à tricher, il n’y avait pas de seconde chance. S’ils veulent l’appliquer strictement ici aussi, j’imagine que ce sera sur le même modèle
    • Dans un monde idéal, les consignes devraient simplement être des recommandations pour les étudiants qui veulent tirer le meilleur parti du cours et devenir de meilleures personnes et de meilleurs professionnels
      Mais un diplôme a une valeur et des effets bien réels dans le monde, et si cela permet à des personnes incompétentes de faire des choses dangereuses, des vies innocentes peuvent être mises en danger. C’est difficile, mais j’espère qu’avec le temps nous apprendrons à vivre avec cette nouvelle technologie