Connect with us

Erforschung von OpenAIs ChatGPT-Code-Interpreter: Ein tiefer Einblick in seine Fähigkeiten

Prompt Engineering

Erforschung von OpenAIs ChatGPT-Code-Interpreter: Ein tiefer Einblick in seine Fähigkeiten

mm

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 bilden, die von Millionen genutzt werden, einschließlich des Coding-Assistenten GitHub Copilot und der Bing-Suchmaschine. 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 essentiell, zunächst zu begreifen, 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 mit, Code in einer Vielzahl von Programmiersprachen zu verstehen, zu interpretieren und sogar zu generieren. Diese Funktion verwandelt ChatGPT von einem Textgenerator in ein unschätzbares Werkzeug für Entwickler, das bei Code-Verständnis, Fehlersuche und sogar Code-Generierung 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 dafür konzipiert, über profunde Python-Code-Schreibfähigkeiten zu verfügen. Ausgebildet 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, eine Maßnahme für funktionale Korrektheit, ausgewertet wird, übertrifft Codex sowohl GPT-3 als auch GPT-J.

Eine auffallende Beobachtung 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 nutzen, um genaue Code-Proben auszuwählen, ohne eine vollständige Bewertung für jede zu benötigen.

Um seine Fähigkeiten zu bewerten, wurde das Modell damit beauftragt, auf der Grundlage allein von Docstrings eigenständige Python-Funktionen zu erstellen. Die Genauigkeit des generierten Codes wurde dann mit Hilfe von Einheitstests bewertet. In einer Datenmenge, die 164 ursprüngliche Programmierprobleme umfasst, einschließlich Sprachverständnis, Algorithmen und grundlegender Mathetests, löste Codex mit 12B Parametern 28,8% davon bei einem einzigen Versuch.

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

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

Durch weitere Feinabstimmung des Modells durch korrekt implementierte eigenständige Funktionen wurde seine Effizienz gesteigert, was dazu führte, dass Codex-S 37,7% der Herausforderungen beim ersten Versuch löste. Allerdings ist in der praktischen Welt der Programmierung ein Trial-and-Error-Ansatz üblich. Wenn man diesen realen Szenario nachahmt, adressierte 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 den Vergleich der generierten Proben mit einer Referenzlösung bewertet. Dieser Vergleich kann entweder exakt sein oder ein Ähnlichkeitsmaß wie den BLEU-Score verwenden. Allerdings erfassen diese Vergleichsmaße oft nicht die Nuancen der Codierung. Eine wichtige Kritik am BLEU-Score ist seine Unfähigkeit, die semantischen Eigenschaften des Codes zu erfassen.

Anstatt sich ausschließlich auf den Vergleich zu verlassen, wurde ein relevanteres Maß vorgeschlagen: funktionale Korrektheit. Dies bedeutet, dass der vom Modell produzierte Code eine gegebene Menge von Einheitstests bestehen sollte. Die Idee stimmt mit den Standard-Coding-Praktiken überein, da Entwickler oft Einheitstests 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 Code-Proben die Einheitstests besteht, das Problem als gelöst gilt. Allerdings wird anstelle der direkten Verwendung dieses Maßes ein unvoreingenommener Schätzer verwendet, um pass@k zu berechnen, um eine hohe Varianz zu vermeiden.

Um ChatGPTs Code-Fähigkeiten zu bewerten, wurde die HumanEval-Datenmenge verwendet. Diese Datenmenge besteht aus handgeschriebenen Python-Problemen, die jeweils von Einheitstests begleitet werden.

ChatGPT-OpenAI-Trainingsdatensatz-Beispiel

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

Aufgrund der Risiken, die mit der Ausführung von unbekannten oder nicht vertrauenswürdigen Code verbunden sind, wurde eine Sandbox-Umgebung entworfen, 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 weder das Host-System noch das Netzwerk 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 computergesteuerte Aufgaben einzutauchen, indem er nahtlos die Grenzen zwischen menschlichem Gespräch und computergesteuerten Prozessen verwischt.

In seinem 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 verfügt der Code-Interpreter über mehr als 300 vorinstallierte Bibliotheken. Diese sandboxbasierte Umgebung gewährleistet Sicherheit, während sie gleichzeitig erhebliche Rechenleistung bietet. Interessanterweise erstellt er, wenn aufgefordert, ein Python-Skript in Echtzeit, um die Anfrage des Benutzers auszuführen. Nehmen wir beispielsweise die Konvertierung einer PDF, die auf einem Bild basiert, in ein durchsuchbares Format mithilfe von OCR; alles, was der Benutzer tun muss, ist, das Dokument hochzuladen, und ChatGPT erledigt den Rest.

