WEBVTT

00:02.520 --> 00:04.620
Kursleiter: Hallo und willkommen zurück.

00:04.620 --> 00:07.920
In diesem Video sprechen wir darüber, wie man

00:07.920 --> 00:11.640
ChatGPT zur Lösung von "Breakout" verwendet, indem

00:11.640 --> 00:15.540
man ChatGPT zur Implementierung von A3C nutzt.

00:15.540 --> 00:19.470
Ich habe also schon eine Menge verrückter Prompts eingegeben, und wir haben erstaunliche

00:19.470 --> 00:23.010
Ergebnisse erzielt, die wir in einer Sekunde sehen werden.

00:23.010 --> 00:25.170
Also dieses Video wird im Grunde zu Fuß

00:25.170 --> 00:26.640
durch meine Gedanken-Prozess

00:26.640 --> 00:28.740
auf, wie ich tatsächlich die Ergebnisse,

00:28.740 --> 00:31.470
und wie Sie tatsächlich ChatGPT verwenden können,

00:31.470 --> 00:34.890
um A3C Algorithmus als auch zu erstellen.

00:34.890 --> 00:39.360
Okay, ich habe also ähnlich wie bei "DOOM" angefangen und gesagt: Okay,

00:39.360 --> 00:41.340
du bist im Grunde ein Experte für

00:41.340 --> 00:42.930
maschinelles Lernen mit

00:42.930 --> 00:46.110
jahrelanger Erfahrung in der Robotik.

00:46.110 --> 00:50.490
Ich beauftrage Sie mit der Durchführung des A3C-Algorithmus für "Breakout". Das Ziel ist ein voll funktionsfähiger SOTA,

00:50.490 --> 00:52.110
A3C Algorithmus,

00:52.110 --> 00:56.100
der das "Breakout" Spiel spielen kann.

00:56.100 --> 00:58.401
Ich habe Klassen, die Testcodeumgebung

00:58.401 --> 01:00.150
und benutzerdefinierte Versionen

01:00.150 --> 01:02.520
des Adam-Optimierers implementiert, der

01:02.520 --> 01:05.040
als Optimierer für geteilte Gewichte für das

01:05.040 --> 01:07.590
A3C-Modell verwendet wird.

01:07.590 --> 01:09.361
Ich werde Ihnen also diese drei Dinge zur Verfügung

01:09.361 --> 01:13.076
stellen, um den Zusammenhang zu verdeutlichen, den ich hergestellt habe.

01:13.076 --> 01:18.000
Wie ich bereits erwähnt habe, bevor ich den restlichen Code generiert habe, besteht

01:18.000 --> 01:20.160
Ihr Ziel darin, die vollständige Lösung

01:20.160 --> 01:21.900
mit Python und Torch zu implementieren,

01:21.900 --> 01:23.250
ähnlich wie wir es zuvor

01:23.250 --> 01:25.650
getan haben, und den Code zu optimieren,

01:25.650 --> 01:27.690
damit er in Google Colab ausgeführt

01:27.690 --> 01:31.680
werden kann, wie wir es zuvor getan haben.

01:31.680 --> 01:33.540
Kommentieren Sie außerdem jede einzelne

01:33.540 --> 01:35.850
Zeile des Codes, damit die Schülerinnen und Schüler

01:35.850 --> 01:38.590
verstehen können, was Sie im Code gemacht haben.

01:40.710 --> 01:42.990
Stellen Sie bei Bedarf klärende Fragen, verstanden.

01:42.990 --> 01:46.500
Es gibt also einige Überschneidungen mit dem, was wir für

01:46.500 --> 01:48.360
die Konversation Deep Q für "DOOM"

01:48.360 --> 01:53.130
gemacht haben, aber ich habe eine Menge Kontext hinzugefügt, den ich bereits

01:53.130 --> 01:54.600
implementiert habe, und

01:54.600 --> 01:57.390
ich möchte, dass er genutzt wird.

01:57.390 --> 02:00.210
Damit fange ich an, und es wird bestätigt.

02:00.210 --> 02:03.030
Ja, ich verstehe und werde alle Fragen stellen,

02:03.030 --> 02:06.840
bitte stellen Sie den Rest des Codes zur Verfügung.

02:06.840 --> 02:09.510
Dann sagte ich, das ist Adam Optimizer, fügte

02:09.510 --> 02:11.753
den Code für Adam Optimizer ein, für die

