Prompt Engineering

Erforschung von OpenAIs ChatGPT-Code-Interpreter: Eine tiefe Analyse seiner FÃĪhigkeiten

mm
Unite.AI zu deinen bevorzugten Quellen auf Google hinzufÞgen

OpenAIs Fortschritte im Bereich der Natural Language Processing (NLP) sind durch den Aufstieg von Large Language Models (LLMs) gekennzeichnet, die die Grundlage fÞr Produkte wie den Coding-Assistenten GitHub Copilot und die Bing-Suchmaschine bilden. Diese Modelle haben durch ihre einzigartige FÃĪhigkeit, Informationen zu speichern und zu kombinieren, unvergleichliche Benchmarks in Aufgaben wie Code- und Textgenerierung gesetzt.

VerstÃĪndnis des ChatGPT-Code-Interpreters

Um die Bedeutung des ChatGPT-Code-Interpreters zu verstehen, ist es wichtig, zunÃĪchst zu verstehen, was er ist und wie er entwickelt wurde.

Im Wesentlichen nutzt der ChatGPT-Code-Interpreter die FÃĪhigkeiten von ChatGPT, aber bringt eine verbesserte FÃĪhigkeit zur VerstÃĪndnis, Interpretation und sogar Generierung von Code in einer Vielzahl von Programmiersprachen. Diese Funktion verwandelt ChatGPT von einem Textgenerator in ein wertvolles Werkzeug fÞr Entwickler, das bei der CodeverstÃĪndnis, Fehlersuche und sogar Codegenerierung hilft.

Ausbildung von GPT fÞr die Codierung: Der Codex-Ansatz

Sowohl GitHub Copilot als auch ChatGPTs Code-Interpreter nutzen das Codex-Modell, das von OpenAI entwickelt wurde.

Codex, ein spezialisiertes GPT-Sprachmodell, ist darauf ausgelegt, Þberzeugende Python-Code-SchreibfÃĪhigkeiten zu besitzen. Trainiert auf Ãķffentlich zugÃĪnglichem Code von GitHub, zeigt Codex sein Potenzial, indem es Funktionen in GitHub Copilot antreibt. Wenn seine FÃĪhigkeit, Programme aus Docstrings zu synthetisieren, bewertet wird, Þbertrifft Codex sowohl GPT-3 als auch GPT-J.

Ein auffÃĪlliges Merkmal ist, dass wiederholtes Sampling Codex’ FÃĪhigkeiten verbessert. Wenn bis zu 100 Proben pro Problem verwendet werden, steigt die Erfolgsrate des Modells auf 70,2%. Eine solche Effizienz legt die MÃķglichkeit nahe, heuristische Bewertung zu verwenden, um genaue Codeproben auszuwÃĪhlen, ohne eine vollstÃĪndige Bewertung fÞr jeden zu erfordern.

Um seine FÃĪhigkeiten zu bewerten, wurde das Modell mit der Erstellung von eigenstÃĪndigen Python-Funktionen allein auf der Grundlage von Docstrings beauftragt. Die Genauigkeit des generierten Codes wurde dann mit Hilfe von Unit-Tests bewertet. In einer Datenmenge, die 164 ursprÞngliche Programmierprobleme umfasst, einschließlich SprachverstÃĪndnis, Algorithmen und grundlegender Mathetests, lÃķste Codex mit 12-B-Parametern 28,8% davon bei einem ersten Versuch.

Trainingsdaten fÞr das Codex-Modell - ChatGPT-Code-Interpreter

Trainingsdaten fÞr das Codex-Modell: https://arxiv.org/abs/2107.03374

Indem das Modell weiter durch Feinabstimmung korrekt implementierter eigenstÃĪndiger Funktionen verfeinert wurde, wurde seine Effizienz gesteigert, was dazu fÞhrte, dass Codex-S 37,7% der Herausforderungen beim ersten Versuch lÃķste. Im praktischen Bereich der Programmierung ist jedoch ein Trial-and-Error-Ansatz Þblich. Unter Nachahmung dieser realen Szenarien lÃķste das Codex-S-Modell, wenn es 100 Chancen erhielt, erfolgreich 77,5% der Herausforderungen.

ChatGPT-Feinabstimmungsarchitektur

