Istruttore: Salve a tutti e bentornati.
In questo video parleremo di come utilizzare
ChatGPT per risolvere "Breakout", utilizzando
ChatGPT per implementare A3C.
L'ho già sollecitato con un sacco di richieste assurde e abbiamo ottenuto
risultati sorprendenti, che vedremo tra un secondo.
In questo video, quindi, vi illustrerò
il mio processo di pensiero
su come ho ottenuto i risultati
e su come potete utilizzare ChatGPT per
creare un algoritmo A3C.
Ok, ho iniziato in modo simile a quello che abbiamo fatto per "DOOM", ho detto:
"Ok, sei fondamentalmente un esperto
di apprendimento automatico
con anni di esperienza nella robotica".
Vi assumo per fare l'algoritmo A3C per "Breakout. L'obiettivo è quello di avere un algoritmo SOTA e A3C
completamente funzionante
che possa giocare a "Breakout".
Ho implementato le classi, l'ambiente
di codice di test e le versioni
personalizzate dell'ottimizzatore Adam
che viene utilizzato come ottimizzatore di
pesi condivisi per il modello A3C.
Quindi, per dare un contesto più
ampio, quello che ho fatto è stato fornirvi queste tre cose.
Quindi, come ho accennato prima di generare il resto del codice, il vostro
obiettivo è quello di implementare
la soluzione completa utilizzando
Python, Torch, in modo
simile a quello che avevamo, e ottimizzare
il codice da eseguire in Google
Colab, lo stesso che avevamo prima.
Inoltre, commentate ogni singola
riga del codice in modo che gli studenti possano
capire cosa avete fatto nel codice.
Se necessario, fate domande di chiarimento.
Abbiamo quindi una certa sovrapposizione di ciò che abbiamo
fatto per la Deep Q conversazionale
per "DOOM", ma ho aggiunto un sacco di contesto in cui ho già implementato delle
cose e mi piacerebbe che
venissero utilizzate.
Quindi è quello che inizio ed è confermato.
Sì, ho capito e farò qualsiasi domanda,
per favore fornisci il resto del codice.
Poi ho detto, questo è l'ottimizzatore Adam,
ho incollato il codice per l'ottimizzatore
Adam, per le risorse che abbiamo, e ho dato questa istruzione,
ho detto, aspettate il resto
del codice prima di implementare,
ho solo, prima di ottenere buoni risultati, ho incollato
e subito è saltato all'implementazione di A3C, senza aspettare
il resto.
Quindi ho aggiunto questo
come una sorta di codice
sistemico, un prompt sistemico, e mi ha detto: "Ok, fornisci l'ambiente
e testa il codice".
Quindi si riferisce in realtà a ciò
che abbiamo dato nel primo prompt.
Ho detto: "Bene, ecco l'implementazione
dell'ambiente Gym".
Ho incollato il codice principale,
ho aggiunto un contesto qui, se date un'occhiata,
e questo è il file principale
che esegue tutto.
E poi ho detto: "Ok, va bene, aspettiamo
il codice di prova".
E mi ha detto: "Sì, ma devo ancora
vedere il codice di
prova prima di implementare l'A3C", e io ho detto: "Bene, ecco
il codice di prova".
E vedete come, se avete un
progetto più grande, potete
usarlo per usare quel pezzo
di codice o come riferimento,
nello stile, in modo da poter generare
qualcosa nel vostro stile di codice.
Bene, e quando l'ho fatto,
mi ha detto: "Fantastico, fallo".
E dice che in pratica userò questo
codice principale e i test e implementerò questo.
E poi diceva: modello creato. che in realtà abbiamo fatto anche durante
il corso.
E ha detto: "Ecco il modello di ActorCritic
e lo confronto con il nostro".
Questa è la versione più recente di python, quindi
gran parte dell'inizializzazione dei
pesi e cose simili possono essere fatte in modo più elegante.
Lo ha fatto e lo usa abbastanza bene, poi
ha generato il codice del treno e fondamentalmente
ActorCritic.
E se si dà un'occhiata, è piuttosto semplicistico,
quindi va sicuramente migliorato.
Quindi si può dire: "Ok, ho detto
di continuare"
e si continua a scrivere.
Ha creato questo come una sorta di perdita,
ma c'è, sì, fondamentalmente
tutto ciò di cui avevamo bisogno, ha ottimizzato tutto e
si può vedere
l'ottimizzatore. fermarsi alla fine.
Quindi, in pratica, ha utilizzato
tutto ciò che abbiamo definito
finora, oltre alla perdita
corretta e all'ottimizzatore, tutto.
Quindi è tutto.
In un paio di semplici passaggi,
siamo riusciti a implementare l'intero
codice di uno dei modelli all'avanguardia
che si è rivelato come uno dei
migliori del 2017, 2018.
A tutt'oggi, ha una grande
capacità di risolvere ambienti complessi
come "Breakout". Così avete visto, ora che abbiamo ChatGPT,
per esempio, potete guidarlo
per implementare alcune parti del codice.
E se non si sa cosa fanno certe
parti del codice,
si può andare a chiederlo,
ad esempio, cool, puoi spiegare
la parte di formazione e
dove si trova l'usanza di Adam?
Quindi lo sto spingendo a spiegarsi, e questo è un altro
modo per spingerlo
a fornire più motivazioni alla base della sua generazione.
E potete vedere che in
realtà vi spiegherà passo dopo passo.
Quindi si può
aspettare, si possono fare le stesse richieste
e si otterranno risultati molto simili ai miei,
ma in genere quello che farà
sarà prendere la funzione treno che ha
definito proprio qui in alto
e in pratica passerà attraverso
ogni singolo passo e lo implementerà.
Quindi sì, è così.
Vi incoraggio sicuramente a provare questo
codice in Google Colab,
si può fare, ma sarà
un po' troppo complicato farlo funzionare, a causa della visualizzazione e delle limitazioni
dell'ambiente Goggle Colab.
Tuttavia, è possibile
incollare qui gli errori e ottenere dei
risultati piuttosto
decenti per eseguire il debug del processo.
E sì, con questo vi lascio stare, e
ora avete il modo di usare ChatGPT
su come ottenere valore per A3C.
E sì, spero che il corso vi
sia piaciuto finora, ciao.