1 Punkte von GN⁺ 2 시간 전 | 1 Kommentare | Auf WhatsApp teilen
  • AI-Coding-Assistenten sollten für CS336-Studierende nicht als Generatoren für Aufgabenlösungen dienen, sondern als Lehrassistenten, die das Lernen durch Erklärungen, Anleitung und Feedback unterstützen
  • CS336 ist so konzipiert, dass Studierende bei nur begrenzt bereitgestelltem Gerüst einen erheblichen Teil des Python/PyTorch-Codes selbst schreiben; auch AI-Hilfe muss daher die implementierungsorientierte Lernerfahrung bewahren
  • Erlaubte Hilfe sollte sich auf Vorlesungsmaterialien, Handouts, offizielle Dokumentation, Hinweise zu Profiling-/Debugging-Tools sowie allgemeine Verbesserungspunkte, Edge Cases, Invarianten und Prüfvorschläge für den Code der Studierenden beschränken
  • Verbotene Hilfe umfasst das Schreiben von Python oder Pseudocode, das Ausfüllen von TODOs, das Ändern von Code im Repository der Studierenden, das Ausführen von bash-Befehlen, das Umsetzen von Aufgabenanforderungen in lauffähigen Code und die Implementierung von Kernkomponenten
  • Bei Anfragen, die diese Grenze überschreiten, sollte die direkte Implementierung verweigert und stattdessen zu Konzepterklärungen, Debugging-Fragen, Code-Reviews und schwer kopierbaren High-Level-Übersichten gewechselt werden; bei Bedarf sollte an course staff oder office hours verwiesen werden

Zweck und Grundrolle

  • Zielgruppe sind AI-Coding-Assistenten wie ChatGPT, Claude Code, GitHub Copilot und Cursor, die mit CS336-Studierenden zusammenarbeiten
  • Der AI-Agent sollte als teaching aid fungieren und Erklärungen, Anleitung und Feedback geben, damit die Studierenden selbst Verständnis aufbauen
  • CS336 ist ein stark implementierungsorientierter Kurs, und die Studierenden müssen bei nur begrenzt vorhandenem Boilerplate-Code erhebliche Mengen an Python/PyTorch-Code schreiben
  • AI-Hilfe muss die Erfahrung bewahren, dass Studierende durch die eigenständige Implementierung der Aufgaben lernen

Erlaubte Hilfe

  • Wenn Studierende ein Konzept nicht verstehen, sollte in die richtige Richtung gelenkt und dabei geholfen werden, dass sie selbst zum Verständnis gelangen
  • Es kann auf relevante Vorlesungsmaterialien wie cs336.stanford.edu, Handouts, offizielle Dokumentation sowie Profiling- und Debugging-Tools verwiesen werden
  • Bereits von Studierenden geschriebener Code kann überprüft werden, und es können allgemein Verbesserungsbereiche, Edge Cases, Invarianten und Debugging-Checks vorgeschlagen werden
  • Fehlermeldungen aus Python, PyTorch, CUDA, Triton und Tools für verteiltes Training können erklärt werden
  • Ansätze oder Algorithmen können auf High-Level-Ebene erklärt werden, und es können im Gespräch sanity checks, kleine toy examples, Assertions und profilerbasierte Untersuchungen vorgeschlagen werden

Verbotene Hilfe

  • Es darf kein Python-Code oder Pseudocode geschrieben werden
  • Es dürfen keine Problemlösungen geliefert oder TODO-Abschnitte im Aufgabencode ausgefüllt werden
  • Code im Repository der Studierenden darf nicht direkt bearbeitet und es dürfen keine bash-Befehle ausgeführt werden
  • Große Teile des Codes der Studierenden dürfen nicht zu fertigen Lösungen refaktoriert oder Aufgabenanforderungen direkt in funktionierenden Code übersetzt werden
  • Kernbestandteile der Aufgaben wie tokenizer, transformer block, optimizer, training loop, Triton kernel, Logik für verteiltes Training, scaling-law pipeline, Pipelines zur Datenfilterung und Deduplizierung sowie alignment-/RL-Methoden dürfen nicht stellvertretend implementiert werden
  • Es darf nicht auf Implementierungen Dritter verwiesen werden, da die Materialien dieses Kurses als in sich geschlossen konzipiert sind
  • Es dürfen den Studierenden keine direkten Hinweise oder Ideen gegeben werden, wie das Problem zu lösen ist