02:11.753 --> 02:15.180
Ressourcen, die wir haben, und ich gab diese Anweisung, ich

02:15.180 --> 02:16.920
sagte, warte auf den Rest des Codes,

02:16.920 --> 02:18.870
bevor ich implementiere, ich habe

02:18.870 --> 02:21.963
gerade, bevor ich irgendwelche guten Ergebnisse bekam,

02:23.130 --> 02:27.210
ich fügte eigentlich nur ein und es sprang sofort zur Implementierung

02:27.210 --> 02:30.510
von A3C, ohne auf den Rest zu warten.

02:30.510 --> 02:32.310
Also fügte ich dies als eine Art

02:32.310 --> 02:33.750
systemischen Code hinzu,

02:33.750 --> 02:38.750
eine systemische Aufforderung, und es hieß, okay, bitte stellen Sie die Umgebung

02:39.060 --> 02:40.560
bereit und testen Sie den

02:40.560 --> 02:41.820
Code.

02:41.820 --> 02:42.653
Sie bezieht sich also auf das, was wir in

02:42.653 --> 02:43.650
der ersten Aufforderung angegeben haben.

02:43.650 --> 02:46.323
Ich sagte: "Cool, hier ist

02:47.160 --> 02:51.030
die Umsetzung der Gym-Umgebung.

02:51.030 --> 02:52.173
Ich habe den Hauptcode eingefügt,

02:53.760 --> 02:56.010
ich habe hier Kontext hinzugefügt, wenn Sie einen Blick

02:56.010 --> 02:57.128
darauf werfen, und dies ist

02:57.128 --> 02:59.040
die Hauptdatei, in der alles läuft.

02:59.040 --> 03:01.383
Und dann habe ich gesagt, okay, cool,

03:03.690 --> 03:05.267
warte auf den Testcode.

03:05.267 --> 03:06.813
Und er sagte, ja, aber ich muss

03:07.830 --> 03:08.766
noch den Testcode

03:08.766 --> 03:11.880
sehen, bevor ich A3C implementiere, und ich sagte, cool,

03:11.880 --> 03:13.410
hier ist ein Testcode.

03:13.410 --> 03:15.813
Wenn Sie ein größeres Projekt

03:16.920 --> 03:19.170
haben, können Sie das verwenden,

03:19.170 --> 03:21.480
um diesen Teil des Codes oder

03:21.480 --> 03:23.230
eine Referenz im Stil

03:24.330 --> 03:27.810
zu verwenden, so dass Sie tatsächlich

03:27.810 --> 03:30.870
etwas in Ihrem Codestil erzeugen

03:30.870 --> 03:33.630
können.

03:33.630 --> 03:34.983
Cool, und als ich das gemacht

03:36.360 --> 03:38.370
habe, hieß es, toll, mach es.

03:38.370 --> 03:41.190
Und er sagte, dass ich im Grunde diesen Hauptcode

03:41.190 --> 03:45.840
und die Tests verwenden und dies implementieren werde.

03:45.840 --> 03:49.200
Und dann stand da: "Modell erstellt". py, was wir in dem Kurs auch gemacht

03:49.200 --> 03:52.800
haben.

03:52.800 --> 03:55.830
Und er sagte: "Hier ist das ActorCritic-Modell,

03:55.830 --> 03:58.620
und ich vergleiche es mit unserem.

03:58.620 --> 04:00.630
Dies ist die neuere Version von Python, so dass ein

04:00.630 --> 04:02.310
Großteil der Gewichte Initialisierung

04:02.310 --> 04:05.640
und Dinge wie, dass in einer eleganteren Art und Weise getan werden kann.

04:05.640 --> 04:09.060
So tat es und es tatsächlich verwendet

04:09.060 --> 04:13.680
ziemlich gut, dann erzeugt Zug-Code, und im Grunde

04:13.680 --> 04:15.663
ActorCritic.

04:16.500 --> 04:19.860
Und wenn man sich das anschaut, ist es ziemlich simpel,

04:19.860 --> 04:22.020
also muss es definitiv verbessert

04:22.020 --> 04:23.039
werden.

04:23.039 --> 04:25.980
Sie können also sagen: "Okay, ich habe gesagt,

04:25.980 --> 04:27.423
ich mache weiter", und

04:28.500 --> 04:31.560
es wird weiter aufgeschrieben.

04:31.560 --> 04:35.373
Es hat dies als eine Art Verlust erstellt,

04:37.920 --> 04:41.040
aber es gibt, ja, im Grunde alles,

