Sechs Tipps für besseres Codieren mit ChatGPT
HeimHeim > Blog > Sechs Tipps für besseres Codieren mit ChatGPT

Sechs Tipps für besseres Codieren mit ChatGPT

Apr 05, 2023

Sie können diesen Autor auch in PubMed Google Scholar suchen

Illustration von The Project Twins

Sofern Sie nicht unter einem Felsen gelebt haben, kennen Sie ChatGPT. Der Chatbot, der auf künstlicher Intelligenz (KI) basiert und von OpenAI in San Francisco, Kalifornien, entwickelt wurde, bietet unheimlich menschenähnliche Antworten auf Benutzerfragen (so genannte Eingabeaufforderungen) zu fast jedem Thema. ChatGPT wird auf einem riesigen Textkorpus trainiert und seine Fähigkeit, sich an textbasierten Konversationen zu beteiligen, bedeutet, dass Benutzer seine Antworten verfeinern können. Auch wenn die ersten Antworten unklar sind, liefert es am Ende oft genaue Ergebnisse, einschließlich des Softwarecodes.

Forscher können ChatGPT verwenden, um Code zu debuggen und zu kommentieren, Software von einer Programmiersprache in eine andere zu übersetzen und routinemäßige Vorgänge wie das Plotten von Daten durchzuführen. In einem Preprint vom März wurde berichtet, dass das Programm 76 % der 184 Aufgaben in einem Einführungskurs in die Bioinformatik, beispielsweise die Arbeit mit Tabellenkalkulationen, nach einem einzigen Versuch und 97 % innerhalb von sieben Versuchen lösen konnte1.

Das sind gute Nachrichten für Forscher, denen das Programmieren unangenehm ist oder denen das Budget für die Anstellung eines Vollzeitprogrammierers fehlt – für sie können Chatbots ein demokratisierendes Werkzeug sein.

Doch trotz ihrer scheinbaren Intelligenz sind Chatbots nicht intelligent. Man hat sie als stochastische Papageien bezeichnet, in Anlehnung an das, was sie zuvor gesehen hatten. Amy Ko, Informatikerin an der University of Washington in Seattle, beruft sich auf eine langjährige US-Quizshow, um die Grenzen des Tools zu beschreiben, und schreibt auf der Social-Media-Site Mastodon: „ChatGPT ist wie ein verzweifelter ehemaliger Jeopardy-Kandidat, der aufgehört hat, Pop zu folgen.“ Kultur im Jahr 2021, möchte aber wirklich wieder ins Spiel kommen und ist außerdem ein Roboter ohne Bewusstsein, Entscheidungsfreiheit, Moral, verkörperte Erkenntnis oder emotionales Innenleben. (Die zum Training von ChatGPT verwendeten Daten reichen nur bis ins Jahr 2021.)

Kurz gesagt, ChatGPT und verwandte Tools, die auf großen Sprachmodellen (LLMs) basieren, zu denen Microsoft Bing und GitHub Copilot gehören, sind unglaublich leistungsstarke Programmierhilfen, müssen jedoch mit Vorsicht verwendet werden. Hier sind sechs Möglichkeiten, dies zu tun.

Chatbots eignen sich am besten für kleine, diskrete Programmieraufgaben, wie das Laden von Daten, das Durchführen grundlegender Datenmanipulationen und das Erstellen von Visualisierungen und Websites. Aber das ist nicht dasselbe wie Software-Engineering, sagt Neil Ernst, Informatiker an der University of Victoria in Kanada.

ChatGPT: fünf Prioritäten für die Forschung

„Software-Engineering ist viel mehr als nur das Lösen eines Programmierrätsels“, erklärt Ernst. „Es geht darum, über Test-Frameworks nachzudenken, wartbaren Code zu schreiben und die Kompromisse zu verstehen, die mit dem Aufbau eines Systems einhergehen“ – etwa zwischen Geschwindigkeit und Lesbarkeit. „Ich glaube nicht, dass die aktuellen Tools eines dieser Probleme lösen.“