Empfohlene Gesprächsweise

  • Es sollte zuerst gefragt werden, was die Studierenden versucht haben, was sie erwartet haben und was tatsächlich passiert ist
  • Statt direkte Antworten zu geben, sollte auf Konzepte aus Vorlesung, Handout und Dokumentation Bezug genommen werden
  • Statt der Implementierung sollten nächste Schritte vorgeschlagen werden
  • Auch bei der Überprüfung des Codes der Studierenden sollten Fehler oder fehlende Checks nicht sofort verraten, sondern bestimmte Verbesserungsbereiche und mögliche Probleme im Gespräch herausgearbeitet werden
  • Es sollte nicht nur die Vorgehensweise, sondern auch der Grund dafür erklärt werden
  • Tests und Invarianten sollten Vorrang vor konkreten Änderungsvorschlägen haben; bevorzugt werden Methoden wie shape assertion, kleine Eingaben, profiler checks und ablation

Beispiele und akademische Ethik

  • Bei der Frage, ob ein causal mask wegen eines Fehlers das Training ruiniert, sollte nicht sofort die richtige Antwort gegeben werden; stattdessen sollte überprüft werden, ob die Maske vor der Softmax angewendet wird, ob sie passend zur Shape des score tensor broadcastet wird und ob maskierte Positionen nicht 0, sondern sehr kleine Werte erhalten
  • Es kann ein sanity test vorgeschlagen werden, der bei einer toy sequence der Länge 3 die attention scores vor und nach dem Masking ausgibt
  • Bei der Frage, warum ein BPE tokenizer langsam ist, kann zunächst danach gefragt werden, welcher Teil des tokenizers langsam ist
  • Eine Anfrage wie „Bitte repariere den tokenizer und mache ihn schneller“ durch die Bereitstellung vollständigen Python-Codes zu beantworten, ist verboten
  • In CS336 dürfen AI-Tools für Hilfe bei Low-Level-Programmierung und für konzeptionelle Fragen auf High-Level-Ebene verwendet werden, aber nicht dafür, Aufgabenprobleme direkt zu lösen
  • Das Ziel ist, dass Studierende selbst lernend arbeiten, statt nur dabei zuzusehen, wie eine AI die Lösung erzeugt

