WEBVTT

00:02.520 --> 00:04.620
Formateur : Bonjour à tous et bienvenue.

00:04.620 --> 00:07.920
Dans cette vidéo, nous verrons comment utiliser

00:07.920 --> 00:11.640
ChatGPT pour résoudre le problème "Breakout", en

00:11.640 --> 00:15.540
utilisant ChatGPT pour mettre en œuvre A3C.

00:15.540 --> 00:19.470
Je l'ai donc déjà sollicité avec un grand nombre d'incitations folles, et nous avons

00:19.470 --> 00:23.010
obtenu des résultats étonnants, que nous verrons dans une seconde.

00:23.010 --> 00:25.170
Cette vidéo va donc vous expliquer

00:25.170 --> 00:26.640
comment j'ai procédé

00:26.640 --> 00:28.740
pour obtenir ces résultats,

00:28.740 --> 00:31.470
et comment vous pouvez utiliser ChatGPT

00:31.470 --> 00:34.890
pour créer un algorithme A3C.

00:34.890 --> 00:39.360
J'ai commencé de la même manière que pour "DOOM", j'ai dit, ok, vous

00:39.360 --> 00:41.340
êtes un expert en apprentissage

00:41.340 --> 00:42.930
automatique avec des années

00:42.930 --> 00:46.110
d'expérience en robotique.

00:46.110 --> 00:50.490
Je vous engage pour faire l'algorithme A3C pour "Breakout". L'objectif est d'avoir un algorithme SOTA, A3C

00:50.490 --> 00:52.110
entièrement fonctionnel

00:52.110 --> 00:56.100
qui peut jouer au jeu "Breakout".

00:56.100 --> 00:58.401
J'ai implémenté des classes, l'environnement

00:58.401 --> 01:00.150
de code de test et des versions

01:00.150 --> 01:02.520
personnalisées de l'optimiseur Adam qui

01:02.520 --> 01:05.040
est utilisé comme optimiseur de poids partagés

01:05.040 --> 01:07.590
pour le modèle A3C.

01:07.590 --> 01:09.361
Pour donner plus de contexte,

01:09.361 --> 01:13.076
j'ai fait en sorte de vous fournir ces trois éléments.

01:13.076 --> 01:18.000
Donc, comme je l'ai mentionné avant de générer le reste du code, votre objectif est

01:18.000 --> 01:20.160
d'implémenter la solution complète

01:20.160 --> 01:21.900
en utilisant Python, Torch,

01:21.900 --> 01:23.250
de manière similaire à

01:23.250 --> 01:25.650
ce que nous avions, et d'optimiser le code

01:25.650 --> 01:27.690
pour qu'il soit exécuté dans Google

01:27.690 --> 01:31.680
Colab, de la même manière que nous l'avions auparavant.

01:31.680 --> 01:33.540
En outre, commentez chaque ligne

01:33.540 --> 01:35.850
du code afin que les étudiants puissent comprendre

01:35.850 --> 01:38.590
ce que vous avez fait dans le code.

01:40.710 --> 01:42.990
Posez des questions de clarification si nécessaire, c'est compris.

01:42.990 --> 01:46.500
Il y a donc un certain chevauchement avec ce que nous avons fait

01:46.500 --> 01:48.360
pour la conversation Deep Q pour

01:48.360 --> 01:53.130
"DOOM", mais j'ai ajouté beaucoup de contexte en disant que j'ai déjà des choses

01:53.130 --> 01:54.600
mises en œuvre et que j'aimerais

01:54.600 --> 01:57.390
qu'elles soient utilisées.

01:57.390 --> 02:00.210
C'est donc ce que j'ai commencé à faire et c'est confirmé.

02:00.210 --> 02:03.030
Oui, je comprends et je poserai toutes

02:03.030 --> 02:06.840
les questions, veuillez fournir le reste du code.

02:06.840 --> 02:09.510
Ensuite, j'ai indiqué qu'il s'agissait de l'optimiseur

02:09.510 --> 02:11.753
Adam, j'ai collé le code de l'optimiseur

02:11.753 --> 02:15.180
Adam, pour les ressources dont nous disposons, et j'ai donné

