Effiziente Projektbewertung in NLP-Kursen: Teil-automatisierte Bewertungen und Erkennung kopierter Codes im Fokus

Stand-Up vom 9. Dez. 2024 mit Andreas Marfurt

Im Rahmen eines Experimentiermoduls hat Andreas Marfurt eine teil-automatisierte Methode zur Projektbewertung getestet. AI/ML-Studierende im Kurs Natural Language Processing (NLP) bearbeiten während des Semesters fünf Einzelprojekte, die alle bewertet werden wollen. Die Projekte dauern jeweils zwei Wochen, beinhalten eine Aufgabenstellung aus der Berufspraxis und werden in Python-Jupyter-Notebooks gelöst. Bei der Bewertung stellen sich neben dem zeitlichen Aufwand insbesondere drei Herausforderungen.

  1. Code-Formatierung: Unterschiedliche Setups der Studierenden führen zu uneinheitlich formatiertem Code.
  2. Plagiatserkennung: Studierende könnten Code austauschen oder kopieren.
  3. Fehler finden

Automatisierungsansätze

  1. Code-Formatierung mit ‚black‘: Alle Notebooks werden zuerst mit dem Python-Formatter  black auf einen einheitlichen Standard gebracht, was den Bewertungsprozess erleichtert.
  2. Plagiatserkennung mit MOSS: Das Tool Measure of Software Similarity (MOSS) erkennt Code-Duplikate und berücksichtigt dabei auch Änderungen wie Variablenumbenennungen oder andere triviale Anpassungen. MOSS liefert detaillierte Berichte zu Ähnlichkeiten, wobei Standardteile wie bereitgestellter Code ignoriert werden können. Dazu ist es notwendig, die Codezellen aus den Jupyter-Notebooks zu extrahieren und zu reinen Python-Skripten zu konvertieren – bevor sie hochgeladen über MOSS verglichen werden.
    Datenschutz: MOSS ist von der Stanford University entwickelt und wird weiterhin aktuell gehalten. Die Daten sind lediglich über einen Link 14 Tage öffentlich zugänglich. Trotzdem sollten die Daten wenn möglich keine persönlich identifizierbaren Informationen enthalten. Werden nur die Codezellen angeschaut, ist das normalerweise der Fall.
  3. Fehlererkennung mit LLM
    Der Test zeigte, dass das LLM komplexe Fehler – wie beispielsweise falsch benannte Variablen oder kritisch ungenutzte Optionen – schnell erkannte. Zusätzlich führte die Überprüfung mit dem LLM zum Erkennen von Fehlern, die vom Dozenten übersehen worden wären: eine falsche Bibliothek – oder eine verwirrende Benennung von Variablen. Allerdings gab es auch viele False Positives, Fehler, die keine echten Probleme darstellten. Zudem zeigte sich, dass grössere Modelle präziser arbeiten als kleinere Varianten.
Identifikation von Fehlern, falsch benannte Variablen sowie kritisch ungenutzte Optionen durch das LLM.

Vorgehen: Um Fehler in den Studierenden-Projekten zu finden, wurden nur die Code-Zellen analysiert (ohne Kommentare), um gezielt technische Probleme zu finden. Der Prompt musste dazu einige Male iterativ angepasst werden, um beispielsweise Verbesserungsvorschläge auszuschliessen.

Erfahrungen und Erkenntnisse

  • Erfolge: Die Automatisierungen kann den Bewertungsaufwand erheblich reduzieren, weil Fehler weniger lang gesucht werden müssen. Und sie helfen, den Prozess mit Teaching Assistants (TAs) zu koordinieren.
  • Schwierigkeiten: Tools wie GitHub Copilot oder ChatGPT erschweren die Plagiatserkennung, da ähnliche generierte Lösungen vorkommen können. Dennoch konnten klare Fälle von Codekopien identifiziert und adressiert werden.
    Grössere LLMs sind leistungsstärker: Es war tatsächlich so, dass das grössere Modell bedeutend besser funktioniert als das kleinere Modell.

Mögliche nächste Schritte
Die Automatisierungen in der Bewertung haben sich einigermassen bewährt, auch weil sie möglicherweise bei vielen Studierendenprojekt eine einheitlichere Bewertungen gewähren.

Mögliche nächste Schritte sieht Andreas Marfurt insbesondere in der weiteren Präszierung der Zielvorgaben oder Anwendungsbereiche, dass Projekte beispielsweise nach spezifischen Kriterien überprüft werden. Hingegen sieht er das Bewerten von ganzen Semesterarbeiten eher kritisch: „Ich glaube die Idee, mehr und mehr in die Überprüfung reinzupacken, kann zu sehr grosser Variabilität führen.“

Und zum Schluss noch dies: Automatisierter ZIP-Upload ins ILIAS
Neben der Fehlererkennung zeigte Andreas Marfurt wie er den Bewertungsprozess mit einem ZIP-Upload effizienter gestaltet: Eine Excel-Tabelle mit Noten und Feedback wird automatisiert in Textdateien umgewandelt, die direkt auf ILIAS hochgeladen werden. Dies spart richtig Zeit.

Bewertungen über den ZIP-Upload gesammelt auf ILIAS laden

 

Aufnahme des Stand-Up Meetings, Teil-automatisierte Bewertungen von Codeprojekten
Folien von Andreas Marfurt