WEBVTT

00:02.520 --> 00:04.620
Instructor: Hola a todos y bienvenidos de nuevo.

00:04.620 --> 00:07.920
En este vídeo hablaremos de cómo utilizar

00:07.920 --> 00:11.640
ChatGPT para resolver "Breakout", utilizando

00:11.640 --> 00:15.540
ChatGPT para implementar A3C.

00:15.540 --> 00:19.470
Así que ya lo incité con un montón de locuras, obtuvimos resultados

00:19.470 --> 00:23.010
asombrosos, los veremos en un segundo.

00:23.010 --> 00:25.170
Así que este video será, básicamente,

00:25.170 --> 00:26.640
caminar a través de mi proceso

00:26.640 --> 00:28.740
de pensamiento sobre cómo realmente

00:28.740 --> 00:31.470
llegué a los resultados, y cómo se puede utilizar

00:31.470 --> 00:34.890
realmente ChatGPT para crear algoritmo A3C también.

00:34.890 --> 00:39.360
Vale, empecé de forma similar a lo que hicimos para "DOOM", dije, vale,

00:39.360 --> 00:41.340
eres básicamente un experto en

00:41.340 --> 00:42.930
aprendizaje automático

00:42.930 --> 00:46.110
con años de experiencia en robótica.

00:46.110 --> 00:50.490
Te contrato para hacer el algoritmo A3C para "Breakout". El objetivo es tener un algoritmo SOTA, A3C totalmente

00:50.490 --> 00:52.110
funcional que pueda

00:52.110 --> 00:56.100
jugar al juego "Breakout".

00:56.100 --> 00:58.401
He implementado clases, el entorno

00:58.401 --> 01:00.150
de código de prueba y versiones

01:00.150 --> 01:02.520
personalizadas del optimizador Adam

01:02.520 --> 01:05.040
que se utiliza como optimizador de pesos

01:05.040 --> 01:07.590
compartidos para el modelo A3C.

01:07.590 --> 01:09.361
Así que esto es darle más contexto,

01:09.361 --> 01:13.076
lo que hice, voy a proporcionar estas tres cosas a usted.

01:13.076 --> 01:18.000
Así que como hago referencia antes de generar el resto del código, tu

01:18.000 --> 01:20.160
objetivo es implementar la solución

01:20.160 --> 01:21.900
completa usando Python,

01:21.900 --> 01:23.250
Torch, similar a lo

01:23.250 --> 01:25.650
que teníamos, y optimizar el código

01:25.650 --> 01:27.690
para ser ejecutado en Google

01:27.690 --> 01:31.680
Colab, igual que lo teníamos antes.

01:31.680 --> 01:33.540
Además, comenta cada una de las

01:33.540 --> 01:35.850
líneas del código para que los alumnos puedan

01:35.850 --> 01:38.590
entender lo que has hecho en el código.

01:40.710 --> 01:42.990
Haz preguntas aclaratorias si es necesario, entendido.

01:42.990 --> 01:46.500
Así que tenemos algunas coincidencias con lo que hicimos

01:46.500 --> 01:48.360
para Deep Q conversacional

01:48.360 --> 01:53.130
para "DOOM", pero he añadido un montón de contexto que ya tengo cosas

01:53.130 --> 01:54.600
implementadas, y me gustaría

01:54.600 --> 01:57.390
que se utilizaran.

01:57.390 --> 02:00.210
Así que eso es lo que empiezo y se confirma.

02:00.210 --> 02:03.030
Sí, entiendo y voy a hacer cualquier pregunta,

02:03.030 --> 02:06.840
por favor proporcione el resto del código.

02:06.840 --> 02:09.510
Entonces dije, este es el optimizador Adam,

02:09.510 --> 02:11.753
pegué el código para el optimizador

02:11.753 --> 02:15.180
Adam, para los recursos que tenemos, y le di esta instrucción,

02:15.180 --> 02:16.920
dije, espera el resto del código