Generative Modelle wie ChatGPT, die Code produzieren, werden normalerweise durch Vergleichen der generierten Proben mit einer ReferenzlÃķsung bewertet. Dieser Vergleich kann entweder exakt sein oder ein Ähnlichkeitsmaß wie den BLEU-Score verwenden. Diese Übereinstimmungsbasierten Metriken erfassen jedoch oft nicht die Nuancen der Codierung. Ein wichtiger Kritikpunkt am BLEU-Score ist seine UnfÃĪhigkeit, die semantischen Merkmale des Codes zu erfassen.

Stattdessen wurde ein relevanteres Maß vorgeschlagen: funktionale Korrektheit. Dies bedeutet, dass der vom Modell produzierte Code eine gegebene Menge von Unit-Tests bestehen sollte. Die Idee stimmt mit den Standard-Coding-Praktiken Þberein, da Entwickler oft Unit-Tests verwenden, um die Effizienz und Genauigkeit ihres Codes zu bewerten.

Dieses Maß bewertet nicht nur die Genauigkeit, sondern auch die funktionale Nutzbarkeit des generierten Codes.

Das pass@k-Maß wird als Maß fÞr funktionale Korrektheit eingefÞhrt. Es bedeutet im Wesentlichen, dass, wenn eine der “k” generierten Codeproben die Unit-Tests bestehen, das Problem als gelÃķst gilt. Es wird jedoch anstelle der direkten Verwendung ein unvoreingenommener SchÃĪtzer verwendet, um pass@k zu berechnen, um eine hohe Varianz zu vermeiden.

Um die CodefÃĪhigkeiten von ChatGPT zu bewerten, wurde die HumanEval-Datenbank verwendet. Diese Datenbank besteht aus handgeschriebenen Python-Problemen, die jeweils von Unit-Tests begleitet werden.

ChatGPT-OpenAI-Trainingsdatensatz-Beispiel

https://github.com/openai/code-align-evals-data/blob/main/human_eval

Da mit der AusfÞhrung unbekannten oder unvertrauenswÞrdigen Codes Risiken verbunden sind, wurde eine Sandbox-Umgebung entwickelt, um den generierten Code sicher zu testen. Diese Umgebung nutzte gVisor, um Ressourcen zu emulieren und eine Barriere zwischen dem Host-System und dem laufenden Code zu schaffen. Somit bleibt der Code, auch wenn das Modell schÃĪdlichen Code produziert, eingeschlossen und kann das Host-System oder das Netzwerk nicht schÃĪdigen.

Verwendung des ChatGPT-Code-Interpreters

OpenAIs ChatGPT hat zahlreiche Evolutionen durchlaufen, wobei der Code-Interpreter als revolutionÃĪres Feature im GPT-4-Modell hervorsticht. Im Gegensatz zu herkÃķmmlichen Chat-Schnittstellen ermÃķglicht der Code-Interpreter es Benutzern, tiefer in computationale Aufgaben einzutauchen und nahtlos die Grenzen zwischen menschlichen GesprÃĪchen und computativen Prozessen zu ÞberbrÞcken.

Im Kern ist der Code-Interpreter ÃĪhnlich wie ein Computer, der in den Chatbot eingebettet ist. Diese dynamische Funktion bietet Benutzern temporÃĪren Speicherplatz, um eine Vielzahl von Dateiformaten hochzuladen, von gÃĪngigen Typen wie TXT, PDF und JPEG bis hin zu spezielleren wie CPP, PY und SQLite. Diese Breite an UnterstÞtzung verstÃĪrkt seine Vielseitigkeit bei verschiedenen Aufgaben, sei es Dokumentenverarbeitung oder Bildbearbeitung.

Innerhalb eines robusten und sicheren Rahmens ist der Code-Interpreter mit Þber 300 vorinstallierten Bibliotheken ausgestattet. Diese sandboxbasierte Umgebung gewÃĪhrleistet Sicherheit und bietet gleichzeitig erhebliche Rechenleistung. Interessanterweise erstellt der Code-Interpreter, wenn er aufgefordert wird, in Echtzeit ein Python-Skript, um die Anfrage des Benutzers auszufÞhren. Nehmen wir beispielsweise die Umwandlung eines bildbasierten PDF in ein durchsuchbares Format mithilfe von OCR; alles, was der Benutzer tun muss, ist, das Dokument hochzuladen, und ChatGPT erledigt den Rest.