04:41.040 --> 04:45.030
was wir brauchten, es hat alles optimiert,

04:45.030 --> 04:47.910
und Sie können diesen Optimierer

04:47.910 --> 04:51.333
sehen. am Ende aufhören.

04:53.160 --> 04:56.550
Es wurde also im Grunde alles

04:56.550 --> 04:58.080
verwendet, was wir bisher

04:58.080 --> 04:59.220
definiert haben, sowie

04:59.220 --> 05:02.490
der richtige Verlust, und ja, Optimierer, alles.

05:02.490 --> 05:05.730
Das war's also.

05:05.730 --> 05:07.591
In ein paar einfachen Schritten

05:07.591 --> 05:10.530
haben wir es geschafft, den gesamten Code für

05:10.530 --> 05:13.170
eines der modernsten Modelle zu implementieren,

05:13.170 --> 05:15.270
das zufällig eines der besten im

05:15.270 --> 05:18.450
Jahr 2017, 2018, war.

05:18.450 --> 05:21.060
Bis zum heutigen Tag ist es

05:21.060 --> 05:24.900
in der Lage, komplexe Umgebungen wie "Breakout"

05:24.900 --> 05:27.240
zu lösen. Sie haben also gesehen, dass wir jetzt zum Beispiel

05:27.240 --> 05:28.710
ChatGPT haben, und Sie können

05:28.710 --> 05:32.490
es anleiten, bestimmte Teile des Codes zu implementieren.

05:32.490 --> 05:35.250
Und wenn du nicht weißt, was bestimmte

05:35.250 --> 05:36.990
Teile des Codes tatsächlich

05:36.990 --> 05:44.853
tun, kannst du ihn fragen, z. B. "Cool, kannst du den Trainingsteil erklären und wo

05:47.310 --> 05:51.840
ist der Brauch von Adam?

05:51.840 --> 05:56.200
Ich fordere sie also auf, sich selbst zu erklären. Das ist also eine

05:58.320 --> 05:59.223
weitere Möglichkeit,

06:04.740 --> 06:08.430
sie zu veranlassen, Ihnen mehr Gründe für ihre Erzeugung

06:08.430 --> 06:10.290
zu nennen.

06:10.290 --> 06:12.570
Und Sie können sehen, dass es

06:12.570 --> 06:16.803
tatsächlich Schritt für Schritt erklärt wird.

06:17.730 --> 06:18.563
Also ja, wir können

06:18.563 --> 06:21.213
darauf warten, Sie können die gleichen Aufforderungen

06:22.920 --> 06:25.890
machen und Sie werden wirklich ähnliche Ergebnisse

06:25.890 --> 06:27.510
wie ich erhalten, aber im Allgemeinen

06:27.510 --> 06:30.030
wird es jetzt die Zugfunktion nehmen, die es

06:30.030 --> 06:31.950
hier oben definiert hat, und es wird

06:31.950 --> 06:34.050
im Grunde jeden einzelnen Schritt durchgehen

06:34.050 --> 06:38.010
und ihn implementieren.

06:38.010 --> 06:40.890
Ja, das war's dann wohl.

06:40.890 --> 06:43.803
Ich möchte Sie auf jeden Fall ermutigen, diesen Code

06:44.700 --> 06:46.053
in Google Colab auszuprobieren.

06:47.580 --> 06:48.600
Es ist machbar, aber

06:48.600 --> 06:54.780
es wird ein bisschen schwierig sein, es zum Laufen zu bringen, wegen der Visualisierung und den Einschränkungen

06:54.780 --> 06:58.380
der Goggle Colab Umgebung.

06:58.380 --> 06:59.760
Sie können jedoch auf jeden Fall

06:59.760 --> 07:02.430
gehen und fügen Sie die Fehler hier, und Sie können, können

07:02.430 --> 07:03.840
Sie gehen und erhalten einige ziemlich

07:03.840 --> 07:07.083
anständige Ergebnisse für das zu debuggen den Prozess.

07:08.580 --> 07:11.310
Und ja, damit lasse ich Sie sein, und jetzt

07:11.310 --> 07:13.890
haben Sie die Art und Weise zu verwenden ChatGPT

07:13.890 --> 07:16.860
auf, wie man Wert für A3C zu bekommen.

07:16.860 --> 07:20.400
Und ja, ich hoffe, der Kurs hat

07:20.400 --> 07:24.960
dir bis jetzt gefallen, tschüss.
