WEBVTT

00:02.310 --> 00:04.620
Hallo, iedereen, en welkom terug.

00:04.620 --> 00:05.453
In deze video gaan

00:05.453 --> 00:07.710
we het hebben over ChatGPT en hoe je het

00:07.710 --> 00:11.370
kunt gebruiken om hetzelfde algoritme voor Doom te implementeren

00:11.370 --> 00:13.350
dat we in de cursus gaan gebruiken,

00:13.350 --> 00:16.290
convolutionele diepe Q-learning.

00:16.290 --> 00:17.790
Dus in de volgende paar

00:17.790 --> 00:22.440
minuten, gaan we door de manier lopen waarop ik eigenlijk ChatGPT

00:22.440 --> 00:26.190
wees en vroeg om ons model te krijgen.

00:26.190 --> 00:29.580
Dus laat me je helpen begrijpen hoe ik het deed en waarom

00:29.580 --> 00:33.720
ik bepaalde aanwijzingen deed op de manier waarop ik dat deed.

00:33.720 --> 00:38.460
Dus de initiële prompt was vrij goed opgesteld van mijn kant.

00:38.460 --> 00:39.293
Ik zei: "U bent een

00:39.293 --> 00:41.527
Senior Machine Learning Expert "met jarenlange

00:41.527 --> 00:43.717
ervaring in het werken aan projecten "waarbij

00:43.717 --> 00:47.550
machine learning wordt toegepast op simulaties en robotica. Dit is het eerste deel, de weg bereiden, hen een

00:47.550 --> 00:48.750
rol geven.

00:48.750 --> 00:51.330
Dus eigenlijk zal de vectorruimte van de hele

00:51.330 --> 00:55.410
ChatGPT meer gericht zijn op onderwerpen van machinaal leren.

00:55.410 --> 00:59.310
Nu wil ik in mijn context brengen, Doom.

00:59.310 --> 01:04.310
En eigenlijk, hoe ik dat punt bereikte, zei ik: "Oké, ik heb je ingehuurd

01:04.500 --> 01:06.600
om me te helpen "met het implementeren

01:06.600 --> 01:08.887
van een Convolutioneel Diep Q-Learning

01:08.887 --> 01:12.457
algoritme "voor de Doom omgeving.

01:12.457 --> 01:14.407
"Het doel is om "een volledig functioneel algoritme

01:14.407 --> 01:15.337
voor reinforcement learning

01:15.337 --> 01:18.457
te hebben "dat Doom kan spelen, een spelomgeving.

01:18.457 --> 01:22.327
"Ik heb klassen geïmplementeerd voor experience_replay en geheugen

01:22.327 --> 01:24.187
en beeldverwerking."

01:24.187 --> 01:27.903
"Ik zal u dat geven, zodat u dat in de definitieve code

01:28.777 --> 01:30.337
kunt opnemen."

01:30.337 --> 01:34.800
Dit is echt belangrijk, wat de meeste mensen missen.

01:34.800 --> 01:37.893
Je moet een manier hebben om hem, of ChatGPT, te

01:38.790 --> 01:42.120
vertellen dat je al iets hebt en dat je die code wilt

01:42.120 --> 01:43.860
gebruiken in de uiteindelijke

01:43.860 --> 01:45.720
implementatie.

01:45.720 --> 01:50.720
Dus als ik dit niet als context meegeef, zal het een of andere code

01:50.910 --> 01:54.390
genereren, een of andere implementatie van

01:54.390 --> 01:57.240
convolutionaire diepe Q-learning die

01:57.240 --> 02:01.140
niet zal overwegen experience_replay en onze beeldverwerkingsfunctie

02:01.140 --> 02:06.330
te gebruiken, maar dat willen we wel.

02:06.330 --> 02:07.323
Dus, dan zeg ik verder:

02:08.250 --> 02:10.537
"Je doel is om de volledige oplossing te

02:10.537 --> 02:14.107
implementeren met behulp van Python, "Torch voor model, "en de

02:14.107 --> 02:16.717
code te optimaliseren voor uitvoering in Google

02:16.717 --> 02:21.187
Colab "zodat studenten die de code doorlopen "die met niet zo sterke computers

02:21.187 --> 02:23.167
kunnen uitvoeren. Dit vertelt de ChatGPT

02:23.167 --> 02:28.167
wat het formaat is van de uiteindelijke

02:28.260 --> 02:33.060
oplossing die u wilt hebben.

02:33.060 --> 02:35.190
En dan, tenslotte, "stel zo nodig verduidelijkende

02:35.190 --> 02:37.200
vragen" zal het van meer context voorzien.

02:37.200 --> 02:40.050
En, "Eh, als je het niet weet, "als je niet genoeg

02:40.050 --> 02:42.060
context hebt, vraag het me dan. En uiteindelijk vroeg, "Heb je het? Ik wilde bevestigen dat het kreeg.

02:42.060 --> 02:44.197
Dit is een slimme manier om het te laten nadenken en niet