Ein interessanter Punkt war die DateigrÃķßenbeschrÃĪnkung fÞr Uploads. Obwohl definitive Spezifikationen noch nicht bekannt gegeben wurden, deuten Benutzerexperimente darauf hin, dass das System Dateien effektiv verarbeiten kann, die erheblich grÃķßer als 100 MB sind. UnabhÃĪngig von der GrÃķße ist es wichtig zu beachten, dass diese Dateien vorÞbergehend sind und nach dem Abschluss der Chat-Sitzung verworfen werden.

Die Brillanz des Code-Interpreters liegt nicht nur in seinem technischen KÃķnnen, sondern auch in seiner ZugÃĪnglichkeit. OpenAI bietet dieses Feature Abonnenten von ChatGPT Plus an, das mit dem GPT-4-Modell ausgestattet ist. Somit ist dieses transformative Werkzeug nicht nur fÞr die Tech-Elite bestimmt, sondern wird allmÃĪhlich fÞr ein breiteres Publikum zugÃĪnglich.

Die Unterscheidung zwischen dem Standard-ChatGPT-Modell und dem Code-Interpreter liegt in ihren Interaktionsparadigmen. WÃĪhrend das Former hauptsÃĪchlich textuelle Antworten generiert, versteht und fÞhrt der Letztere Code aus und bietet direkte Ergebnisse. Dies macht es nicht nur zu einem wertvollen Asset fÞr Tech-Profis, sondern auch zu einem Werkzeug, das es auch Nicht-Programmierern ermÃķglicht, komplexe computative Aufgaben auszufÞhren.

Die FÃĪhigkeiten des ChatGPT-Code-Interpreters kÃķnnen verschiedene Aspekte der Softwareentwicklung und der Datenwissenschaft revolutionieren:

  • Automatisierte Codegenerierung: FÞr Softwareanwendungen und Datenanalyse-Skripte kann das System, gegeben eine hochrangige Beschreibung, Boilerplate-Strukturen oder komplexe Code-Snippets produzieren, wodurch die Entwicklung und Datenanalyse beschleunigt werden.
  • Code-ÜberprÞfung und Datenvalidierung: AI-gesteuerte Tools wie ChatGPT kÃķnnen dabei helfen, die QualitÃĪt und Sicherheit von Software-Codebasen zu verbessern. Im Bereich der Datenwissenschaft kÃķnnen solche Tools bei der ÜberprÞfung und Validierung von Datenverarbeitungs- und Transformations-Skripten instrumental sein, um Genauigkeit und Effizienz zu gewÃĪhrleisten.
  • Datenanalyse-UnterstÞtzung: FÞr Datenwissenschaftler kann der ChatGPT-Code-Interpreter bei der Generierung von Code fÞr vorlÃĪufige Datenexploration, Visualisierung und sogar grundlegende statistische Tests helfen, wodurch der Datenanalyse-Workflow erleichtert wird.

Wenn Sie mehr Þber die Feinheiten von ChatGPT und Prompt-Engineering erfahren mÃķchten, bietet Unite AI eine umfassende Analyse in ‘ChatGPT: Advanced Prompt Engineering‘.

Einrichtung des ChatGPT-Code-Interpreters

Die Code-Interpreter-Integration ermÃķglicht es der Plattform, Benutzeranfragen zu interpretieren, sie als Python-Code auszufÞhren und die Ergebnisse in einem interaktiven Chat-Format anzuzeigen. Um auf dieses Feature zuzugreifen, kÃķnnen Benutzer zur ChatGPT-Einstellungen navigieren, den Beta-Features-Bereich erkunden und den Code-Interpreter aktivieren.

Was es von anderen unterscheidet, ist sein transparenter Mechanismus. Wenn Benutzer eine Aufgabe anfordern, enthÞllt die Plattform jeden Schritt der Verarbeitungsreise, wodurch Klarheit Þber die Interpretation und AusfÞhrung von Befehlen geschaffen wird. Wichtig ist, dass der Code-Interpreter aus GrÞnden der PrivatsphÃĪre und Sicherheit ohne Internetverbindung funktioniert.

Erkundung der Vorteile des ChatGPT-Code-Interpreters

Datenvisualisierung & Analyse

ChatGPT geht Þber den Rahmen herkÃķmmlicher Diagramme hinaus und bietet sowohl konventionelle als auch innovative grafische Darstellungen. Dies ermÃķglicht es Benutzern, ihre Daten in Formaten zu betrachten, die die bedeutendsten Erkenntnisse liefern.