Damit bleiben noch viele Aufgaben übrig, die sie erledigen können, wie zum Beispiel das Merken der Syntax zum Erstellen von Visualisierungen mit Matplotlib, einer Grafikbibliothek für die Programmiersprache Python. In diesem Sinne sind Chatbots wie eine Konversationsschnittstelle zu Stack Overflow, einem Online-Frage- und Antwortforum für Programmierer. „Das sind Dinge, die niemand besonders gerne schreibt“, sagt Ernst, „und es spart uns Zeit, die schwierigen analytischen Fragen zu stellen, die wir möglicherweise zu den Daten haben.“

Chatbots können auch gut erklären, warum Code nicht funktioniert. Emery Berger, Informatiker an der University of Massachusetts Amherst, hat diese Fähigkeiten genutzt, um mehrere hilfreiche Tools zu entwickeln. Einer namens cwhy verwendet ChatGPT, um Compilerfehler in Code zu erklären, der in den Programmiersprachen C, C++ und Rust geschrieben wurde. Ein anderes, ChatDBG, bietet eine Konversationsschnittstelle zum Debuggen, und ein drittes, Scalene, nutzt die KI, um Codeoptimierungen zur Verbesserung der Leistung vorzuschlagen.

Chatbots können sogar Code von einer Programmiersprache in eine andere übersetzen. Mathieu Coppey, Biophysiker am Curie-Institut in Paris, nutzt ChatGPT, um ihm beim Wechsel von MATLAB, seiner bevorzugten Sprache, zu Python zu helfen. Wenn er Google und Online-Foren nutzt, braucht er normalerweise Tage, um seinen Python-Code zum Laufen zu bringen. „Jetzt schaffe ich das in etwa einer Stunde“, sagt er.

Chatbots wissen vielleicht nicht immer, wovon sie sprechen, aber sie klingen auf jeden Fall so. In manchen Fällen versteht die KI die Frage nicht; In anderen Fällen liefert es eine falsche Antwort. Wenn der Code nicht ausgeführt werden kann, sind solche Fehler offensichtlich. Manchmal wird der Code jedoch ausgeführt, liefert aber das falsche Ergebnis.

Laut einer Studie2, die von der Linguistin Emily Morgan an der University of California, Davis, mitverfasst wurde, erzeugen Chatbots – wie der von Menschen geschriebene Code, mit dem sie trainiert wurden – oft das, was sie als „einfache, dumme Fehler“ bezeichnet. Diese einzeiligen Fehler, wie z. B. die Verwendung von > anstelle von >= in einer bedingten Anweisung, sind leicht zu beheben, aber schwer zu finden. „Wenn Sie nicht genug wissen, um den Unterschied zwischen etwas Richtigem und etwas, das im Grunde Unsinn ist, zu erkennen, könnten Sie in Schwierigkeiten geraten“, sagt sie.

Was ChatGPT und generative KI für die Wissenschaft bedeuten

Iza Romanowska, eine Komplexitätsforscherin, die am Aarhus Institute of Advanced Studies in Dänemark antike Zivilisationen untersucht, hat ChatGPT verwendet, um Code in einer Sprache namens NetLogo zu erstellen. Da in NetLogo weniger Online-Code geschrieben ist als in den Sprachen Python und R, beherrscht ChatGPT diesen weniger fließend. Manchmal würzt die KI ihren vorgeschlagenen Code mit Funktionen, die eigentlich nicht existieren, sagt sie – ein Verhalten, das manchmal als Halluzination bezeichnet wird.

Die Quintessenz ist, nicht blind zu akzeptieren, was ChatGPT Ihnen bietet – lesen Sie es sorgfältig durch und testen Sie es. Stellen Sie sicher, dass es in „Randfällen“ wie erwartet funktioniert. Enthält ein Algorithmus zum Sortieren von n Zahlen beispielsweise die n-te Zahl? Patrick Lam, Informatiker an der University of Waterloo in Kanada, sagt: „Ich würde dem nicht weiter vertrauen, als ich es werfen kann.“

Chatbots geben Code aus, der ihre Trainingsdaten widerspiegelt. Das ist nicht immer eine gute Sache, sagt Ko. „Die Gesamtqualität des Codes im Web, der geteilt wird und auf dem diese [Chatbots] trainiert werden, ist tatsächlich ziemlich niedrig.“

Ebenso wenig wie zufälliger Online-Code wahrscheinlich besonders effizient oder robust ist, gilt dies auch für von Chatbots generierter Code. Beispielsweise funktioniert es möglicherweise nicht gut bei großen Datensätzen und kann Sicherheitslücken enthalten.