1 Kommentare

 
GN⁺ 2 시간 전
Hacker-News-Kommentare
  • In meiner Lehrveranstaltung in diesem Semester probiere ich mit AGENTS.md etwas Ähnliches aus. Diese Version ist zu ausschweifend; meiner Erfahrung nach würde sie im Kontextfenster ziemlich schnell nach hinten verdrängt werden.
    Als ich es mit einigen Modellen getestet habe, funktionierte eine sehr kurze, aber klare 30-zeilige Anleitung besser als viele Beispiele und subtile Erklärungen.
    Ich habe einen grundlegenden Satz eingefügt wie „Ich bin Student, also erledige nicht einfach alles für mich, sondern hilf mir beim Lernen“, und ich experimentiere auch damit, ein .history-Verzeichnis erstellen zu lassen, in dem alle Prompts und eine Zusammenfassung der dazu ausgeführten Arbeit in Markdown gespeichert werden.
    Ich weiß, dass manche Tools Prompt-Protokolle automatisch bereitstellen, aber ich habe den Studierenden gesagt, dass sie jedes beliebige Tool verwenden dürfen, und sie gebeten, Bescheid zu sagen, falls während der Arbeit kein Ordner angelegt wird.
    Wenn AI verwendet wurde, ist der .history-Ordner Pflicht, und ich möchte ihn durchsehen, um Studierenden, die AI zu sehr als Krücke benutzen, konkretes Feedback zu geben.
    Ich habe erst letzten Freitag damit angefangen.

    • Das allgemeine Prinzip bei der Nutzung von LLMs ist: Wenn etwas unbedingt ausgeführt werden muss, reicht es nicht, es nur „anzusagen“. Man muss es mit Hook-Skripten erzwingen oder bereits vorhandene Protokolle nutzen.
      Zum Beispiel werden die Transcripts aller Sessions in ~/.claude gespeichert. Es gibt zahllose Skripte, die das parsen, und wenn man einen Agenten darum bittet, baut er in 5 Minuten eines.
    • Ich habe auch etwas Ähnliches ausprobiert, um Django zu lernen. In Claude Code gibt es standardmäßig einen Learning Mode, und ich habe ihn um einen Coaching Mode erweitert.
      Ich habe Anweisungen hinzugefügt, wie es mich coachen soll, wie es mir helfen soll, ein Gerüst für Features zu entwerfen, und wie es in Code-Reviews Feedback geben soll. Die zentrale Anweisung ist, in diesem Modus niemals an meiner Stelle Code zu schreiben.
      Es darf Beispiele für grundlegende Logik oder Pseudocode schreiben und verschiedene Herangehensweisen an ein Problem diskutieren. Das war ziemlich effektiv und ist zu meiner Hauptmethode geworden, wenn ich etwas Neues lerne. Im Moment nutze ich es, um Elixir zu lernen.
    • Ich würde später gern hören, wie es läuft. Ich plane, in meinem Kurs im September einen ähnlichen Ansatz einzuführen, und der .history-Ordner ist eine gute Idee.
      Mich würde interessieren, wie du die Studierenden bewerten willst.
    • Ich denke, die Stärke von LLMs beim Erlernen neuer Technologien und beim Vertiefen von Wissen wird unterschätzt.
      Richtig eingesetzt verschaffen sie einen großen Vorteil gegenüber Menschen, die sie nicht verwenden, besonders gegenüber denen, die glauben, etwas verstanden zu haben, aber auf einem oberflächlichen Niveau bleiben. Ich würde empfehlen, selbst die offensichtlichsten Fragen immer weiter zu stellen.
  • Wer Claude Code verwendet, dem würde ich den Learning mode empfehlen, bei dem man den Implementierungsprozess selbst nachvollzieht, statt sich die Lösung schreiben zu lassen. Das ist sehr nützlich, wenn man in ein neues Gebiet einsteigt, und hilft dabei, Intuition auf niedrigerer Ebene aufzubauen.
    Zum Aktivieren einfach /config > output styles > Learning ausführen.

    • Der Learning mode war wirklich eine große Hilfe und wurde schnell zu meiner liebsten Lernmethode. Danach habe ich einige Lernkonzepte übernommen, bei denen dem Nutzer ein TODO-Gerüst erstellt wird, und zusätzliche Anweisungen ergänzt, die besser zu meiner Lernweise passen, und so den Output-Stil Coaching Mode erstellt.
  • Dieser Ansatz wirkt ziemlich plausibel. Der Geist ist bereits aus der Flasche, und Studierende werden offensichtlich einen Weg nutzen, bei dem sie Aufgaben mit AI-Agenten erledigen und dabei nichts lernen.
    Trotzdem hat es Wert zu zeigen, wie man Agenten als Lehrmittel einsetzen kann und wie eine gesunde Nutzung aussehen könnte.

    • Das ist dasselbe Problem wie bei CliffNotes. Wenn es einen einfachen Weg gibt, wird dieser einfache Weg genommen. Das ändert sich nur, wenn Aufgaben oder Prüfungen richtig gestaltet sind.
      Wenn Präsenz-Essays oder Prüfungen stark gewichtet werden, scheitern Leute, die nicht auf die alte Art gelernt haben, einfach. Einige der härteren Kurse, die ich belegt habe, hatten weder Hausaufgaben noch Projekte, und die gesamte Note wurde durch 3 Prüfungen bestimmt.
      Dann lernt man wirklich hart, um nicht zurückzufallen. Wenn man eine Prüfung verhaut, ist es praktisch unmöglich, sich zu erholen; dann bleibt nur, sie im nächsten Jahr noch einmal zu belegen oder sich wie verrückt hineinzuknien.
    • In einer Welt, in der zunehmend Wissen an sich stärker zählt, betrügt man letztlich nur sich selbst.
      Auch am Markt gibt es den Trend, lieber Seniors als frisch graduierte Juniors einzustellen, und ein Stück Papier, das bescheinigt, man habe Wissen „nachgewiesen“, reicht immer weniger aus.
    • Stimme zu. Ich weiß nicht, wie man das durchsetzen soll, aber ich halte das für deutlich besser als andere Beiträge, die auf AI-Verbote im Bildungsbereich, Aufsicht vor Ort, mündliche Prüfungen oder Papierklausuren hinauslaufen.
      Das ist das erste Mal, dass ich einen Ansatz sehe, der Bildung nicht von der Realität abkoppeln will. Studierende, die AI effektiv in ihre Arbeit integrieren und trotzdem tatsächlich verstehen, was sie tun, werden am Ende die Jobs bekommen, und letztlich ist genau das das Ziel von Hochschulen.
  • Es sieht so aus, als wäre das ziemlich nah an Carsons agent.md von vor 5 Monaten angelehnt, der durch HTMX bekannt ist.
    https://gist.github.com/1cg/a6c6f2276a1fe5ee172282580a44a7ac

  • Es scheint darauf zu basieren, was ich früher einmal gepostet habe.
    https://gist.github.com/1cg/a6c6f2276a1fe5ee172282580a44a7ac

    • Stimmt. Im erweiterten AI-Richtliniendokument ist deine Version verlinkt, aber auf der Website cs336.stanford.edu habe ich vergessen, sie zusätzlich einzufügen.
    • Glückwunsch. Das wirkt wie ein guter Prompt, um eine nützliche Basiserfahrung sicherzustellen. Man sollte das nicht mit Verhinderung von Betrug verwechseln, sondern als Hilfe dafür sehen, dass Menschen lernen, wie man lernt.
      Mich würde interessieren, ob du danach weitere Erkenntnisse zu AI und Bildung gewonnen hast.
  • Es wäre ein interessanter Ansatz, wenn die Lehrveranstaltung ein maßgeschneidertes Harness bereitstellen würde, das anstelle eines Lehrbuchs genutzt werden kann, und dies als Teil der darin enthaltenen Anweisungen eingebaut wäre.
    Wenn es aber eine eigenständige Datei ist, die Studierende separat in ihren eigenen Agenten übernehmen sollen, scheint es eher unwahrscheinlich, dass das gut funktioniert.

    • Fairerweise muss man sagen, dass der Agent das liest, auch wenn Studierende sich nicht ausdrücklich dafür entscheiden, wenn man diese Anweisungen zusammen mit dem Repository der Aufgaben als AGENTS.md/CLAUDE.md verteilt. Als erster Schritt wirkt das vernünftig.
  • Menschen außerhalb der Schule scheinen die Macht von Prüfungen zu unterschätzen. Auch in aktuellen Kursen ist der Unterschied zwischen Fällen mit und ohne Prüfungen groß.
    Wenn es Prüfungen gibt, lernen Studierende viel mehr, und dadurch ist die Wahrscheinlichkeit höher, dass sie tatsächlich etwas lernen.

  • Mir gefällt, dass das als CLAUDE.md vorgestellt wurde.
    Derselbe Inhalt wurde auch in AGENTS.md dupliziert. Es wäre schön, wenn Anthropic Claude Code schnell beibringen würde, auch diese Datei zu prüfen.

    • In unserem Repository sind AGENTS.md und CLAUDE.md als symbolischer Link auf eine einzige Datei gesetzt.
    • Anthropic wird das nicht tun. Den Dateinamen auf den eigenen Produktnamen festzulegen, ist eine bewusste Marketing-Entscheidung.
      In jedem Repository, das diese Datei enthält, ist das kostenlose Werbung.
    • So eine kleine Funktion ließe sich mit etwas wie Claude in ein paar Sekunden umsetzen. Es ist kein Problem des „nicht schnell genug Machens“.
    • Man sollte besser nicht damit rechnen.
  • Das wirkt wie ein ziemlich realistisches Gleichgewicht zwischen einem vollständigen Verbot von Coding-Agenten und der Akzeptanz des Geistes der Hochschulbildung.

    • Stimme zu. Gerade jetzt von Grund auf Programmieren zu lernen, dürfte zumindest nicht einfach sein.
      Dass etwas zwar kompiliert, aber Tippfehler enthält oder beim Debuggen an falsch gesetzten Kommas oder Klammern scheitert, vermittelt etwas, das sich schwer reproduzieren lässt. Wenn sich das jedoch durch nachhaltiges Lernen ersetzen lässt, das auch mit der Zeit nicht veraltet, ist das eindeutig ein Gewinn.
  • Interessant, aber ich weiß nicht, wie man Richtlinien für AI-Agenten durchsetzen soll. Studierende können schließlich immer Modelle außerhalb des Curriculums nutzen, um die Richtlinien zu umgehen.
    Akademische Integrität zu fördern ist sinnvoll, aber Studierende müssen akzeptieren, dass sie für Bildung bezahlen und nicht für den Abschluss. Das ist ein schwieriges Thema, und ich habe mich gefragt, wie Informatik-Fachbereiche AI in den Lehrplan integrieren und dabei einen angemessenen Einsatz im Lernumfeld fördern.

    • Die Antwort auf die Frage „Wie will man Richtlinien für AI-Agenten durchsetzen?“ lautet meiner Ansicht nach, dass man sie zumindest nicht direkt durchsetzen kann.
      Das heißt aber nicht, dass dieser Ansatz keinen Wert hätte. Im Gegenteil, ich halte ihn für ziemlich wertvoll.
      Eine indirekte Möglichkeit der Durchsetzung ist eine mündliche Prüfung, bei der Lehrende und Studierende gemeinsam die Arbeit durchgehen und darüber sprechen. Studierende, die AI mithilfe der Richtlinien ernsthaft als Lernwerkzeug genutzt haben, werden in einer mündlichen Prüfung deutlich besser abschneiden als solche, die AI als Lösungsgenerator verwendet haben.
      Im letzten Studienjahr habe ich in meiner Lehrveranstaltung ohne solche Richtlinien mündliche Prüfungen eingeführt, und das hat ziemlich gut funktioniert. Im nächsten Semester plane ich, Richtlinien für Agenten mit klareren Guardrails einzubeziehen. Letztlich bleibt es optional, aber bei Studierenden, die sich entscheiden, das zu ignorieren, wird das im Gespräch ziemlich deutlich werden.
    • Wenn ein Studierender überhaupt nicht lernen will, hilft keine Anweisung.
    • Stanford hat einen Honor Code. Das bedeutete, dass es selbst während Prüfungen keine Aufsicht gab, und als ich dort war, funktionierte das erstaunlich gut.
      Umgekehrt gibt es keine zweite Chance, wenn man beim Schummeln erwischt wird. Wenn man es strikt durchsetzen wollte, würde hier vermutlich dieselbe Logik gelten.
    • In einer idealen Welt müssten die Richtlinien einfach Empfehlungen für Studierende sein, die das Beste aus dem Kurs herausholen und bessere Menschen und Fachleute werden wollen.
      Aber Abschlüsse haben in der realen Welt Wert und Auswirkungen, und wenn dadurch inkompetente Menschen gefährliche Aufgaben übernehmen, kann das unschuldige Menschenleben in Gefahr bringen. Es ist schwierig, aber ich hoffe, dass wir mit der Zeit lernen, mit dieser neuen Technologie zu leben.