02:15.180 --> 02:16.920
cette instruction, j'ai dit d'attendre

02:16.920 --> 02:18.870
le reste du code avant de le mettre

02:18.870 --> 02:21.963
en œuvre, j'ai juste, avant d'obtenir de bons résultats,

02:23.130 --> 02:27.210
j'ai juste collé et il a immédiatement sauté à la mise en œuvre d'A3C, sans

02:27.210 --> 02:30.510
attendre le reste.

02:30.510 --> 02:32.310
J'ai donc ajouté cela comme

02:32.310 --> 02:33.750
une sorte de code systémique,

02:33.750 --> 02:38.750
d'invite systémique, et cela m'a dit, ok, veuillez fournir l'environnement

02:39.060 --> 02:41.820
et tester le code.

02:41.820 --> 02:42.653
Il s'agit donc en fait d'une référence à ce

02:42.653 --> 02:43.650
que nous avons donné dans le premier message.

02:43.650 --> 02:46.323
J'ai dit, cool, voici la mise

02:47.160 --> 02:51.030
en œuvre de l'environnement Gym.

02:51.030 --> 02:52.173
J'ai collé le code principal,

02:53.760 --> 02:56.010
j'ai ajouté le contexte ici, si vous jetez un coup

02:56.010 --> 02:57.128
d'œil, et c'est le fichier

02:57.128 --> 02:59.040
principal qui exécute tout.

02:59.040 --> 03:01.383
Et puis j'ai dit, d'accord, cool, attendez

03:03.690 --> 03:05.267
le code de test.

03:05.267 --> 03:06.813
Et il m'a dit, oui, cependant,

03:07.830 --> 03:08.766
j'ai encore besoin

03:08.766 --> 03:11.880
de voir le code de test avant de mettre en œuvre A3C, j'ai dit,

03:11.880 --> 03:13.410
cool, voici un code de test.

03:13.410 --> 03:15.813
Et vous voyez que si vous avez

03:16.920 --> 03:19.170
un projet plus important,

03:19.170 --> 03:21.480
vous pouvez l'utiliser pour

03:21.480 --> 03:23.230
utiliser ce morceau

03:24.330 --> 03:27.810
de code ou comme référence, dans le style

03:27.810 --> 03:30.870
afin de pouvoir générer quelque chose

03:30.870 --> 03:33.630
dans votre style de code.

03:33.630 --> 03:34.983
Cool, et quand j'ai fait

03:36.360 --> 03:38.370
ça, ça m'a dit, super, vas-y.

03:38.370 --> 03:41.190
Il disait en substance : "Je vais utiliser

03:41.190 --> 03:45.840
ce code principal, le tester et le mettre en œuvre".

03:45.840 --> 03:49.200
Ensuite, il a été indiqué "modèle créé". py, ce que nous avons également fait dans

03:49.200 --> 03:52.800
le cadre du cours.

03:52.800 --> 03:55.830
Il a dit : "Voici le modèle d'ActorCritic,

03:55.830 --> 03:58.620
et je le compare au nôtre.

03:58.620 --> 04:00.630
Il s'agit de la version la plus récente de Python, donc

04:00.630 --> 04:02.310
une grande partie de l'initialisation des

04:02.310 --> 04:05.640
poids et d'autres choses de ce genre peuvent être faites de manière plus élégante.

04:05.640 --> 04:09.060
Il l'a donc fait et l'utilise assez

04:09.060 --> 04:13.680
bien, puis il a généré un code de train et, en gros,

04:13.680 --> 04:15.663
ActorCritic.

04:16.500 --> 04:19.860
Et si vous y jetez un coup d'œil, vous constaterez qu'il est

04:19.860 --> 04:22.020
assez simpliste, et qu'il doit donc être

04:22.020 --> 04:23.039
amélioré.

04:23.039 --> 04:25.980
Ce que vous pouvez faire, c'est dire,

04:25.980 --> 04:27.423
ok, j'ai dit continuez,

04:28.500 --> 04:31.560
et il continue à l'écrire.

04:31.560 --> 04:35.373
Il a créé ceci comme une sorte de perte,

04:37.920 --> 04:41.040
mais il y a, oui, en gros, tout