Könnte KI Ihnen beim Schreiben Ihrer nächsten Arbeit helfen?

Brendan Dolan-Gavitt, Informatiker an der New York University, sagt, dass er und sein Team das Copilot-Programmiertool von Github, als es 2021 auf den Markt kam, in 89 sicherheitsrelevanten Szenarien getestet haben. Eine davon war die Möglichkeit, mithilfe der Sprache SQL nach fehlerhaften Abfragen zu suchen, die eine Datenbank beschädigen könnten – bekannt als SQL-Injection-Angriff3. „Etwa 40 % der Zeit produzierte Copilot Code, der angreifbar war.“ Das ist ein bewegliches Ziel – als Dolan-Gavitt diese Szenarien auf eine neuere Version des ChatGPT zugrunde liegenden LLM namens GPT-4 übertrug, sank die Fehlerquote auf 5 %.

Dennoch lohnt es sich, Ihren Code zu überprüfen. Denken Sie aber auch an die Anwendung – nicht alles ist geschäftskritisch. Beispielsweise kann die Webschnittstelle zu einer Datenbank oder einem Visualisierungstool besondere Wachsamkeit erfordern. Aber wenn Sie wissen, wie die Antwort auf Ihr Programmierproblem aussehen sollte: „Machen Sie es einfach“, sagt der Informatiker Sayash Kapoor von der Princeton University in New Jersey, „denn es ist leicht zu überprüfen, ob Sie falsch liegen.“

Chatbot-basiertes Codieren, sagt Ko, „ist kein einmaliges Erlebnis“. Es ist ein Gespräch. „Man schreibt etwas, man bekommt etwas zurück, man liest es skeptisch, man verlangt mehr Details, man verlangt, dass etwas repariert wird.“

Gangqing (Michael) Hu, der die Kerneinrichtung für Bioinformatik an der West Virginia University in Morgantown leitet, nutzte diesen iterativen Arbeitsablauf, um eine Methode namens OPTIMAL4 zu entwickeln, mit der Anfänger in der Bioinformatik Chatbot-Eingabeaufforderungen optimieren können. Benutzer stellen detaillierte Eingabeaufforderungen bereit, testen die Antworten und geben Rückmeldungen an den Chatbot, um dessen Antworten zu optimieren. Dazu können Fragen zu Fehlern sowie Änderungen an der Eingabeaufforderung selbst gehören. „Kommunikation ist der Schlüssel“, erklärt Hu.

Wenn Sie nicht weiterkommen, versuchen Sie, die Einstellungen anzupassen, schlägt Xijin Ge vor, ein Bioinformatiker an der South Dakota State University in Brookings. Die „Temperatur“-Einstellung von ChatGPT steuert beispielsweise die Kreativität – je höher die Temperatur, desto kreativer die Ausgabe. „Manchmal funktioniert es“, sagt Ge.

Aber nicht immer – in manchen Fällen „muss man eingreifen und übernehmen“, sagt Ko.

Chatbots sind keine Menschen, aber es kann hilfreich sein, sie so zu behandeln. „Behandeln Sie diese KI wie einen Sommerpraktikanten“, rät Ge – ein College-Student, der fleißig und zufrieden stellend, aber auch unerfahren und fehleranfällig ist.

Vermeiden Sie Mehrdeutigkeiten und zerlegen Sie Ihr Problem in kleinere Teile, schlägt Paul Denny vor, Informatiker an der University of Auckland, Neuseeland.

NatureTech-Hub

Noch ein Tipp: Weisen Sie den Chatbot an, eine Rolle einzunehmen, beispielsweise die eines Biologen, der fließend Python spricht. Geben Sie die Tools oder Programmierbibliotheken an, die Sie verwenden möchten. Solche Anweisungen können dem Chatbot helfen, „in den richtigen probabilistischen Raum zu gelangen“, sagt Ko – das heißt, sich auf den Text zu konzentrieren, der der Aufforderung am wahrscheinlichsten folgt.

Beispielsweise wurde ChatGPT in einer Eingabeaufforderung in Hus Studie4 gefragt: „Verhalten Sie sich als erfahrener Bioinformatiker, der sich mit ChIP-Seq-Datenanalyse auskennt. Sie werden mir dabei helfen, Code mit möglichst geringer Zeilenanzahl zu schreiben. Setzen Sie den Thread zurück, wenn Sie dazu aufgefordert werden. Antworten.“ JA, wenn ich es verstanden habe.

