WEBVTT

00:02.310 --> 00:04.620
Luka: Hola a todos y bienvenidos de nuevo.

00:04.620 --> 00:05.453
En este vídeo

00:05.453 --> 00:07.710
vamos a hablar de ChatGPT y de cómo utilizarlo

00:07.710 --> 00:11.370
para implementar el mismo algoritmo para Doom que vamos a

00:11.370 --> 00:13.350
utilizar en el curso, el aprendizaje

00:13.350 --> 00:16.290
Q profundo convolucional.

00:16.290 --> 00:17.790
Así que en el próximo par

00:17.790 --> 00:22.440
de minutos, vamos a caminar a través de la forma en que realmente señaló y pidió

00:22.440 --> 00:26.190
ChatGPT para nosotros para obtener nuestro modelo.

00:26.190 --> 00:29.580
Así que permíteme ayudarte a entender cómo lo hice

00:29.580 --> 00:33.720
y por qué hice ciertas indicaciones de la forma en que lo hice.

00:33.720 --> 00:38.460
Así que el mensaje inicial estaba bastante bien elaborado por mi parte.

00:38.460 --> 00:39.293
Dije: "Eres un Experto

00:39.293 --> 00:41.527
Senior en Aprendizaje Automático "con años

00:41.527 --> 00:43.717
de experiencia trabajando en proyectos "aplicando

00:43.717 --> 00:47.550
el aprendizaje automático a simulaciones y robótica". Esta es la primera parte, preparar el escenario, darles

00:47.550 --> 00:48.750
un papel.

00:48.750 --> 00:51.330
Así que, básicamente, el espacio vectorial de

00:51.330 --> 00:55.410
todo el ChatGPT se impulsará más en temas de aprendizaje automático.

00:55.410 --> 00:59.310
Ahora quiero traer a mi contexto, Doom.

00:59.310 --> 01:04.310
Y en realidad, cómo llegar a ese punto, le dije: "Bueno, te contraté para

01:04.500 --> 01:06.600
que me ayudes "con la implementación

01:06.600 --> 01:08.887
de un algoritmo Convolutional Deep

01:08.887 --> 01:12.457
Q-Learning "para el entorno Doom.

01:12.457 --> 01:14.407
" El objetivo es tener "un algoritmo de aprendizaje

01:14.407 --> 01:15.337
por refuerzo plenamente

01:15.337 --> 01:18.457
funcional "que pueda jugar a Doom, un entorno de juego.

01:18.457 --> 01:22.327
"He implementado clases "para experience_replay y memoria y

01:22.327 --> 01:24.187
procesamiento de imágenes.

01:24.187 --> 01:27.903
"Se lo proporcionaré para que pueda incorporarlo

01:28.777 --> 01:30.337
al código final.

01:30.337 --> 01:34.800
Esto es realmente importante, algo que la mayoría de la gente pasa por alto.

01:34.800 --> 01:37.893
Necesitas tener alguna forma de decirle, o

01:38.790 --> 01:42.120
decirle a ChatGPT, que ya tienes algo y que quieres

01:42.120 --> 01:43.860
usar ese código en la implementación

01:43.860 --> 01:45.720
final.

01:45.720 --> 01:50.720
Así que si yo no proporciono esto como un contexto, se generará algún

01:50.910 --> 01:54.390
código, alguna implementación de convolucional

01:54.390 --> 01:57.240
profunda Q-aprendizaje que no tendrá

01:57.240 --> 02:01.140
en cuenta el uso de experience_replay y nuestra función

02:01.140 --> 02:04.080
de procesamiento de imágenes, pero queremos

02:04.080 --> 02:06.330
eso.

02:06.330 --> 02:07.323
Por lo tanto, luego

02:08.250 --> 02:10.537
continúo diciendo: "Su objetivo es implementar

02:10.537 --> 02:14.107
la solución completa utilizando Python, "Antorcha para el modelo,

02:14.107 --> 02:16.717
"y optimizar el código para ser ejecutado en Google

02:16.717 --> 02:21.187
Colab "para que los estudiantes que van a través del código "puede ejecutar aquellos con

02:21.187 --> 02:23.167
ordenadores no tan fuerte. Esto es básicamente

02:23.167 --> 02:28.167
decirle al ChatGPT cuál es el formato de la solución

02:28.260 --> 02:33.060
final que le gustaría tener.

02:33.060 --> 02:35.190
Y, por último, "haga preguntas aclaratorias si es

02:35.190 --> 02:37.200
necesario" le proporcionará más contexto.

02:37.200 --> 02:40.050
Y, "Eh, si no sabes, "si no tienes suficiente contexto,

02:40.050 --> 02:42.060
por favor pregúntame. Y, por último, preguntó: "¿Lo tienes? Quería confirmar que lo consiguió.

02:42.060 --> 02:44.197
Esta es una forma inteligente de permitirle reflexionar sobre

