Luka: Hallo und willkommen zurück.
In diesem Video
werden wir über ChatGPT sprechen und darüber,
wie man damit denselben Algorithmus für Doom implementiert, den
wir im Kurs verwenden werden, nämlich
das convolutional deep Q-learning.
In den nächsten paar Minuten
werden wir also den Weg durchgehen, den ich ChatGPT gezeigt und gefragt
habe, damit wir unser Modell bekommen.
Ich möchte Ihnen also erklären, wie ich es gemacht habe und
warum ich bestimmte Aufforderungen auf diese Weise umgesetzt habe.
Die ursprüngliche Aufforderung war also von meiner Seite aus ziemlich gut formuliert.
Ich sagte: "Sie sind
ein leitender Experte für maschinelles Lernen "mit
jahrelanger Erfahrung in der Arbeit an Projekten
"zur Anwendung von maschinellem Lernen auf Simulationen und Robotik. Dies ist der erste Teil, der die Bühne bereitet und ihnen
eine Rolle gibt.
Im Grunde genommen wird der Vektorraum des gesamten
ChatGPT also mehr auf Themen des maschinellen Lernens ausgerichtet sein.
Jetzt möchte ich Doom in meinen Zusammenhang bringen.
Und um diesen Punkt zu erreichen, sagte ich: "Okay, ich habe Sie beauftragt,
mir bei der Implementierung eines
Convolutional Deep Q-Learning-Algorithmus
für die Doom-Umgebung zu helfen.
"Das Ziel ist ein voll funktionsfähiger Algorithmus
des verstärkten Lernens,
der Doom, eine Spielumgebung, spielen kann".
Ich habe Klassen "für experience_replay und Speicher- und Bildverarbeitung"
implementiert.
"Ich werde sie Ihnen zur Verfügung stellen, damit Sie sie in den endgültigen
Code einbauen können.
Das ist wirklich wichtig, was die meisten Leute übersehen.
Sie müssen eine Möglichkeit haben, ihm oder ChatGPT
mitzuteilen, dass Sie bereits etwas haben und diesen Code
in der endgültigen Implementierung
verwenden wollen.
Wenn ich dies also nicht als Kontext zur Verfügung stelle, wird ein Code
generiert, eine Implementierung von convolutional
deep Q-learning, die die Verwendung von
experience_replay und unserer Bildverarbeitungsfunktion
nicht berücksichtigt, aber das wollen wir
ja.
Dann fahre ich fort
und sage: "Ihr Ziel ist es, die vollständige
Lösung mit Python zu implementieren, "Torch for model, "und den Code
zu optimieren, damit er in Google Colab ausgeführt
werden kann, "so dass Schüler, die den Code durchgehen, "ihn auch mit weniger starken
Computern ausführen können. Damit teilen Sie
ChatGPT das Format der endgültigen Lösung
mit, die Sie haben möchten.
Und schließlich wird "bei Bedarf klärende Fragen
stellen" dem Ganzen mehr Kontext verleihen.
Und: "Eh, wenn Sie es nicht wissen, "wenn Sie nicht genug
Kontext haben, fragen Sie mich bitte. Und schließlich fragte er: "Haben Sie es? Ich wollte bestätigen, dass es geklappt hat.
Dies ist eine clevere Methode, die es ihm erlaubt, darüber
nachzudenken und nicht nur die nächsten Aufforderungen und Antworten zu generieren.
Wenn du das nicht tust, wenn
du nicht fragst: "Hast du's? " oder "Klar? oder "Verstehen Sie? " oder etwas Ähnliches,
werden einige der Teile komplett ignoriert
und die Generierung beginnt.
Da die Anzahl der Token, die Sie in Ihren
Fragen und Antworten haben,
begrenzt ist, möchten Sie diese Grenze durchbrechen,
um die Anzahl der Token, die Sie generieren können, zu erhöhen.
Die erste Antwort lautet also:
"Ich habe die Aufgabe verstanden.
"Ich werde genau das tun, worum ich Sie bitten werde.
"Doch bevor ich fortfahre, habe ich einige Fragen. Und das ist der Punkt, an dem dieses "Wenn Sie irgendwelche Fragen haben, fragen
Sie mich", mir ziemlich gute Fragen gestellt hat.
Zunächst einmal: Haben Sie eine benutzerdefinierte Umgebung, oder verwenden
Sie etwas, das bereits vorhanden ist?
Also OpenAI, VizDoom und solche Sachen.
Dann kommen wir zu der Frage: Gibt
es bestimmte Leistungskennzahlen, die ich beachten
soll?
Gibt es Anforderungen an das Modell selbst?
Welche Versionen von Python und PyTorch?
Und schließlich, gibt es irgendwelche besonderen
Beschränkungen für die Frist?
Dies stammt hauptsächlich aus den Geschäftsplänen,
für die es geschult wurde, aber dafür
ist es nicht wirklich relevant, also nicht relevant für es, aber okay.
Ich bot an: "Ja, ich werde OpenAI Gym verwenden, und hier
ist, wie man es lädt. Dies ist aus dem Kurs.
Ich sagte: "Okay, befolgen Sie die durchschnittliche Belohnung,
keine spezifischen Anforderungen, seien Sie kreativ, solange es funktioniert, verwenden
Sie die neuesten Modelle oder Versionen der Bibliotheken,
und was ist die Frist.
Ich habe gerade "ASAP" geschrieben.
Außerdem gibt es die von mir erwähnten Kurse.
Ich habe einfach die Klassen eingefügt, die wir im Kurs haben.
Also Erfahrungswiedergabe,
alles, und schließlich Wiedergabespeicher, Bildverarbeitung,
und das war's.
Und damit habe ich den Kontext geschaffen,
und jetzt begann es zu generieren.
So wurde der Code generiert.
Es begann mit der Vorverarbeitung des
Bildes und erstellte dann das tiefe Q-Netz, das
dem von uns verwendeten ziemlich ähnlich ist.
Dann begann es mit
der Initialisierung und dem Training des Codes.
Bis jetzt hat alles funktioniert, und dann bricht es hier ab.
Wenn Sie etwas länger generieren
wollen, habe ich einfach "weiter" geschrieben.
Und sie sagte: "Weiter? Ja, natürlich. Die Generierung wird fortgesetzt, und schwupps
haben wir den vollständigen Code.
Erstaunlich.
Darin stand, wie man es benutzt,
wie oft, was man ändern muss und so weiter.
Das hat mir auch geholfen.
Und nun möchte ich Sie zu meinem Google Colab bringen.
Ich begann also mit dem Einfügen des Codes
hier, fügte unsere Vorverarbeitungsfunktion ein.
Ich werde gleich auf die Änderungen in dieser Vorverarbeitungsfunktion
eingehen.
Dann fügte ich diese Erfahrungswiederholung ein, einige der Installationen
von meiner Seite aus.
Wir werden dies in einer Sekunde erklären.
Ich habe mit seinem tiefen Q-Netz und Trainingscode gespielt.
Es gibt also durchaus Möglichkeiten, dies zu verbessern.
Vor allem, wenn Sie eine lokale Umgebung haben, wird es funktionieren.
Wenn Sie dies in Google Colab verwenden, kann es zu Problemen kommen.
Darauf möchte ich Sie hinweisen.
Ich habe es also getan und eine Fehlermeldung erhalten.
Ich sagte: "Hey, mein ursprünglicher Code hat nicht funktioniert.
Ich habe gerade den Code eingefügt,
diese Fehlermeldung, und sagen, "Ich kann nicht die Größe eines Bildes. Und wenn Sie einen Blick auf unseren Code aus dem Kurs werfen, müssen
Sie die Größe des Bildes damit ändern.
Aber die neuere Version von SciPy entfernt dies.
Also hieß es: "Oh, ja, es scheint, dass dies entfernt
worden ist. "Hier ist die neue Version mit Pillow.
Und eigentlich war das auch gar nicht nötig.
Im Grunde wurde die gesamte Bildvorverarbeitungsklasse
mit Pillow anstelle von SciPy neu geschrieben.
Ich habe es also benutzt, und es funktioniert tatsächlich.
Und dann sagte ich: "Okay, ich habe ein Problem damit, dass
die Umwelt Google Colab verwendet.
"Wie kann man das Problem lösen? Hier liegt der Fehler. Und sie sagte: "Oh, ja, entschuldigen Sie sich.
"Es scheint, dass dieses spezielle Umfeld nicht funktioniert.
"Sie tun Folgendes.
"Im Grunde installieren Sie das und machen das. Ich habe einen Fehler, einen weiteren Fehler.
Und dieser Fehler zeigte an, dass
das Rendering in dieser speziellen Version nicht gefunden wird.
Und es hieß: "Okay, installiere diese Version. Das habe ich. Ein weiterer Fehler.
Und es hieß: "Oh, ja, ja, "Google Colab unterstützt keine Rendering-,
OpenGL-Bibliotheken",
was für uns bedeutet, dass wir anstelle von Google Colab etwas
anderes für Visualisierungszwecke
verwenden müssen.
Und es gab mir im Grunde eine Schritt-für-Schritt-Anleitung,
was zu tun ist, wie ich
das ändern kann, und so weiter.
Und wenn Sie dies vor Ort tun, werden Sie das Problem lösen.
Aber dies ist im Grunde
jetzt lehrt Sie, wie man richtig ChatGPT verwenden.
Sie haben z. B. gesehen, dass ich einige Fehler hatte, ich habe diese
Fehler gemeldet und so weiter.
Und jetzt haben Sie,
wenn Sie zurückblättern, einen voll funktionsfähigen Code mit
einem tiefen Q-Netz, mit einem Trainingscode,
und Sie können ihn auffordern, einen Testcode
zu generieren, und er wird es tun.
Erstaunlich, nicht wahr?
Das war's also.
So verwenden Sie ChatGPT, um das tiefe Q oder das tiefe
Faltungsnetz für Doom zu lösen.
Danke. Viel Spaß auf der Strecke!