Es geht jedoch nicht nur um die Visualisierung von Rohdaten. Das ChatGPT-Modell ist auch in der Lage, Daten zu verarbeiten und zu verfeinern. Obwohl es leistungsfÃĪhig ist, sollten Benutzer Vorsicht walten lassen.

Finanzanalysten werden die FÃĪhigkeit des Code-Interpreters, Aktienkurse zu analysieren und zu visualisieren, besonders nÞtzlich finden. Durch nahtlose Integration kÃķnnen Benutzer Datenmengen hochladen und sie in verschiedenen Formaten visualisieren. Die Bedeutung dieser Funktion ist offensichtlich, wenn Individuen komplexe Datenanalysen durchfÞhren kÃķnnen.

Das folgende Video zeigt, wie ChatGPTs Code-Interpreter eine umfassende TSLA-Aktienanalyse erstellte.

Wichtige Punkte:

  • Teslas Aktie hat mit VolatilitÃĪt zu kÃĪmpfen, zeigt aber auch Zeichen der WiderstandsfÃĪhigkeit mit Perioden des Wachstums.
  • Hohe Handelsvolumina an bestimmten Tagen deuten auf ein starkes Marktenthusiasmus oder Reaktionen auf wichtige Ereignisse hin.
  • Die negative Jahresrendite (YTD) legt nahe, dass Anleger sowohl interne Unternehmensfaktoren als auch externe MarkteinflÞsse analysieren sollten, wenn sie zukÞnftige Investitionen in Betracht ziehen.

Implementierung von Computer Vision und OCR

Ein Gesichtserkennungsalgorithmus, ein wesentlicher Bestandteil der Computer-Vision, wurde mit einer klassischen Technik angegangen: dem Haar-Cascade-Klassifizierer von OpenCV.

Das folgende Bild zeigt die Verwendung des klassischen Haar-Cascade-Klassifizierers.

Der Prozess der Textextraktion aus Bildern, bekannt als optische Zeichenerkennung (OCR), wurde mithilfe von Tesseract nahtlos durchgefÞhrt, und der Text wurde anschließend von GPT-4 strukturiert, um die VerstÃĪndlichkeit zu verbessern.

In dem folgenden Video sehen Sie, wie Tesseract (OCR) Text aus einem Zertifikatsbild extrahiert.

Der Code-Interpreter Þberzeugt im Bereich von Video-, Audio- und Bildbearbeitung. Mit einfachen Befehlen kÃķnnen Benutzer detaillierte Bearbeitungen durchfÞhren, wie z.B. die Umwandlung von GIFs in MP4s mit bestimmten Verbesserungen. Einfach die Datei hochladen, die gewÞnschten Änderungen eingeben und das Ergebnis beobachten.

Python-Externe Bibliothek im ChatGPT-Code-Interpreter

Der ChatGPT-Code-Interpreter ist eine dynamische Programmierplattform, die mit einer umfangreichen Sammlung von Python-Bibliotheken ausgestattet ist. Diese reichen von Datenvisualisierung mit Seaborn bis hin zu fortschrittlichem maschinellem Lernen mit Torch. Es ist jedoch mehr als nur ein statisches Werkzeug.

Angeregt durch diese ChatGPT-Seite von Korakot Chaovavanich.

Beginnend mit der neuesten nltk-Version, haben wir eine .whl-Datei zum Interpreter hochgeladen. Wir haben dann ChatGPT angewiesen, den geeigneten site-packages-Verzeichnis durch Analyse des Speicherorts einer bestehenden Pakets zu finden. Der nÃĪchste Schritt bestand darin, die Wheel-Datei in einen temporÃĪren Speicherort zu entpacken und die Dateien in das identifizierte site-packages-Verzeichnis zu verschieben. Dies stieß jedoch auf ein Hindernis.

Als Ausweg haben wir angeregt: “Bitte stellen Sie sicher, dass NLTK in der Python-Umgebung installiert wird und nach der Installation zugÃĪnglich ist.”

ChatGPT antwortete mit einer LÃķsung. Es schlug vor, den temporÃĪren Verzeichnis zu sys.path hinzuzufÞgen, um es Python zu ermÃķglichen, Module aus dem entpackten NLTK-Paket in diesem Speicherort zu erkennen. Diese Taktik funktionierte hervorragend und fÞhrte zur erfolgreichen Installation von NLTK.

