Luka: Witam wszystkich i zapraszam ponownie.
W tym filmie będziemy
mówić o ChatGPT i jak go używać do implementacji
tego samego algorytmu dla Dooma, który będziemy używać
w kursie, convolutional deep
Q-learning.
Więc w ciągu najbliższych
kilku minut, mamy zamiar przejść przez sposób, że faktycznie wskazałem
i poprosił ChatGPT dla nas, aby uzyskać nasz model.
Pozwól więc, że pomogę ci zrozumieć, jak to zrobiłem i
dlaczego zrobiłem pewne podpowiedzi w sposób, w jaki zrobiłem.
Tak więc początkowa podpowiedź była dość dobrze opracowana z mojej strony.
Powiedziałem: "Jesteś
Senior Machine Learning Expert "z wieloletnim
doświadczeniem w pracy nad projektami "stosującymi
uczenie maszynowe do symulacji i robotyki. To jest pierwsza część, ustawienie sceny, nadanie
im roli.
Więc w zasadzie przestrzeń wektorowa całego ChatGPT
będzie podpowiadana bardziej na tematy związane z uczeniem maszynowym.
Teraz chcę wprowadzić do mojego kontekstu Dooma.
I właściwie, jak dojść do tego punktu, powiedziałem: "Ok, zatrudniłem
cię, abyś pomógł mi "z wdrożeniem
algorytmu Convolutional Deep
Q-Learning "dla środowiska Doom.
"Celem jest posiadanie "w pełni funkcjonalnego
algorytmu uczenia
się wzmocnień "który może grać w Doom, środowisko gry.
"Zaimplementowałem klasy "dla experience_replay" oraz pamięci
i przetwarzania obrazów.
"Dostarczę ci to "abyś mógł uwzględnić to w ostatecznym
kodzie.
To jest naprawdę ważne, co większości ludzi umyka.
Musisz mieć jakiś sposób, aby powiedzieć mu,
lub powiedzieć ChatGPT, że masz już coś i chcesz
użyć tego kodu w ostatecznej
implementacji.
Więc jeśli nie dostarczyłem tego jako kontekstu, wygeneruje
on jakiś kod, jakąś implementację konwencjonalnego
głębokiego uczenia Q, która nie będzie
rozważać użycia experience_replay i naszej funkcji
przetwarzania obrazu, ale chcemy tego.
Więc dalej mówię:
"Twoim celem jest wdrożenie pełnego
rozwiązania przy użyciu Pythona, "Torch dla modelu, "i
optymalizacja kodu do wykonania w Google
Colab "tak, że studenci przechodzący przez kod "może wykonać te z nie tak
silnych komputerów. To jest w zasadzie powiedzenie
ChatGPT, jaki jest format ostatecznego rozwiązania,
które chciałbyś mieć.
I wreszcie "w razie potrzeby zadawaj pytania wyjaśniające",
które zapewnią jej więcej kontekstu.
I "Ech, jeśli nie wiesz, "jeśli nie masz wystarczającego
kontekstu, to proszę, zapytaj mnie. A na koniec zapytany: "Masz to? Chciałem potwierdzić, że dostała.
Jest to sprytny sposób na umożliwienie mu zastanowienia się
nad tym, a nie ścisłe przejście do generowania kolejnych podpowiedzi, kolejnych odpowiedzi.
Jeśli tego nie zrobisz,
jeśli nie zapytasz "Masz to? " lub "Jasne? albo "Czy rozumiesz? " lub coś takiego, to
całkowicie zignoruje niektóre
części i zacznie generować.
Ponieważ masz limit liczby tokenów
w pytaniach i w odpowiedzi,
chciałbyś go złamać, abyś mógł uzyskać odświeżenie
ilości tokenów, które możesz wygenerować.
Zatem pierwsza odpowiedź brzmi:
"Zrozumiałem zadanie.
"Zrobię dokładnie to, o co poproszę.
"Ale zanim przejdę dalej, mam kilka pytań. I tu właśnie pojawiło się to "jeśli masz jakieś pytania, to pytaj",
zadało mi całkiem dobre pytania.
Po pierwsze, czy masz niestandardowe środowisko, czy używasz
czegoś, co już jest?
Czyli OpenAI, VizDoom i tego typu rzeczy.
Następnie przechodzimy do czegoś w rodzaju,
czy są jakieś konkretne metryki wydajności, które chciałbyś,
żebym śledził?
Czy są wymagania co do samego modelu?
Jakie wersje Pythona i PyTorcha?
I wreszcie, czy są jakieś konkretne ograniczenia
co do terminu?
To jest z głównie biznesplanów,
na których była szkolona, ale
dla niej, tak jakby, to nie jest istotne dla niej, ale ok.
Podałem: "Tak, będę używał OpenAI Gym, a oto jak
go załadować. To jest z kursu.
Powiedziałem, ok, kieruj się średnią nagrodą,
nie ma konkretnych wymagań, bądź kreatywny, dopóki działa,
użyj najnowszych modeli lub wersji bibliotek
i jaki jest termin.
Napisałem tylko "ASAP".
Dodatkowo tutaj są te zajęcia, o których wspomniałem.
Więc po prostu wkleiłem klasy, które mamy w kursie.
Czyli powtórka z doświadczenia,
wszystko, a na koniec pamięć powtórkowa, przetwarzanie
obrazu i tyle.
I dzięki temu buduję kontekst, a
teraz zaczęło się generować.
Wygenerowało więc kod.
Zasadniczo zaczął od wstępnego przetwarzania
obrazu, a następnie stworzył głęboką sieć Q, która
jest dość podobna do tego, co mamy.
Potem zaczęło się od
inicjalizacji tego, a następnie kodu szkoleniowego.
Wszystko do tej pory działało, a tu potem się psuje.
Jeśli chcesz kontynuować generowanie
czegoś dłużej, napisałem po prostu "kontynuuj".
I powiedział, "Kontynuuj? Tak, z pewnością. Kontynuuje generowanie
i bam, mamy pełny kod.
Niesamowite.
Podane było jak go używać,
częstotliwość, co zmieniać i takie tam.
Pomogło mi to również w tej kwestii.
I pozwólcie, że przeniosę was do mojego Google Colab.
Więc zacząłem od wklejenia kodu tutaj,
wkleiłem naszą funkcję wstępnego przetwarzania.
Za chwilę przeskoczę do zmian w tej funkcji wstępnego przetwarzania.
Następnie wkleiłem ten replay doświadczenia, część
instalacji z mojego końca.
Wyjaśnimy to za chwilę.
Grałem z jego głęboką siecią Q i kodem szkoleniowym.
Więc na pewno są sposoby, aby to poprawić.
Zwłaszcza jeśli masz lokalne środowisko, to będzie działać.
Jeśli używasz tego w Google Colab, może to się zepsuć.
Więc pozwól, że cię do tego doprowadzę.
Więc zrobiłem to i dostałem błąd.
Powiedziałem: "Hej, mój początkowy kod, który dostarczył, nie zadziałał.
Właśnie wkleiłem kod, ten
komunikat o błędzie i powiedzenie "Nie mogę zmienić rozmiaru obrazu. A jeśli spojrzysz na nasz kod z kursu, wymaga on zmiany
rozmiaru obrazu za pomocą tego.
Ale nowsza wersja SciPy faktycznie to usuwa.
Więc powiedział, "Oh, yeah, "wygląda na to, że to mogło
zostać usunięte. "Oto nowa wersja z Pillow.
A właściwie to nie wymagał.
To w zasadzie przepisało całą klasę obrazu
wstępnego przetwarzania z Pillow zamiast SciPy.
Więc użyłem go i faktycznie działa.
I wtedy powiedziałem: "Ok, "Mam problem ze środowiskiem
używającym Google Colab.
"Jak to rozwiązać? To jest ten błąd. I powiedział: "O, tak, przepraszam.
"Wydaje się, że to konkretne środowisko nie działa.
"Oto co zrobisz.
"W zasadzie instalujesz i robisz to. Dostałem błąd, kolejny błąd.
I ten błąd faktycznie wskazywał,
że renderowanie nie jest znalezione w tej konkretnej wersji.
I powiedział: "Ok, zainstaluj tę wersję. Tak. Kolejny błąd.
I powiedział: "O, tak, tak, "Google Colab nie obsługuje renderingu,
bibliotek OpenGL",
co oznacza dla nas, że musimy zrobić, zamiast Google
Colab, coś innego do celów
wizualizacji.
I to w zasadzie dało mi krok po kroku, prowadząc
na co zrobić, jak
zmienić to i takie rzeczy.
A jeśli zrobisz to lokalnie, rozwiążesz problem.
Ale to jest w zasadzie
teraz nauczanie, jak prawidłowo używać ChatGPT.
Podobnie jak tutaj, widziałeś, że dostałem kilka błędów, podpowiedziałem
z tymi błędami i tak dalej.
A teraz masz, jak,
jeśli przewiniesz do tyłu, masz w pełni funkcjonujący kod
z głęboką siecią Q, z kodem treningowym, i
możesz iść i poprosić go o wygenerowanie
kodu testowego, a on to zrobi.
Niesamowite, prawda?
Więc to jest to.
Oto jak używać ChatGPT do rozwiązywania głębokiego Q, czyli konwencjonalnej
głębokiej sieci Q dla Dooma.
Dzięki. Ciesz się kursem!