GPTutor soll Anfänger:innen helfen, Coden zu lernen - oder Profis, den Code anderer zu verstehen. Das System liefert laut Team bessere Erklärungen als ChatGPT.
KI-basierte Coding-Tools wie GitHub CoPilot sind inzwischen weit verbreitet, und die Coding-Fähigkeiten von ChatGPT und insbesondere GPT-4 werden auch von Laien genutzt, um eigene Anwendungen zu entwickeln. Die Werkzeuge haben aber auch ein großes Potenzial als digitale Tutoren, um Anfänger:innen das Coden beizubringen oder Profis den existierenden Code anderer schneller verständlich zu machen.
Forschende aus Taiwan und Kanada präsentieren die Visual Studio Code Extension GPTutor, ein ChatGPT-basiertes Programmierwerkzeug zur Code-Erklärung.
GPTutor umgeht Probleme von ChatGPT & CoPilot
Laut dem Team liefert GPTutor bessere Ergebnisse als CoPilot oder ChatGPT bei der Erklärung von Code. Das Team identifizierte drei Probleme als häufige Einschränkungen bestehender Systeme:
- Oberflächliche Einblicke: Sie bieten nur Einblicke, die auf dem Code in der aktuellen Datei basieren und können Domänenlogik übersehen, insbesondere bei der Analyse von objektorientiertem Code, der Objekte aus anderen Dateien importiert.
- Überflüssige oder irrelevante Informationen: Andere Systeme liefern oft unnötige Erklärungen des gesamten Codes, selbst für eine bestimmte Codezeile, was zu unnötigen oder auch fiktiven Informationen führt.
- Mangel an aktuellem Wissen: Sprachmodelle wie ChatGPT wurden mit Daten bis 2021 trainiert und können daher keine zufriedenstellenden Erklärungen für neue, unpopuläre oder private Bibliotheken jenseits dieses Zeitraums liefern.
GPTutor umgeht diese Probleme, indem das zugrunde liegende Modell - in den Tests wurde OpenAIs GPT-3.5-turbo verwendet - mit zusätzlichen Informationen angereichert wird. Die Erweiterung nutzt verschiedene APIs in Visual Studio Code, um die Programmiersprache und den Code der aktuellen Datei sowie den Quellcode hinter ausgewählten Funktionen zu extrahieren. Mit diesen Daten wird dann eine Anfrage an ein Sprachmodell gesendet, das die verfügbaren Informationen nutzt, um den Code zu erklären. Wenn nur eine Zeile des Codes markiert ist, erklärt das System nur diese Zeile.
GPTutor liefert bessere Erklärungen als ChatGPT
In Tests konnte das Team nach eigenen Angaben zeigen, dass GPTutor im Durchschnitt relevantere Erklärungen liefert als CoPilot oder ChatGPT. Es produziere seltener irrelevante oder gar falsche Informationen und könne durch Rückgriff auf externen Code Informationen liefern, die kein anderes System liefern könne.
In Zukunft will das Team die Leistung von GPTutor durch Prompt Engineering weiter verbessern. Denkbar sei etwa eine heuristische Suche, um relevanten Code in der Codebasis zu identifizieren. Nach der Umwandlung des Codes in viele mögliche Prompts könnte GPTutor verschiedene Erklärungen anbieten, um die Präferenzen der Benutzer zu ermitteln und ihnen personalisierte Erklärungen und eine bessere Benutzererfahrung zu bieten.
GPTutor ist im Visual Studio Code Extension Marketplace verfügbar und der Source-Code ist verfügbar auf GitHub.