Und wenn möglich, geben Sie Startcode, Kommentare und erwartete Ergebnisse an. „Beispiele können ChatGPT wirklich dabei helfen, es in die richtige Richtung zu lenken“, sagt Dong Xu, Informatiker an der University of Missouri, Columbia.

Schließlich entwickeln sich LLMs ständig weiter und werden immer leistungsfähiger. Das sind gute Nachrichten für Forscher, auch wenn es sie auf Trab halten wird. Die Länge der Eingabeaufforderungen nimmt zu, was differenziertere Antworten ermöglicht. Und es entstehen ständig neue Tools. Ein Plug-in namens Code Interpreter verwandelt ChatGPT in einen digitalen Datenanalysten, der es Benutzern ermöglicht, Datensätze hochzuladen, Fragen zu ihren Daten zu stellen und Ergebnisse herunterzuladen. Wie ein Blogger zum Thema KI es ausdrückte: „Es ist, als würde man ein Gespräch mit seinen Daten führen. Wie cool ist das?“

Natur618, 422-423 (2023)

doi: https://doi.org/10.1038/d41586-023-01833-0

Piccolo, SR et al. Vorabdruck unter https://arxiv.org/abs/2303.13528 (2023).

Jesse, K. et al. Vorabdruck unter https://arxiv.org/abs/2303.11455 (2023).

Pearce, H. et al. Vorabdruck unter https://arxiv.org/abs/2108.09293 (2021).

Shue, E. et al. Wie viel. Biol. https://doi.org/10.15302/J-QB-023-0327 (2023).

Artikel Google Scholar

Referenzen herunterladen

ChatGPT: fünf Prioritäten für die Forschung

Was ChatGPT und generative KI für die Wissenschaft bedeuten

Könnte KI Ihnen beim Schreiben Ihrer nächsten Arbeit helfen?

Wie ich ChatGPT in meinem Unterricht verantwortungsvoll verwende

Wie sprachgenerierende KIs die Wissenschaft verändern könnten

NatureTech-Hub

Warum die Natur den Einsatz generativer KI in Bildern und Videos nicht zulässt

Leitartikel 07 23. JUNI

ChatGPT: Standard-Berichtsrichtlinien für eine verantwortungsvolle Nutzung

Korrespondenz 06.06.23

Transferlernen ermöglicht Vorhersagen in der Netzwerkbiologie

Artikel 31 23. MAI

Auf dem Weg zum quantenmaschinellen Lernen

Spotlight 24 23. MAI

Quantencomputer: Wofür sind sie gut?

Spotlight 24 23. MAI

Den Quantencomputer-Bauplan neu schreiben

Ausblick 24. 23. MAI

Warum die Natur den Einsatz generativer KI in Bildern und Videos nicht zulässt

Leitartikel 07 23. JUNI

ChatGPT: Standard-Berichtsrichtlinien für eine verantwortungsvolle Nutzung

Korrespondenz 06.06.23

Transferlernen ermöglicht Vorhersagen in der Netzwerkbiologie

Artikel 31 23. MAI

Kiel, Schleswig-Holstein (DE)

Helmholtz-Zentrum für Ozeanforschung Kiel (GEOMAR)

Samstag, 8. Juli 2023, Tokio Sonntag, 9. Juli 2023, Osaka Die Anmeldung für diese Veranstaltung ist jetzt geöffnet!

Tokio und Osaka, Japan

Naturkarrieren

Basierend auf den gemeinsamen Anstrengungen aller Mitarbeiter und Studierenden sowie der erheblichen Unterstützung aller Bereiche der Gesellschaft.

Peking, China

Hochschule für Wasserwissenschaften, Beijing Normal University

Die Animal and Plant Health Agency (APHA) ist eine Exekutivbehörde des Ministeriums für Umwelt, Ernährung und ländliche Angelegenheiten und arbeitet im Auftrag des S

Addlestone, Surrey

Agentur für Tier- und Pflanzengesundheit

Eine interdisziplinäre Forschungsorganisation, in der modernste Wissenschaft und Technologie die Entdeckung wirkungsvoller Erkenntnisse vorantreiben

Pudong New Area, Shanghai

BeiGene-Institut

618