02:44.197 --> 02:47.580
esto y no ir estrictamente a generar las siguientes indicaciones, las siguientes respuestas.

02:47.580 --> 02:49.737
Si no lo haces, si no

02:50.640 --> 02:53.730
preguntas "¿Lo tienes? " o "¿Despejado? o "¿Entiendes? " o algo parecido, ignorará

02:53.730 --> 02:58.730
por completo algunas de las partes

03:00.210 --> 03:05.210
y empezará a generar.

03:05.820 --> 03:07.230
Ya que tiene el límite de cuántos tokens

03:07.230 --> 03:09.090
tiene en sus preguntas y

03:09.090 --> 03:12.780
en la respuesta, le gustaría romperlo para que

03:12.780 --> 03:16.020
pueda obtener una actualización de la cantidad de tokens que puede generar.

03:16.020 --> 03:18.240
Así que la primera respuesta

03:18.240 --> 03:20.760
es: "Entendí la tarea.

03:20.760 --> 03:22.980
"Voy a hacer exactamente lo que voy a pedir.

03:22.980 --> 03:26.310
"Pero antes de continuar, tengo algunas preguntas. Y aquí es donde este "si tienes alguna pregunta, pregúntame",

03:26.310 --> 03:28.610
me hizo muy buenas preguntas.

03:29.820 --> 03:32.377
En primer lugar, ¿tienes un entorno personalizado o utilizas

03:32.377 --> 03:33.607
algo que ya existe?

03:33.607 --> 03:36.697
Así que OpenAI, VizDoom y cosas así.

03:36.697 --> 03:39.600
Luego pasamos a algo más como, ¿hay

03:39.600 --> 03:43.980
alguna métrica de rendimiento específica que te gustaría

03:43.980 --> 03:45.750
que siguiera?

03:45.750 --> 03:49.200
¿Existen requisitos para el modelo en sí?

03:49.200 --> 03:51.240
¿Qué versiones de Python y PyTorch?

03:51.240 --> 03:53.883
Y por último, ¿hay alguna limitación específica

03:54.750 --> 03:56.850
en cuanto al plazo?

03:56.850 --> 03:58.950
Esto es de la mayoría de los planes de negocio

03:58.950 --> 04:00.783
que fue entrenado en, pero para él, como,

04:01.800 --> 04:05.850
que en realidad no, como esto no es relevante para él, pero está bien.

04:05.850 --> 04:08.223
Yo proporcioné: "Sí, usaré OpenAI Gym, y aquí está

04:09.180 --> 04:10.140
cómo cargarlo. Esto es del curso.

04:10.140 --> 04:12.990
Dije, vale, sigue la recompensa media, sin

04:12.990 --> 04:17.160
requisitos específicos, sé creativo mientras funcione, utiliza

04:17.160 --> 04:19.803
los últimos modelos o versiones de las bibliotecas,

04:20.970 --> 04:23.283
y cuál es el plazo.

04:24.150 --> 04:25.177
Acabo de escribir "ASAP".

04:25.177 --> 04:30.177
Además, aquí están estas clases que he mencionado.

04:30.480 --> 04:31.713
Así que pegué las clases que tenemos en el curso.

04:33.000 --> 04:35.133
Así que repetición de experiencias,

04:36.030 --> 04:40.953
todo, y por último, memoria de repetición, procesamiento

04:42.120 --> 04:46.320
de imágenes, y eso es todo.

04:46.320 --> 04:48.090
Y con esto, construyo el contexto,

04:48.090 --> 04:49.797
y ahora empezó a generar.

04:51.150 --> 04:54.120
Así que generó el código.

04:54.120 --> 04:57.000
Básicamente, empezaba preprocesando

04:57.000 --> 05:00.720
la imagen y luego creaba la red Q profunda, que es

05:00.720 --> 05:04.773
bastante similar a la que tenemos nosotros.

05:05.790 --> 05:06.623
Entonces, comenzó

05:07.681 --> 05:10.230
por inicializar eso, y luego el código de entrenamiento.

05:10.230 --> 05:13.530
Hasta ahora todo funcionaba, y aquí se rompe.

05:13.530 --> 05:15.753
Si quieres seguir generando

05:16.590 --> 05:21.363
algo más largo, simplemente escribí "continuar".

05:22.560 --> 05:25.110
Y decía: "¿Continuar? Sí, desde luego. Continúa generando, y bam, tenemos

05:25.110 --> 05:27.513
el código completo.

05:29.070 --> 05:31.983
Increíble.

05:32.910 --> 05:34.863
Decía cómo usarlo,

05:36.000 --> 05:40.350
la frecuencia, qué cambiar y cosas así.

05:40.350 --> 05:43.950
A mí también me ayudó con esto.

05:43.950 --> 05:46.110
Y permítanme llevarles a mi Google Colab.

05:46.110 --> 05:49.530
Así que empecé por pegar el código aquí,

