Das Aufkommen von Chatbots, die auf Tools für generative künstliche Intelligenz wie ChatGPT und Bard basieren, und die Verwendung von KI-Tools für die akademische Forschung haben große Kontroversen ausgelöst, aber gleichzeitig hat auch der Wert von KI-generiertem Code für die wissenschaftliche Forschung zugenommen ignoriert worden.
Verglichen mit dem Plagiatsproblem, das durch ChatGPT-generierten Text verursacht wird, ist die Verwendung von KI zum Kopieren von Code offensichtlich weniger umstritten und fördert sogar das „Sharing von Code“ und die „Wiederverwendung von Code“, und es ist auch sehr praktisch, die Quelle zu verfolgen. Beispielsweise importiert „Importieren“ abhängige Pakete auch als Referenzen.
Ein Übersichtsartikel wurde kürzlich in Nature veröffentlicht. Das Autorenteam diskutierte die drei potenziellen Fähigkeiten von ChatGPT im Bereich der wissenschaftlichen Programmierung, darunter Brainstorming, Zerlegung komplexer Aufgaben und Verarbeitung einfacher, aber zeitaufwändiger Aufgaben.
Link zum Artikel: https://www.nature.com/articles/s41559-023-02063-3
Forscher übersetzen natürliche Sprache mithilfe von ChatGPT-Code in computerlesbare Sprache, erforscht die Möglichkeiten und Grenzen des Einsatzes generativer KI zur Verbesserung der wissenschaftlichen Codierung.
Die Beispiele im Experiment untersuchten hauptsächlich allgemeine Aufgaben, die sich auf Ökologie, Evolution und andere Bereiche beziehen können. Die Forscher fanden heraus, dass 80–90 % der Codierungsaufgaben mit ChatGPT erledigt werden können.
ChatGPT kann sehr nützlichen Code generieren, wenn die Aufgabe in kleine, überschaubare Codeblöcke mit präzisen Hinweisen als Abfragen unterteilt wird.
Es ist erwähnenswert, dass die Durchführung des gleichen Experiments mit Bard von Google normalerweise zu ähnlichen Ergebnissen führt, jedoch mit mehr Fehlern im Code. Daher wird in diesem Artikel hauptsächlich ChatGPT für Experimente verwendet.
Der Erstautor Cory Merow ist ein quantitativer Ökologe, dessen Hauptforschungsrichtung darin besteht, Mechanismusmodelle zu entwickeln, um die Reaktion von Populationen und Gemeinschaften auf Umweltveränderungen vorherzusagen. Selbst die besten Datensätze sind nicht in der Lage, Reaktionen auf globale Veränderungen vorherzusagen. Daher müssen Tools entwickelt werden, um Datenquellen zu kombinieren und Datensätze zu untersuchen, um Einblicke in mögliche Veränderungen in biologischen Systemen zu gewinnen.
ChatGPT basiert auf dem Regressionsmodell GPT-3 und führt Anpassungstraining für umfangreiche Webseiten, Bücher und andere Texte durch und kann Text ohne Suche generieren.
ChatGPT ist also besser in der Interpolation (Vorhersage von Text, der den Trainingsdaten ähnelt), aber nicht gut in der Extrapolation (Vorhersage von neuem Text, der sich vom Trainingsbeispiel unterscheidet).
Die schiere Größe des Trainingssatzes ist ein Vorteil und bedeutet, dass GPT-3 eine große Anzahl von Sprachmustern gesehen hat, was ihm die Interpolation ermöglicht und die Wahrscheinlichkeit erhöht, Antworten zu generieren, die für Menschen nützlich sind.
Bei Codegenerierungsaufgaben weiß GPT-3 jedoch nicht, wie man programmiert. Es weiß nur, wie der Code aussieht und welche Wörter am wahrscheinlichsten an der nächsten Position erscheinen. Vervollständigung, basierend auf Das Wahrscheinlichkeitsmodell, das den nächsten Codeblock (Chunk) vorhersagt, ist normalerweise kleiner als Wörter (Wörter), die auch als Token bezeichnet werden können. Die Wahrscheinlichkeit, den richtigen Token zu generieren, basiert auf dem Produkt der Wahrscheinlichkeiten aller Das heißt, die Anzahl der vorhergesagten Token zu erhöhen oder die Auswahl des Tokens zu verringern, erhöht die Schwierigkeit der Aufgabe und verringert dadurch die Wahrscheinlichkeit, den richtigen Token zu erhalten.
Wenn Sie also die Wahrscheinlichkeit des richtigen Tokens erhöhen möchten, müssen Sie die Dauer der Generierungsaufgabe verkürzen oder spezifischere Anweisungen bereitstellen.
Abschließend erinnert der Forscher daran, dass einige der von ChatGPT generierten Texte wie Code aussehen, aber möglicherweise nicht ausführbar sind, sodass während des Codierungsprozesses sorgfältige Beobachtung und Fehlerbehebung erforderlich sind.
Brainstorming-Tool
ChatGPT kann sehr gut mehrere Datenquellen abrufen. Im ökologischen Bereich können beispielsweise Pflanzenmerkmale, Artenverbreitungsgebiete und meteorologische Daten gleichzeitig erfasst werden.
Auch wenn einige der von ChatGPT bereitgestellten Daten falsch sind, können diese Fehler über die bereitgestellten Links schnell behoben werden.
ChatGPT kann jedoch keinen Crawler schreiben, um Daten von der Website herunterzuladen. Dies kann daran liegen, dass das R-Sprachpaket und die zugrunde liegende Anwendungsprogrammierschnittstelle (z. B. das Protokoll für R um auf die Datenbank zuzugreifen) wurden schnell aktualisiert, schließlich wurden die Trainingsdaten von ChatGPT im Jahr 2021 erstellt.
ChatGPT kann bei spezifischen Problemen verschiedene statistische Techniken vorschlagen, auf der Grundlage von Benutzerannahmen weitere Anleitungen generieren und einen anfänglichen Code bereitstellen.
Der Syntheseprozess eignet sich jedoch nur zum Vorschlagen und Kommunizieren von Ideen, und eine Faktenprüfung anhand traditioneller Datenquellen (wie Papiere usw.) ist weiterhin erforderlich.
Es sollte beachtet werden, dass einige Websites behaupten, dass ChatGPT die Fähigkeit besitzt, Zusammenfassungen von Büchern zu schreiben. Den Testergebnissen der Forscher zufolge sind die Ergebnisse jedoch Die zusammenfassende Synthese ist völlig falsch, möglicherweise weil die zum Testen verwendeten Bücher nicht im GPT-3-Trainingssatz enthalten sind.
Schwierigere Aufgaben erfordern mehr Debugging# 🎜🎜## 🎜🎜#
ChatGPT eignet sich sehr gut zum Generieren von Vorlagencode und stellt einen kurzen Skriptcode bereit, der eine kleine Anzahl von Funktionen unter bestimmten Anweisungen enthält.Beispielsweise haben die Forscher ChatGPT im folgenden Beispiel gebeten, die Eingaben und Ausgaben von vier häufig verwendeten Funktionen aneinanderzureihen. und stellen Sie einen Beispielcode bereit, der diese Funktion für simulierte Daten verwendet.
Sie können sehen, dass die von ChatGPT generierten Ergebnisse nahezu perfekt sind. Das Debuggen des Codes hat nur wenige Minuten gedauert, aber Sie müssen bei der Abfrage sehr genau sein in der Eingabeaufforderung, einschließlich der Angabe eines Namens und der verwendeten Funktionen. Forscher fanden heraus, dass der Schlüssel zum Erfolg ist: 🎜🎜#
1. Zerlegen Sie komplexe Aufgaben vorzugsweise in nur wenigen Schritten. Schließlich basiert der von ChatGPT generierte zu den Ergebnissen des probabilistischen Textvorhersagemodells.
2 ChatGPT schneidet am besten ab, wenn vorhandene Funktionen verwendet werden, da es sich nur um Interpolation und nicht um Extrapolation handelt.
Zum Beispiel ist Code, der reguläre Ausdrücke (Regex) verwendet, um Informationen aus Text zu extrahieren, für viele Entwickler sehr schwierig, aber weil es bereits Regex-Websites gibt, die dies bereitstellen Es gibt eine große Anzahl von Online-Beispielen und kann in ChatGPT-Beispielen vorkommen, sodass die Leistung von ChatGPT beim Schreiben regulärer Ausdrücke immer noch gut ist.
3 Einer der größten Kritikpunkte an ChatGPT in der Wissenschaft ist die mangelnde Transparenz seiner Informationsquellen.
Für Codegenerierungsaufgaben kann ein gewisses Maß an Transparenz durch die Angabe eines „Namespace“ erreicht werden, also durch den expliziten Aufruf des Paketnamens bei Verwendung der Funktion.
ChatGPT kann jedoch den öffentlichen Code einer Person direkt kopieren, ohne ihn zu zitieren, und die Forscher sind weiterhin für die Überprüfung der korrekten Codezuordnung verantwortlich.
Wenn Sie gleichzeitig ein längeres Skript erstellen müssen, werden dadurch einige ChatGPT-Fehler aufgedeckt, z. B. das Fälschen von Funktionsnamen oder Parametern usw. Dies ist der Fall Warum StackOverflow ChatGPT deaktiviert, um Code zu generieren?
Aber wenn der Benutzer einen klaren Satz von Ausführungsschritten bereitstellt, kann ChatGPT dennoch eine nützliche Workflow-Vorlage generieren, die die Eingabe und Ausgabe zwischen den Schritten definiert die nützlichste Möglichkeit, neuen Code mit GPT-3-Extrapolation zu generieren.
Derzeit kann ChatGPT keinen Pseudocode (in einfacher Sprache beschriebene Algorithmusschritte) in perfekten computerausführbaren Code umwandeln, aber das ist möglicherweise nicht weit von der Realität entfernt.
ChatGPT ist besonders hilfreich für Anfänger und unbekannte Programmiersprachen, da Anfänger nur einige kürzere Skripte schreiben können, was das Debuggen komfortabler macht.
ChatGPT eignet sich besser für nicht kreative Aufgaben.
ChatGPT eignet sich am besten für die Lösung zeitaufwändiger Formelaufgaben, die zum Debuggen, Erkennen und Erklären von Fehlern im Code verwendet werden können.
ChatGPT ist auch beim Schreiben von Funktionsdokumenten sehr effektiv. Die Verwendung der Inline-Dokumentsyntax von roxygen 2 ist beispielsweise sehr effizient bei der Identifizierung aller Parameter und Klassen, erklärt jedoch selten, wie Funktionen verwendet werden.
Eine wesentliche Einschränkung besteht darin, dass die ChatGPT-Generierung auf etwa 500 Wörter begrenzt ist und sich nur auf die Generierung kleinerer Codeblöcke konzentrieren kann, während gleichzeitig Komponententests generiert werden, um die Codefunktionalität automatisch zu bestätigen.
Die meisten Vorschläge von ChatGPT sind hilfreich bei der Definition der Teststruktur und der Überprüfung der erwarteten Objektklassen.
Schließlich ist ChatGPT sehr effektiv bei der Neuformatierung von Code, um standardisierten (z. B. Google) Codestilen zu folgen.
ChatGPT und andere KI-gesteuerte Tools zur Verarbeitung natürlicher Sprache sind bereit, einfache Aufgaben für Entwickler zu automatisieren, wie das Schreiben kurzer Funktionen, Syntax-Debugging, Anmerkungen und Formatierung, während die Komplexität je nach Benutzer skaliert wird Bereitschaft zum Debuggen (und ihr Kompetenzniveau).
Die Forscher haben die Funktionen von ChatGPT in der Codegenerierung zusammengefasst, die den Code-Schreibprozess im wissenschaftlichen Bereich vereinfachen können. Eine manuelle Überprüfung bedeutet jedoch nicht unbedingt, dass der Code die erwarteten Aufgaben ausführen kann. Daher sind Unit-Tests oder informelle interaktive Tests immer noch von entscheidender Bedeutung.
In Situationen, in denen eine Lösung von Menschen entwickelt und durch eine einfache Kopie von ChhatGPT generiert werden kann, ist es entscheidend sicherzustellen, dass der Person der richtige Code zugeordnet wird.
Es gibt bereits Chatbots, die damit beginnen, automatisch Links zu ihren Quellen bereitzustellen (z. B. Microsofts Bing), obwohl dieser Schritt noch in den Kinderschuhen steckt.
Im Vergleich zu herkömmlichen Methoden bietet ChatGPT eine alternative Möglichkeit, Programmierkenntnisse zu erlernen, indem es die Hürden der anfänglichen Schreibaufgabe durch die direkte Umwandlung von Pseudocode in Code verringert.
Die Forscher vermuten, dass zukünftige Fortschritte Tools wie ChatGPT verwenden werden, um den geschriebenen Code automatisch zu debuggen und basierend auf den aufgetretenen Fehlern iterativ neuen Code zu generieren, auszuführen und vorzuschlagen. Während des Experiments entdeckten die Forscher die Möglichkeit, den Code begrenzt zu korrigieren , nur gelegentlich erfolgreich, wenn sehr spezifische Anweisungen auf kleine Codeblöcke abzielen, ist der Debugging-Prozess weitaus weniger effizient als das manuelle Debuggen.
Forscher vermuten, dass sich das automatisierte Debugging mit fortschreitender Technologie verbessern wird (wie beispielsweise beim kürzlich veröffentlichten GPT-4-Modell, das angeblich zehnmal größer ist als das GPT-3-Modell).
Die Zukunft kommt und jetzt ist es an der Zeit, dass Entwickler technische Fähigkeiten erlernen, um die Vorteile neuer KI-Tools zu nutzen. Forscher gehen davon aus, dass die Verwendung von KI-generiertem Code in allen Aspekten der Softwareentwicklung zu einer immer wertvolleren Fähigkeit werden wird sind die Grundlage wissenschaftlicher Entdeckungen und Erkenntnisse.
Das obige ist der detaillierte Inhalt vonDie Zukunft der Programmierer gehört dem „Pseudocode'! Kolumne „Natur': Drei Möglichkeiten, ChatGPT zu nutzen, um die Programmierung wissenschaftlicher Forschung zu beschleunigen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!