02:16.920 --> 02:18.870
antes de implementar, yo solo,

02:18.870 --> 02:21.963
antes de obtener buenos resultados, en realidad

02:23.130 --> 02:27.210
solo pegué e inmediatamente saltó a implementar A3C, sin esperar

02:27.210 --> 02:30.510
el resto.

02:30.510 --> 02:32.310
Así que añadí esto como una

02:32.310 --> 02:33.750
especie de código sistémico,

02:33.750 --> 02:38.750
indicador sistémico, y dijo, está bien, por favor proporcione el medio

02:39.060 --> 02:41.820
ambiente y probar el código.

02:41.820 --> 02:42.653
Así que en realidad se refiere

02:42.653 --> 02:43.650
a lo que dimos en el primer aviso.

02:43.650 --> 02:46.323
Dije, genial, aquí está la

02:47.160 --> 02:51.030
implementación del entorno Gym.

02:51.030 --> 02:52.173
He pegado que el código principal,

02:53.760 --> 02:56.010
he añadido contexto aquí, si usted echa un vistazo,

02:56.010 --> 02:57.128
y este es el archivo principal

02:57.128 --> 02:59.040
de ejecutar todo.

02:59.040 --> 03:01.383
Y entonces dije, vale, guay, espera

03:03.690 --> 03:05.267
al código de pruebas.

03:05.267 --> 03:06.813
Y dijo, sí, yo, sin embargo, todavía

03:07.830 --> 03:08.766
tengo que ver el código

03:08.766 --> 03:11.880
de prueba antes de implementar A3C, dije, genial, aquí es un

03:11.880 --> 03:13.410
código de prueba.

03:13.410 --> 03:15.813
Y usted ve esto es cómo si usted tiene

03:16.920 --> 03:19.170
un proyecto más grande, más grande,

03:19.170 --> 03:21.480
usted puede utilizar eso para un

03:21.480 --> 03:23.230
poco de balanceo a utilizar

03:24.330 --> 03:27.810
esa pieza de un código o como una referencia, en el

03:27.810 --> 03:30.870
estilo para que pueda realmente generar algo

03:30.870 --> 03:33.630
en su estilo de código.

03:33.630 --> 03:34.983
Guay, y cuando hice eso,

03:36.360 --> 03:38.370
dijo, genial, a por ello.

03:38.370 --> 03:41.190
Y dijo básicamente voy a utilizar este

03:41.190 --> 03:45.840
código principal, y las pruebas, y poner en práctica esto.

03:45.840 --> 03:49.200
Y luego decía, modelo creado. py, que en realidad también hicimos

03:49.200 --> 03:52.800
en el curso.

03:52.800 --> 03:55.830
Y dijo, aquí está el modelo de ActorCritic,

03:55.830 --> 03:58.620
y lo comparo con el nuestro.

03:58.620 --> 04:00.630
Esta es la versión más reciente de python, por

04:00.630 --> 04:02.310
lo que gran parte de la inicialización

04:02.310 --> 04:05.640
de pesos y cosas por el estilo se puede hacer de una manera más elegante.

04:05.640 --> 04:09.060
Así que lo hizo y en realidad utiliza bastante

04:09.060 --> 04:13.680
bien, a continuación, genera código de tren, y, básicamente,

04:13.680 --> 04:15.663
ActorCritic.

04:16.500 --> 04:19.860
Y si le echas un vistazo, es bastante simplista,

04:19.860 --> 04:23.039
así que sin duda hay que mejorarlo.

04:23.039 --> 04:25.980
Así que lo que puedes hacer, puedes decir,

04:25.980 --> 04:27.423
vale, he dicho que continúes,

04:28.500 --> 04:31.560
y continúa escribiéndolo.

04:31.560 --> 04:35.373
Creó esto como una especie de pérdida,

04:37.920 --> 04:41.040
pero hay, sí, básicamente

04:41.040 --> 04:45.030
todo lo que necesitábamos, optimizó