Ein Punkt, der von Interesse ist, ist die Dateigrößenbeschränkung für Uploads. Während definitive Spezifikationen noch nicht bekannt gegeben wurden, deuten Benutzerexperimente darauf hin, dass das System effektiv Dateien verarbeiten kann, die erheblich größer sind als 100 MB. Unabhängig von der Größe ist es wichtig zu beachten, dass diese Dateien flüchtig sind und nach 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, das mit dem GPT-4-Modell kommt. Somit ist dieses transformative Werkzeug nicht nur für die Tech-Elite bestimmt, sondern wird allmählich für ein breiteres Publikum zugänglich.

Der Unterschied 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, wodurch direkte Ergebnisse angeboten werden. 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 computergesteuerte Aufgaben auszuführen.

Die Fähigkeiten des ChatGPT-Code-Interpreters können verschiedene Aspekte der Software-Entwicklung und der Datenwissenschaft revolutionieren:

  • Automatisierte Code-Generierung: Sowohl für Software-Anwendungen als auch für Datenanalyse-Skripte kann das System, gegeben eine hochrangige Beschreibung, Boilerplate-Strukturen oder komplexe Code-Snippets produzieren, wodurch die Entwicklungs- und Datenanalyse-Prozesse beschleunigt werden.
  • Code-Überprüfungen und Daten-Validierung: AI-gesteuerte Tools wie ChatGPT können bei der Verbesserung der Qualität und Sicherheit von Software-Codebasen helfen. Zusätzlich können solche Tools im Bereich der Datenwissenschaft bei der Überprüfung und Validierung von Datenverarbeitungs- und Transformations-Skripten hilfreich 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 Daten-Exploration, 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‘.

Einrichten des ChatGPT-Code-Interpreters

Die Integration des Code-Interpreters ermöglicht 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-Einstellung navigieren, den Beta-Features-Bereich erkunden und den Code-Interpreter aktivieren.

Was es von anderen abhebt, ist sein transparenter Mechanismus. Wenn Benutzer eine Aufgabe anfordern, enthüllt die Plattform jeden Schritt der Verarbeitungsreise, wodurch Klarheit darüber geschaffen wird, wie Befehle interpretiert und ausgeführt werden. Wichtig ist, dass der Code-Interpreter ohne Internetverbindung operiert, aus Gründen der Privatsphäre und Sicherheit.

Erkundung der Vorteile des ChatGPT-Code-Interpreters

Datenvisualisierung & Analyse

ChatGPT geht über den Rahmen herkömmlicher Diagramme hinaus, indem es sowohl konventionelle als auch innovative grafische Darstellungen bietet. Dies stellt sicher, dass Benutzer ihre Daten in Formaten betrachten können, 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 leistungsstark 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 in verschiedenen Formaten visualisieren. Die Bedeutung dieser Funktion ist offensichtlich, wenn Einzelpersonen komplexe Datenanalysen durchführen können.

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

Schlüsselerkenntnisse:

  • Teslas Aktie hat sich mit Volatilität konfrontiert gesehen, zeigt aber auch Widerstandsfähigkeit mit Wachstumsperioden.
  • Hohe Handelsvolumina an bestimmten Tagen deuten auf erhebliches Marktinteresse oder Reaktionen auf wichtige Ereignisse hin.
  • Die rückläufige Jahresrendite (YTD) legt nahe, dass Anleger sowohl interne Unternehmensfaktoren als auch externe Marktbedingungen analysieren sollten, wenn sie zukünftige Investitionen in Betracht ziehen.

Implementierung von Computer-Vision und OCR

Gesichtserkennung, eine wesentliche Funktion in 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 des Textauszugs aus Bildern, bekannt als optische Zeichenerkennung (OCR), wurde mithilfe von Tesseract nahtlos erreicht, wobei der Text anschließend von GPT-4 strukturiert wurde, um die Verständlichkeit zu verbessern.

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