02:44.197 --> 02:47.580
strikt te gaan naar het genereren van volgende prompts, volgende antwoorden.

02:47.580 --> 02:49.737
Als je dit niet doet, als

02:50.640 --> 02:53.730
je niet vraagt "Heb je het? " of "Duidelijk? of "Begrijp je het? " of zoiets, zal het sommige

02:53.730 --> 02:58.730
onderdelen volledig negeren en beginnen

03:00.210 --> 03:05.210
met genereren.

03:05.820 --> 03:07.230
Aangezien u de limiet hebt van het aantal

03:07.230 --> 03:09.090
tokens in uw vragen en in

03:09.090 --> 03:12.780
het antwoord, zou u die willen doorbreken, zodat

03:12.780 --> 03:16.020
u een opfrissing krijgt van het aantal tokens dat u kunt genereren.

03:16.020 --> 03:18.240
Dus het eerste antwoord is:

03:18.240 --> 03:20.760
"Ik begreep de opdracht.

03:20.760 --> 03:22.980
"Ik ga precies doen wat ik ga vragen.

03:22.980 --> 03:26.310
"Maar voordat ik verder ga, heb ik een paar vragen. En dit is waar dit "als je vragen hebt, stel ze me",

03:26.310 --> 03:28.610
me vrij goede vragen stelde.

03:29.820 --> 03:32.377
Ten eerste, heb je een aangepaste omgeving, of gebruik

03:32.377 --> 03:33.607
je iets dat er al is?

03:33.607 --> 03:36.697
Dus OpenAI, VizDoom, en dat soort dingen.

03:36.697 --> 03:39.600
Zijn er specifieke

03:39.600 --> 03:43.980
prestatiecijfers die ik moet

03:43.980 --> 03:45.750
volgen?

03:45.750 --> 03:49.200
Worden er eisen gesteld aan het model zelf?

03:49.200 --> 03:51.240
Welke versies van Python en PyTorch?

03:51.240 --> 03:53.883
En tot slot, zijn er specifieke beperkingen

03:54.750 --> 03:56.850
voor de termijn?

03:56.850 --> 03:58.950
Dit is van meestal bedrijfsplannen waarop

03:58.950 --> 04:00.783
het is getraind, maar voor het, zoals,

04:01.800 --> 04:05.850
het is niet echt, zoals dit is niet relevant voor het, maar oke.

04:05.850 --> 04:08.223
Ik zei: "Ja, ik zal OpenAI Gym gebruiken, en hier is hoe

04:09.180 --> 04:10.140
ik het moet laden. Dit komt uit de cursus.

04:10.140 --> 04:12.990
Ik zei, oké, volg de gemiddelde beloning, geen

04:12.990 --> 04:17.160
specifieke eisen, wees creatief zolang het werkt, gebruik de nieuwste

04:17.160 --> 04:19.803
modellen of versies van de bibliotheken,

04:20.970 --> 04:23.283
en wat is de deadline.

04:24.150 --> 04:25.177
Ik schreef net "ASAP".

04:25.177 --> 04:30.177
Bovendien, hier zijn deze klassen die ik noemde.

04:30.480 --> 04:31.713
Dus ik heb gewoon de klassen geplakt die we in de cursus hebben.

04:33.000 --> 04:35.133
Dus experience replay,

04:36.030 --> 04:40.953
alles, en uiteindelijk, replay geheugen, beeldverwerking,

04:42.120 --> 04:46.320
en dat is het.

04:46.320 --> 04:48.090
En hiermee bouwde ik de context op,

04:48.090 --> 04:49.797
en nu begon het te genereren.

04:51.150 --> 04:54.120
Dus het genereerde de code.

04:54.120 --> 04:57.000
Het begon met de voorbewerking van

04:57.000 --> 05:00.720
het beeld en creëerde toen het diepe Q-netwerk,

05:00.720 --> 05:04.773
dat vrij gelijkaardig is aan wat wij hebben.

05:05.790 --> 05:06.623
Dan begon het met het

05:07.681 --> 05:10.230
initialiseren daarvan, en dan de trainingscode.

05:10.230 --> 05:13.530
Alles werkte tot nu toe, en dan breekt het hier.

05:13.530 --> 05:15.753
Als je iets langer wilt

05:16.590 --> 05:21.363
genereren, schreef ik gewoon "doorgaan".

05:22.560 --> 05:25.110
En het zei, "Ga door? Ja, zeker. Het blijft genereren, en bam, we

05:25.110 --> 05:27.513
hebben de volledige code.

05:29.070 --> 05:31.983
Verbazingwekkend.

05:32.910 --> 05:34.863
Er stond in hoe het te gebruiken,

05:36.000 --> 05:40.350
frequentie, wat te veranderen, en dat soort dingen.

05:40.350 --> 05:43.950
Het heeft mij ook geholpen.

05:43.950 --> 05:46.110
En ik breng je naar mijn Google Colab.

05:46.110 --> 05:49.530
Dus ik begon met het plakken van de code