Durch die Verwendung von .whl-Dateien zeigte die Installation eine Mischung aus Erfindungsreichtum und AnpassungsfÃĪhigkeit. Der ChatGPT-Code-Interpreter, trotz anfÃĪnglicher Herausforderungen, zeigte seine Vielseitigkeit und sein Engagement, die BedÞrfnisse von Programmierern zu erfÞllen, und garantierte sowohl AnfÃĪngern als auch erfahrenen Programmierern eine verfeinerte Codiererfahrung.

Installation von benutzerdefinierten Bibliotheken im ChatGPT-Code-Interpreter

In einer faszinierenden Demonstration der FÃĪhigkeiten des Interpreters hat ein kÞrzlicher Tweet von @DominikPeters eine einzigartige Demonstration hervorgehoben. Peters bat GPT-4, einen Quiz Þber Pariser Arrondissements zu erstellen, und das Modell lieferte eine funktionierende Website. Der funktionierende Quiz ist auf dominik-peters.de/gpt-arrondissement-quiz/ verfÞgbar.

https://twitter.com/DominikPeters/status/1652630445639467008?s=20

Zusammenfassung

OpenAIs Durchbruch mit dem ChatGPT-Code-Interpreter ist nichts weniger als eine Transformation fÞr Programmierer und Nicht-Programmierer gleichermaßen. Seine Vielseitigkeit bei der BewÃĪltigung einer Vielzahl von Aufgaben – von der UnterstÞtzung von Entwicklern bei der Fehlersuche bis hin zur Erstellung von Pariser Quizzes – ist ein Zeugnis fÞr das unendliche Potenzial von KI bei der Verbesserung unserer digitalen Erfahrungen. Hier ist die Essenz unserer tiefen Analyse:

Verstehen Sie Ihr Werkzeug: Genau wie Sie einen Kollegen kennenlernen wÞrden, sollten Sie sich mit dem Code-Interpreter vertraut machen. Er basiert auf Codex, das aus GPT-4 feinabgestimmt wurde. Seine FÃĪhigkeiten umfassen mehrere Programmiersprachen, was es zu einem idealen Begleiter fÞr alle Ihre Programmierabenteuer macht.

Die KI-Revolution umarmen: Traditionelle Programmierpraktiken stehen vor einer seismischen Verschiebung. Mit KI-gesteuerten Tools wie dem ChatGPT-Code-Interpreter kÃķnnen Aufgaben wie Fehlersuche, Codegenerierung und sogar Code-ÜberprÞfung beschleunigt werden.

Jenseits von Code: Der Code-Interpreter ist nicht nur auf Text oder Code beschrÃĪnkt. Seine FÃĪhigkeit, mit verschiedenen Dateiformaten umzugehen, von einfachen TXT-Dateien bis hin zu komplexen PY-Skripten, unterstreicht seine NÞtzlichkeit in verschiedenen Bereichen.

Nie aufhÃķren zu experimentieren: Unsere Erfahrung mit der Installation der NLTK-Bibliothek spiegelt die Bedeutung von Beharrlichkeit und AnpassungsfÃĪhigkeit wider, Werte, die der Code-Interpreter verkÃķrpert. Wenn es ein Hindernis gibt, gibt es oft einen Weg drum herum.

Der KI-GesprÃĪch beitreten: Realweltanwendungen, wie sie durch den Pariser Arrondissements-Quiz demonstriert werden, unterstreichen die enorme realweltliche NÞtzlichkeit des Tools. Nehmen Sie es an, erkunden Sie es und lassen Sie es Ihre Projekte verstÃĪrken.

Das obige Video wurde mit Gen-2 und Midjourney erstellt.

Zusammengefasst ist der ChatGPT-Code-Interpreter mehr als nur ein Werkzeug; er verÃĪndert die Art und Weise, wie wir mit Technologie interagieren. FÞr Innovatoren und Enthusiasten gleichermaßen verspricht er eine Welt voller Codierungspotenzial.

Ich habe die letzten fÞnf Jahre damit verbracht, mich in die faszinierende Welt des Machine Learning und Deep Learning zu vertiefen. Mein Engagement und meine Expertise haben mich dazu gefÞhrt, an Þber 50 verschiedenen Software-Entwicklungsprojekten mit einem besonderen Fokus auf AI/ML beizutragen. Meine anhaltende Neugier hat mich auch zum Bereich der Natural Language Processing hingezogen, einem Feld, das ich weiter erforschen mÃķchte.