04:41.040 --> 04:45.030
ce dont nous avions besoin, il a tout

04:45.030 --> 04:47.910
optimisé, et vous pouvez

04:47.910 --> 04:51.333
voir cet optimiseur. s'arrêter à la fin.

04:53.160 --> 04:56.550
Il utilise donc tout ce que nous

04:56.550 --> 04:58.080
avons défini jusqu'à présent,

04:58.080 --> 04:59.220
ainsi que la perte appropriée,

04:59.220 --> 05:02.490
et oui, l'optimiseur, tout.

05:02.490 --> 05:05.730
C'est donc tout.

05:05.730 --> 05:07.591
En quelques étapes simples,

05:07.591 --> 05:10.530
nous avons réussi à mettre en œuvre l'ensemble

05:10.530 --> 05:13.170
du code pour l'un des modèles de pointe

05:13.170 --> 05:15.270
qui s'est avéré être comme l'un

05:15.270 --> 05:18.450
des meilleurs en 2017, 2018.

05:18.450 --> 05:21.060
Aujourd'hui encore, il possède une

05:21.060 --> 05:24.900
grande capacité à résoudre des environnements complexes

05:24.900 --> 05:27.240
tels que "Breakout". Vous avez donc vu, maintenant que nous avons

05:27.240 --> 05:28.710
ChatGPT par exemple, que vous

05:28.710 --> 05:32.490
pouvez le guider pour mettre en œuvre certaines parties du code.

05:32.490 --> 05:35.250
Et si vous ne savez pas ce que font

05:35.250 --> 05:36.990
certaines parties

05:36.990 --> 05:39.450
du code, vous pouvez lui demander,

05:39.450 --> 05:42.450
par exemple, cool, pouvez-vous expliquer

05:42.450 --> 05:44.853
la partie formation et où se

05:47.310 --> 05:51.840
trouve la coutume d'Adam ?

05:51.840 --> 05:56.200
Je l'incite donc à s'expliquer, ce qui est une autre façon

05:58.320 --> 05:59.223
de l'inciter

06:04.740 --> 06:08.430
à vous donner plus de raisons pour justifier

06:08.430 --> 06:10.290
sa création.

06:10.290 --> 06:12.570
Et vous pouvez voir qu'il

06:12.570 --> 06:16.803
s'agit d'une explication étape par étape.

06:17.730 --> 06:18.563
Donc oui, nous pouvons

06:18.563 --> 06:21.213
attendre cela, vous pouvez faire les mêmes invites

06:22.920 --> 06:25.890
et vous obtiendrez des résultats vraiment similaires

06:25.890 --> 06:27.510
aux miens, mais en général maintenant

06:27.510 --> 06:30.030
ce qu'il va faire, c'est prendre la fonction

06:30.030 --> 06:31.950
de train qu'il a défini juste en haut

06:31.950 --> 06:34.050
ici, et il va essentiellement passer

06:34.050 --> 06:38.010
par chaque étape et l'implémenter.

06:38.010 --> 06:40.890
Alors oui, c'est tout.

06:40.890 --> 06:43.803
Je vous encourage vivement à essayer ce code

06:44.700 --> 06:46.053
dans Google Colab, c'est

06:47.580 --> 06:48.600
possible, mais

06:48.600 --> 06:54.780
ce sera un peu trop délicat à faire fonctionner, à cause de la visualisation et des limitations

06:54.780 --> 06:58.380
de l'environnement Google Colab.

06:58.380 --> 06:59.760
Cependant, vous pouvez tout

06:59.760 --> 07:02.430
à fait coller les erreurs ici, et vous pouvez, vous

07:02.430 --> 07:03.840
pouvez obtenir des résultats

07:03.840 --> 07:07.083
assez décents pour déboguer le processus.

07:08.580 --> 07:11.310
Sur ce, je vous laisse, et vous savez maintenant

07:11.310 --> 07:13.890
comment utiliser le ChatGPT pour obtenir

07:13.890 --> 07:16.860
de la valeur pour A3C.

07:16.860 --> 07:20.400
Et oui, j'espère que vous avez apprécié

07:20.400 --> 07:24.960
le cours jusqu'à présent, au revoir.