05:49.530 --> 05:51.840
pegado nuestra función de pre-procesamiento.

05:51.840 --> 05:55.020
Voy a saltar a los cambios en esta función de preprocesamiento

05:55.020 --> 05:55.853
en un segundo.

05:57.060 --> 06:00.750
A continuación, pegué esta repetición de la experiencia, parte de

06:00.750 --> 06:02.793
la instalación desde mi extremo.

06:03.720 --> 06:05.940
Lo explicaremos en un segundo.

06:05.940 --> 06:09.630
He jugado con su red Q profunda y su código de entrenamiento.

06:09.630 --> 06:13.053
Así que sin duda hay formas de mejorar esto.

06:14.040 --> 06:16.290
Sobre todo si tienes un entorno local, funcionará.

06:16.290 --> 06:18.720
Si utilizas esto en Google Colab, puede que se rompa.

06:18.720 --> 06:19.553
Así que déjame llevarte a eso.

06:20.970 --> 06:24.843
Así que lo hice y obtuve un error.

06:25.740 --> 06:29.163
Le dije: "Oiga, el código inicial que me proporcionó no funcionaba.

06:30.150 --> 06:31.833
Acabo de pegar el código, este

06:32.790 --> 06:37.790
mensaje de error, y diciendo: "No puedo cambiar el tamaño de una imagen. Y si usted echa un vistazo a nuestro código del curso, se requiere para

06:38.430 --> 06:41.640
cambiar el tamaño de la imagen con esto.

06:41.640 --> 06:45.810
Pero la nueva versión de SciPy está eliminando esto.

06:45.810 --> 06:49.440
Así que dijo: "Oh, sí, "parece que esto puede haber

06:49.440 --> 06:50.840
sido eliminado. "Aquí está la nueva versión con Pillow.

06:51.750 --> 06:54.240
Y en realidad, no hacía falta.

06:54.240 --> 06:58.110
Básicamente reescribió toda la clase de preprocesamiento

06:58.110 --> 07:03.110
de imágenes con Pillow en lugar de SciPy.

07:03.810 --> 07:06.600
Así que lo usé, y de hecho funciona.

07:06.600 --> 07:10.440
Y entonces dije: "Vale, tengo un problema con que Medio

07:10.440 --> 07:13.200
Ambiente utilice Google Colab.

07:13.200 --> 07:17.310
"¿Cómo resolverlo? Este es el error. Y decía: "Oh, sí, discúlpate.

07:17.310 --> 07:18.663
"Parece que este entorno concreto no funciona.

07:19.537 --> 07:21.637
"Esto es lo que tienes que hacer.

07:21.637 --> 07:25.200
"Básicamente instalas y haces esto. Tengo un error, otro error.

07:25.200 --> 07:27.360
Y este error en realidad indica

07:27.360 --> 07:32.260
que el renderizado no se encuentra en esta versión en particular.

07:33.270 --> 07:36.723
Y decía: "Vale, instala esta versión. Lo hice. Otro error.

07:37.620 --> 07:41.283
Y decía: "Oh, sí, sí, "Google Colab no admite renderizado, bibliotecas OpenGL",

07:42.990 --> 07:44.227
lo que significa, para nosotros,

07:44.227 --> 07:47.257
que tenemos que hacer, en lugar de Google Colab, otra cosa para la

07:47.257 --> 07:52.087
visualización.

07:52.087 --> 07:55.657
Y básicamente me dio un paso a paso, que conduce sobre

07:55.657 --> 07:56.917
qué hacer, cómo cambiar

07:56.917 --> 07:59.880
eso, y cosas por el estilo.

07:59.880 --> 08:02.580
Y si lo haces localmente, resolverás el problema.

08:02.580 --> 08:04.350
Pero esto es básicamente

08:04.350 --> 08:09.350
ahora te enseña cómo utilizar correctamente ChatGPT.

08:11.850 --> 08:14.280
Por ejemplo, aquí mismo, has visto que tengo algunos errores, he avisado

08:14.280 --> 08:17.040
con esos errores, etcétera.

08:17.040 --> 08:18.457
Y ahora, usted tiene,

08:18.457 --> 08:23.457
como, si se desplaza hacia atrás, usted tiene un código de pleno funcionamiento

08:24.270 --> 08:27.870
con una profunda red Q, con un código de entrenamiento,

08:27.870 --> 08:31.350
y usted puede ir y pedirle que genere un código de

08:31.350 --> 08:34.500
prueba, y lo hará.

08:34.500 --> 08:37.440
Increíble, ¿verdad?

08:37.440 --> 08:38.820
Eso es todo.

08:38.820 --> 08:42.450
Así es como se utiliza ChatGPT para resolver la Q profunda,

08:42.450 --> 08:45.120
o red Q profunda convolucional para Doom.

08:45.120 --> 08:47.200
Gracias. ¡Disfrute del curso!