05:49.530 --> 05:51.840
hier, geplakt onze pre-processing functie.

05:51.840 --> 05:55.853
Ik zal zo meteen ingaan op de veranderingen in deze voorbewerkingsfunctie.

05:57.060 --> 06:00.750
Daarna heb ik deze ervaring geplakt, een deel van de

06:00.750 --> 06:02.793
installatie van mijn kant.

06:03.720 --> 06:05.940
We zullen dit zo uitleggen.

06:05.940 --> 06:09.630
Ik speelde met zijn diepe Q-netwerk en trainingscode.

06:09.630 --> 06:13.053
Dus er zijn zeker manieren om dit te verbeteren.

06:14.040 --> 06:16.290
Vooral als je een lokale omgeving hebt, zal het werken.

06:16.290 --> 06:18.720
Als je dit gebruikt in Google Colab, kan het breken.

06:18.720 --> 06:19.553
Dus laat me je daar naar toe brengen.

06:20.970 --> 06:24.843
Dus ik deed het, en ik kreeg een foutmelding.

06:25.740 --> 06:29.163
Ik zei, "Hé, mijn aanvankelijke code die hij gaf werkte niet.

06:30.150 --> 06:31.833
Ik plakte de code, deze foutmelding,

06:32.790 --> 06:37.790
en zei: "Ik kan de grootte van een afbeelding niet aanpassen. En als je kijkt naar onze code uit de cursus, moet de afbeelding

06:38.430 --> 06:41.640
hiermee verkleind worden.

06:41.640 --> 06:45.810
Maar de nieuwere versie van SciPy verwijdert dit eigenlijk.

06:45.810 --> 06:49.440
Dus het zei, "Oh, ja, "het lijkt erop dat dit misschien

06:49.440 --> 06:50.840
is verwijderd. "Hier is de nieuwe versie met Pillow.

06:51.750 --> 06:54.240
En eigenlijk was dat niet nodig.

06:54.240 --> 06:58.110
Het herschreef in feite de hele pre-processing

06:58.110 --> 07:03.110
image class met Pillow in plaats van SciPy.

07:03.810 --> 07:06.600
Dus gebruikte ik het, en het werkt eigenlijk.

07:06.600 --> 07:10.440
En toen zei ik: "Oké, "Ik heb een probleem met Milieu

07:10.440 --> 07:13.200
die Google Colab gebruikt.

07:13.200 --> 07:17.310
"Hoe los je het op? Dit is de fout. En het zei, "Oh, ja, excuses.

07:17.310 --> 07:18.663
"Het lijkt erop dat deze specifieke omgeving niet werkt.

07:19.537 --> 07:21.637
"Hier is wat je doet.

07:21.637 --> 07:25.200
"Je installeert en doet dit. Ik kreeg een fout, nog een fout.

07:25.200 --> 07:27.360
En deze fout gaf eigenlijk aan

07:27.360 --> 07:32.260
dat rendering niet wordt gevonden in deze specifieke versie.

07:33.270 --> 07:36.723
En het zei, "Oké, installeer deze versie. Dat heb ik gedaan. Nog een fout.

07:37.620 --> 07:41.283
En het zei, "Oh, ja, ja, "Google Colab ondersteunt geen rendering,

07:42.990 --> 07:44.227
OpenGL bibliotheken,"

07:44.227 --> 07:47.257
wat voor ons betekent dat we, in plaats van Google Colab,

07:47.257 --> 07:50.160
iets anders moeten doen voor

07:50.160 --> 07:52.087
visualisatiedoeleinden.

07:52.087 --> 07:55.657
En het gaf me eigenlijk een stap-voor-stap leidraad

07:55.657 --> 07:56.917
over wat te doen, hoe

07:56.917 --> 07:59.880
dat te veranderen, en dat soort dingen.

07:59.880 --> 08:02.580
En als je dit lokaal doet, los je het probleem op.

08:02.580 --> 08:04.350
Maar dit is eigenlijk

08:04.350 --> 08:09.350
nu leren hoe je ChatGPT goed moet gebruiken.

08:11.850 --> 08:14.280
Zoals, hier, je zag dat ik wat fouten kreeg, ik vroeg

08:14.280 --> 08:17.040
om die fouten, enzovoort.

08:17.040 --> 08:18.457
En nu heb je, als

08:18.457 --> 08:23.457
je terugbladert, een volledig werkende code met een

08:24.270 --> 08:27.870
diep Q-netwerk, met een trainingscode,

08:27.870 --> 08:31.350
en je kunt het vragen een testcode te genereren,

08:31.350 --> 08:34.500
en dat doet het.

08:34.500 --> 08:37.440
Verbazingwekkend, toch?

08:37.440 --> 08:38.820
Dus dat is het.

08:38.820 --> 08:42.450
Zo gebruik je ChatGPT om het diepe Q, of convolutionaire

08:42.450 --> 08:45.120
diepe Q-netwerk voor Doom op te lossen.

08:45.120 --> 08:47.200
Bedankt. Geniet van de cursus!
