Hallo, iedereen, en welkom terug.
In deze video gaan
we het hebben over ChatGPT en hoe je het
kunt gebruiken om hetzelfde algoritme voor Doom te implementeren
dat we in de cursus gaan gebruiken,
convolutionele diepe Q-learning.
Dus in de volgende paar
minuten, gaan we door de manier lopen waarop ik eigenlijk ChatGPT
wees en vroeg om ons model te krijgen.
Dus laat me je helpen begrijpen hoe ik het deed en waarom
ik bepaalde aanwijzingen deed op de manier waarop ik dat deed.
Dus de initiële prompt was vrij goed opgesteld van mijn kant.
Ik zei: "U bent een
Senior Machine Learning Expert "met jarenlange
ervaring in het werken aan projecten "waarbij
machine learning wordt toegepast op simulaties en robotica. Dit is het eerste deel, de weg bereiden, hen een
rol geven.
Dus eigenlijk zal de vectorruimte van de hele
ChatGPT meer gericht zijn op onderwerpen van machinaal leren.
Nu wil ik in mijn context brengen, Doom.
En eigenlijk, hoe ik dat punt bereikte, zei ik: "Oké, ik heb je ingehuurd
om me te helpen "met het implementeren
van een Convolutioneel Diep Q-Learning
algoritme "voor de Doom omgeving.
"Het doel is om "een volledig functioneel algoritme
voor reinforcement learning
te hebben "dat Doom kan spelen, een spelomgeving.
"Ik heb klassen geïmplementeerd voor experience_replay en geheugen
en beeldverwerking."
"Ik zal u dat geven, zodat u dat in de definitieve code
kunt opnemen."
Dit is echt belangrijk, wat de meeste mensen missen.
Je moet een manier hebben om hem, of ChatGPT, te
vertellen dat je al iets hebt en dat je die code wilt
gebruiken in de uiteindelijke
implementatie.
Dus als ik dit niet als context meegeef, zal het een of andere code
genereren, een of andere implementatie van
convolutionaire diepe Q-learning die
niet zal overwegen experience_replay en onze beeldverwerkingsfunctie
te gebruiken, maar dat willen we wel.
Dus, dan zeg ik verder:
"Je doel is om de volledige oplossing te
implementeren met behulp van Python, "Torch voor model, "en de
code te optimaliseren voor uitvoering in Google
Colab "zodat studenten die de code doorlopen "die met niet zo sterke computers
kunnen uitvoeren. Dit vertelt de ChatGPT
wat het formaat is van de uiteindelijke
oplossing die u wilt hebben.
En dan, tenslotte, "stel zo nodig verduidelijkende
vragen" zal het van meer context voorzien.
En, "Eh, als je het niet weet, "als je niet genoeg
context hebt, vraag het me dan. En uiteindelijk vroeg, "Heb je het? Ik wilde bevestigen dat het kreeg.
Dit is een slimme manier om het te laten nadenken en niet
strikt te gaan naar het genereren van volgende prompts, volgende antwoorden.
Als je dit niet doet, als
je niet vraagt "Heb je het? " of "Duidelijk? of "Begrijp je het? " of zoiets, zal het sommige
onderdelen volledig negeren en beginnen
met genereren.
Aangezien u de limiet hebt van het aantal
tokens in uw vragen en in
het antwoord, zou u die willen doorbreken, zodat
u een opfrissing krijgt van het aantal tokens dat u kunt genereren.
Dus het eerste antwoord is:
"Ik begreep de opdracht.
"Ik ga precies doen wat ik ga vragen.
"Maar voordat ik verder ga, heb ik een paar vragen. En dit is waar dit "als je vragen hebt, stel ze me",
me vrij goede vragen stelde.
Ten eerste, heb je een aangepaste omgeving, of gebruik
je iets dat er al is?
Dus OpenAI, VizDoom, en dat soort dingen.
Zijn er specifieke
prestatiecijfers die ik moet
volgen?
Worden er eisen gesteld aan het model zelf?
Welke versies van Python en PyTorch?
En tot slot, zijn er specifieke beperkingen
voor de termijn?
Dit is van meestal bedrijfsplannen waarop
het is getraind, maar voor het, zoals,
het is niet echt, zoals dit is niet relevant voor het, maar oke.
Ik zei: "Ja, ik zal OpenAI Gym gebruiken, en hier is hoe
ik het moet laden. Dit komt uit de cursus.
Ik zei, oké, volg de gemiddelde beloning, geen
specifieke eisen, wees creatief zolang het werkt, gebruik de nieuwste
modellen of versies van de bibliotheken,
en wat is de deadline.
Ik schreef net "ASAP".
Bovendien, hier zijn deze klassen die ik noemde.
Dus ik heb gewoon de klassen geplakt die we in de cursus hebben.
Dus experience replay,
alles, en uiteindelijk, replay geheugen, beeldverwerking,
en dat is het.
En hiermee bouwde ik de context op,
en nu begon het te genereren.
Dus het genereerde de code.
Het begon met de voorbewerking van
het beeld en creëerde toen het diepe Q-netwerk,
dat vrij gelijkaardig is aan wat wij hebben.
Dan begon het met het
initialiseren daarvan, en dan de trainingscode.
Alles werkte tot nu toe, en dan breekt het hier.
Als je iets langer wilt
genereren, schreef ik gewoon "doorgaan".
En het zei, "Ga door? Ja, zeker. Het blijft genereren, en bam, we
hebben de volledige code.
Verbazingwekkend.
Er stond in hoe het te gebruiken,
frequentie, wat te veranderen, en dat soort dingen.
Het heeft mij ook geholpen.
En ik breng je naar mijn Google Colab.
Dus ik begon met het plakken van de code
hier, geplakt onze pre-processing functie.
Ik zal zo meteen ingaan op de veranderingen in deze voorbewerkingsfunctie.
Daarna heb ik deze ervaring geplakt, een deel van de
installatie van mijn kant.
We zullen dit zo uitleggen.
Ik speelde met zijn diepe Q-netwerk en trainingscode.
Dus er zijn zeker manieren om dit te verbeteren.
Vooral als je een lokale omgeving hebt, zal het werken.
Als je dit gebruikt in Google Colab, kan het breken.
Dus laat me je daar naar toe brengen.
Dus ik deed het, en ik kreeg een foutmelding.
Ik zei, "Hé, mijn aanvankelijke code die hij gaf werkte niet.
Ik plakte de code, deze foutmelding,
en zei: "Ik kan de grootte van een afbeelding niet aanpassen. En als je kijkt naar onze code uit de cursus, moet de afbeelding
hiermee verkleind worden.
Maar de nieuwere versie van SciPy verwijdert dit eigenlijk.
Dus het zei, "Oh, ja, "het lijkt erop dat dit misschien
is verwijderd. "Hier is de nieuwe versie met Pillow.
En eigenlijk was dat niet nodig.
Het herschreef in feite de hele pre-processing
image class met Pillow in plaats van SciPy.
Dus gebruikte ik het, en het werkt eigenlijk.
En toen zei ik: "Oké, "Ik heb een probleem met Milieu
die Google Colab gebruikt.
"Hoe los je het op? Dit is de fout. En het zei, "Oh, ja, excuses.
"Het lijkt erop dat deze specifieke omgeving niet werkt.
"Hier is wat je doet.
"Je installeert en doet dit. Ik kreeg een fout, nog een fout.
En deze fout gaf eigenlijk aan
dat rendering niet wordt gevonden in deze specifieke versie.
En het zei, "Oké, installeer deze versie. Dat heb ik gedaan. Nog een fout.
En het zei, "Oh, ja, ja, "Google Colab ondersteunt geen rendering,
OpenGL bibliotheken,"
wat voor ons betekent dat we, in plaats van Google Colab,
iets anders moeten doen voor
visualisatiedoeleinden.
En het gaf me eigenlijk een stap-voor-stap leidraad
over wat te doen, hoe
dat te veranderen, en dat soort dingen.
En als je dit lokaal doet, los je het probleem op.
Maar dit is eigenlijk
nu leren hoe je ChatGPT goed moet gebruiken.
Zoals, hier, je zag dat ik wat fouten kreeg, ik vroeg
om die fouten, enzovoort.
En nu heb je, als
je terugbladert, een volledig werkende code met een
diep Q-netwerk, met een trainingscode,
en je kunt het vragen een testcode te genereren,
en dat doet het.
Verbazingwekkend, toch?
Dus dat is het.
Zo gebruik je ChatGPT om het diepe Q, of convolutionaire
diepe Q-netwerk voor Doom op te lossen.
Bedankt. Geniet van de cursus!