Der Code-Interpreter glänzt im Bereich von Video-, Audio- und Bildbearbeitung. Mit einfachen Befehlen können Benutzer detaillierte Bearbeitungen erreichen, wie die Konvertierung von GIFs in MP4 mit spezifischen Verbesserungen. Man muss einfach die Datei hochladen, die gewünschten Änderungen eingeben und zusehen, wie der Prozess abläuft.

Python-Externe-Bibliothek in Ihrem ChatGPT-Code-Interpreter

Der ChatGPT-Code-Interpreter ist eine dynamische Programmierplattform, die mit einer umfangreichen Sammlung von Python-Bibliotheken ausgestattet ist. Diese umfassen alles, von Datenvisualisierung mit Seaborn bis hin zu fortschrittlichem Machine Learning via Torch. Aber es ist mehr als ein statisches Werkzeug.

Angeregt durch diese ChatGPT-Seite von Korakot Chaovavanich.

Beginnend mit dem neuesten nltk-Release, haben wir eine .whl-Datei zum Interpreter hochgeladen. Dann haben wir ChatGPT angewiesen, das geeignete site-packages-Verzeichnis zu finden, indem es die Position einer vorhandenen Pakets analysierte. Der nächste Schritt bestand darin, die Wheel-Datei in einen temporären Speicherplatz zu entpacken und die Dateien in das identifizierte site-packages-Verzeichnis zu verschieben. Allerdings stieß dies auf ein Hindernis.

Bei der Suche nach einer Umgehung wurden wir aufgefordert: “Bitte stellen Sie sicher, dass NLTK in der Python-Umgebung installiert wird und nach der Installation verfügbar ist.”

ChatGPT antwortete und schlug eine Lösung vor. Es schlug vor, das temporäre 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 Wunder, was zur erfolgreichen Installation von NLTK führte.

Durch die Verwendung von .whl-Dateien zeigte die Installation eine Mischung aus Erfindungsreichtum und Anpassungsfähigkeit. Der ChatGPT-Code-Interpreter, trotz der anfänglichen Herausforderungen, manifestierte seine Vielseitigkeit und sein Engagement, die Bedürfnisse von Programmierern zu erfüllen, und garantierte sowohl Anfängern als auch Veteranen ein raffiniertes Coding-Erlebnis.

Installation von benutzerdefinierten Bibliotheken in 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 für ein hands-on-Erlebnis unter 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 breiten Palette von Aufgaben – von der Unterstützung von Entwicklern bei der Fehlersuche bis hin zur mühelosen Erstellung von Pariser Quizzes – ist ein Zeugnis für das unendliche Potenzial von KI bei der Verbesserung unserer digitalen Erfahrungen. Hier ist die Essenz unseres tiefen Einblicks:

Verstehen Sie Ihr Werkzeug: Genauso, wie Sie einen Kollegen kennenlernen würden, machen Sie sich mit dem Code-Interpreter vertraut. Er basiert auf Codex, das fein abgestimmt wurde, um auf GPT-4 aufzubauen. Seine Fähigkeiten umfassen mehrere Programmiersprachen, was es zu einem idealen Begleiter für alle Ihre Programmierabenteuer macht.

Embracen Sie die KI-Revolution: Traditionelle Programmierpraktiken stehen vor einer seismischen Veränderung. Mit KI-gesteuerten Tools wie dem ChatGPT-Code-Interpreter können Aufgaben wie Fehlersuche, Code-Generierung und sogar Code-Überprüfungen beschleunigt werden.

Jenseits von Code: Der Code-Interpreter ist nicht 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.

Hören Sie nie auf zu experimentieren: Unsere Erforschung mit der Installation der NLTK-Bibliothek unterstreicht die Bedeutung von Beharrlichkeit und Anpassungsfähigkeit, Werte, die der Code-Interpreter verkörpert. Wenn es ein Hindernis gibt, gibt es oft einen Weg darum herum.

Treten Sie dem KI-Gespräch bei: Praktische Anwendungen, wie durch den Paris-Arrondissements-Quiz demonstriert, unterstreichen die immense praktische 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 Tool; er verändert die Art und Weise, wie wir mit Technologie interagieren. Sowohl für Innovatoren als auch für Enthusiasten 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. Meine Leidenschaft und mein Fachwissen haben mich dazu geführt, an über 50 verschiedenen Software-Entwicklungsprojekten mitzuwirken, mit einem besonderen Fokus auf KI/ML. Meine anhaltende Neugier hat mich auch zum Natural Language Processing hingezogen, ein Feld, das ich weiter erforschen möchte.