04:45.030 --> 04:47.910
todo, y se puede ver que el

04:47.910 --> 04:51.333
optimizador. para al final.

04:53.160 --> 04:56.550
Así que básicamente utiliza

04:56.550 --> 04:58.080
todo lo que hemos definido

04:58.080 --> 04:59.220
hasta ahora, así como

04:59.220 --> 05:02.490
la pérdida adecuada, y sí, optimizador, todo.

05:02.490 --> 05:05.730
Eso es todo.

05:05.730 --> 05:07.591
En un par de sencillos pasos,

05:07.591 --> 05:10.530
conseguimos implementar todo el código

05:10.530 --> 05:13.170
de uno de los modelos de última generación

05:13.170 --> 05:15.270
que pasó a ser como uno de los

05:15.270 --> 05:18.450
mejores de 2017, 2018.

05:18.450 --> 05:21.060
A día de hoy, mantiene una gran

05:21.060 --> 05:24.900
capacidad para resolver entornos complejos

05:24.900 --> 05:27.240
como "Breakout". Así que ya viste, ahora que tenemos ChatGPT

05:27.240 --> 05:28.710
por ejemplo, puedes guiarlo

05:28.710 --> 05:32.490
para implementar ciertas partes del código.

05:32.490 --> 05:35.250
Y si no sabes lo que hacen realmente

05:35.250 --> 05:36.990
ciertas partes del

05:36.990 --> 05:39.450
código, puedes ir y preguntarle,

05:39.450 --> 05:42.450
por ejemplo, guay, ¿puedes explicar

05:42.450 --> 05:44.853
la parte de formación y dónde

05:47.310 --> 05:51.840
está la costumbre de Adán?

05:51.840 --> 05:56.200
Así que lo estoy incitando a que se explique, y esa

05:58.320 --> 05:59.223
es otra forma

06:04.740 --> 06:08.430
de incitarlo a que te dé más razones para su

06:08.430 --> 06:10.290
generación.

06:10.290 --> 06:12.570
Y se puede ver que en

06:12.570 --> 06:16.803
realidad va a explicar paso a paso.

06:17.730 --> 06:18.563
Así que sí, podemos

06:18.563 --> 06:21.213
esperar a que esto, usted puede hacer las mismas

06:22.920 --> 06:25.890
indicaciones y obtendrá resultados muy similares

06:25.890 --> 06:27.510
a la mía, pero en general ahora

06:27.510 --> 06:30.030
lo que va a hacer es que va a tomar la función

06:30.030 --> 06:31.950
de tren que se define a la derecha

06:31.950 --> 06:34.050
en la parte superior aquí, y básicamente

06:34.050 --> 06:38.010
va a ir a través de cada paso y aplicarlo.

06:38.010 --> 06:40.890
Así que sí, eso sería todo.

06:40.890 --> 06:43.803
Definitivamente te animo a probar este código

06:44.700 --> 06:46.053
en Google Colab, Se

06:47.580 --> 06:48.600
puede hacer, Será

06:48.600 --> 06:54.780
un poco demasiado difícil de hacer que funcione, debido a la visualización y las limitaciones

06:54.780 --> 06:58.380
del entorno Goggle Colab.

06:58.380 --> 06:59.760
Sin embargo, usted puede definitivamente

06:59.760 --> 07:02.430
ir y pegar los errores aquí, y usted puede, usted puede ir

07:02.430 --> 07:03.840
y obtener algunos resultados

07:03.840 --> 07:07.083
bastante decente para que para depurar el proceso.

07:08.580 --> 07:11.310
Y sí, con eso te dejo, y ahora tienes

07:11.310 --> 07:13.890
la forma de utilizar ChatGPT sobre

07:13.890 --> 07:16.860
cómo obtener valor para A3C.

07:16.860 --> 07:20.400
Y sí, espero que hayas disfrutado

07:20.400 --> 07:24.960
del curso hasta ahora, adiós.
