Instruktor: Witam wszystkich i serdecznie pozdrawiam.
W tym filmie porozmawiamy o tym, jak wykorzystać
ChatGPT do rozwiązania "Breakout", używając
ChatGPT do wdrożenia A3C.
Więc już podpowiadałem mu wiele szalonych podpowiedzi, uzyskaliśmy
niesamowite wyniki, zobaczymy je za chwilę.
Więc ten film będzie w zasadzie spaceru
widok przez mój proces myślowy,
jak ja rzeczywiście dostał wyniki,
i jak można rzeczywiście korzystać ChatGPT do
tworzenia algorytmu A3C, jak również.
Ok, więc zacząłem podobnie do tego, co mieliśmy przy "DOOM", stwierdziłem,
ok, jesteś w zasadzie ekspertem
od uczenia maszynowego z
wieloletnim doświadczeniem w robotyce.
Zatrudniam Pana do wykonania algorytmu A3C dla "Breakoutu". Celem jest posiadanie w pełni funkcjonalnego
algorytmu SOTA,
A3C, który może grać w grę "Breakout".
Zaimplementowałem klasy, środowisko
kodu testowego i niestandardowe
wersje optymalizatora Adam, który
jest używany jako optymalizator wag dzielonych
dla modelu A3C.
Więc to jest nadanie temu większego
kontekstu, co zrobiłem, dostarczę ci te trzy rzeczy.
Tak więc, jak wspomniałem przed wygenerowaniem reszty kodu, twoim celem
jest zaimplementowanie pełnego
rozwiązania przy użyciu
Pythona, Torch, podobnie
do tego, co mieliśmy, i zoptymalizowanie
kodu do wykonania w Google Colab,
to samo, co mieliśmy wcześniej.
Dodatkowo komentuj każdą
linię kodu, aby uczniowie mogli
zrozumieć, co zrobiłeś w kodzie.
W razie potrzeby zadawaj pytania wyjaśniające, dostałeś.
Mamy więc trochę pokrywające się to, co zrobiliśmy
dla konwersacyjnego Deep
Q dla "DOOM", ale dodałem dużo kontekstu, że mam już rzeczy zaimplementowane i chciałbym,
żeby były używane.
Więc od tego zaczynam i to się potwierdza.
Tak, rozumiem i będę zadawał wszelkie
pytania, proszę o podanie reszty kodu.
Następnie stwierdziłem, to jest Adam optimizer,
wkleiłem kod Adam optimizer, dla
zasobów, które mamy, i dałem tę instrukcję, powiedziałem,
poczekaj na resztę kodu przed
wdrożeniem, po prostu, zanim
otrzymałem jakieś dobre wyniki, właściwie tylko
wkleiłem i natychmiast przeskoczył do wdrożenia A3C, bez czekania
na resztę.
Więc dodałem to jako rodzaj
systemowego kodu,
systemowego podpowiedzi, i powiedział, ok, proszę podać środowisko
i przetestować kod.
Czyli tak naprawdę odnosi się do tego,
co podaliśmy w pierwszej podpowiedzi.
Powiedziałem: fajnie, tu
jest implementacja środowiska Gym.
Wkleiłem ten główny kod,
dodałem kontekst tutaj, jeśli spojrzysz,
a to jest główny plik
uruchamiający wszystko.
I wtedy powiedziałem: ok, fajnie, poczekaj
na kod testowy.
I powiedział, tak, ja jednak
muszę jeszcze zobaczyć
kod testowy przed wdrożeniem A3C, powiedziałem, fajnie,
tu jest kod testowy.
I widzisz to, jak jeśli masz większy,
większy projekt, możesz użyć
tego, aby rodzaja kołysać go,
aby użyć tego kawałka
kodu lub jako odniesienia, w stylu, więc możesz
faktycznie wygenerować coś w swoim stylu
kodu.
Fajnie, a jak to zrobiłem,
to powiedziało: super, idź na to.
I powiedział zasadniczo, że zamierzam
użyć tego głównego kodu, i testowania, i zaimplementować to.
A potem napisało: created model. py, co właściwie robiliśmy
też na kursie.
I powiedział: tu jest model ActorCritic,
a ja porównuję do naszego.
Jest to nowsza wersja pythona, więc
wiele z inicjalizacji wag i rzeczy
tego typu można zrobić w bardziej elegancki sposób.
Więc zrobił to i faktycznie używa całkiem
dobrze, a następnie wygenerował kod pociągu, a w zasadzie
ActorCritic.
I jeśli spojrzeć, to jest to dość uproszczone,
więc zdecydowanie wymaga poprawy.
Więc co możesz zrobić, możesz powiedzieć,
ok, powiedziałem kontynuuj,
i kontynuuje zapisywanie tego.
Stworzył to jako pewnego rodzaju stratę,
ale jest, tak, w zasadzie wszystko,
co było nam potrzebne, zoptymalizował wszystko i widać ten optymalizator.
zatrzymaj się na końcu.
Więc w zasadzie używał wszystkiego,
co zdefiniowaliśmy do tej pory,
a także odpowiedniej
straty, a także tak, optymalizatora, wszystkiego.
Więc to jest to.
W kilku prostych krokach
udało nam się zaimplementować cały kod
dla jednego z najnowocześniejszych
modeli, który zdarzył się jak
jeden z najlepszych w 2017, 2018 roku.
Do dnia dzisiejszego, to rzeczywiście
trzymać dużo zdolności do rozwiązywania złożonych środowisk,
takich jak "Breakout. Więc widziałeś, teraz, gdy mamy na przykład
ChatGPT, możesz go poprowadzić,
aby zaimplementować pewne określone części kodu.
A jeśli nie wiesz, co właściwie
robią pewne części
kodu, możesz pójść i zapytać
go, na przykład, fajnie, czy możesz
wyjaśnić część treningową
i gdzie jest zwyczaj Adama?
Więc skłaniam go do faktycznego wyjaśnienia się, więc jest to inny
sposób, aby zasadniczo
skłonić go do podania więcej argumentów za jego generowaniem.
I widać, że faktycznie
będzie wyjaśniać krok po kroku.
Więc tak, możemy
na to poczekać, możesz zrobić te same podpowiedzi
i otrzymasz naprawdę podobne wyniki do moich,
ale generalnie teraz to,
co zrobi, weźmie funkcję pociągu, którą
zdefiniował na samej górze tutaj,
i w zasadzie przejdzie przez każdy
pojedynczy krok i wdroży go.
Więc tak, to by było na tyle.
Zdecydowanie zachęcam do wypróbowania tego
kodu w Google Colab,
Można to zrobić,
To będzie trochę zbyt skomplikowane, aby to działało, ze względu
na wizualizację
i ograniczenia środowiska Goggle Colab.
Jednak zdecydowanie możesz
iść i wkleić błędy tutaj, i możesz, możesz iść
i uzyskać całkiem przyzwoite
wyniki dla tego, aby debugować proces.
I tak, z tym pozwolę ci być, a teraz
masz sposób, aby użyć ChatGPT,
jak uzyskać wartość dla A3C.
I tak, mam nadzieję, że jak
na razie kurs się podobał, pa.