WEBVTT

00:02.310 --> 00:04.620
Luka : Bonjour à tous et bienvenue.

00:04.620 --> 00:05.453
Dans cette vidéo,

00:05.453 --> 00:07.710
nous allons parler de ChatGPT et de la manière

00:07.710 --> 00:11.370
de l'utiliser pour mettre en œuvre le même algorithme pour Doom que celui

00:11.370 --> 00:13.350
que nous allons utiliser dans le cours,

00:13.350 --> 00:16.290
l'apprentissage convolutionnel profond.

00:16.290 --> 00:17.790
Dans les prochaines

00:17.790 --> 00:22.440
minutes, nous allons donc voir comment j'ai indiqué et demandé

00:22.440 --> 00:26.190
à ChatGPT d'obtenir notre modèle.

00:26.190 --> 00:29.580
Je vais donc vous aider à comprendre comment j'ai procédé et

00:29.580 --> 00:33.720
pourquoi j'ai fait certaines questions de la manière dont je l'ai fait.

00:33.720 --> 00:38.460
L'invitation initiale était donc plutôt bien conçue de mon côté.

00:38.460 --> 00:39.293
J'ai dit : "Vous êtes

00:39.293 --> 00:41.527
un expert senior en apprentissage automatique "avec

00:41.527 --> 00:43.717
des années d'expérience dans des projets "appliquant

00:43.717 --> 00:47.550
l'apprentissage automatique aux simulations et à la robotique". Il s'agit de la première partie, qui consiste à planter le décor, à

00:47.550 --> 00:48.750
leur donner un rôle.

00:48.750 --> 00:51.330
Ainsi, l'espace vectoriel de l'ensemble du ChatGPT

00:51.330 --> 00:55.410
sera davantage axé sur les sujets liés à l'apprentissage automatique.

00:55.410 --> 00:59.310
Je voudrais maintenant évoquer le contexte de Doom.

00:59.310 --> 01:04.310
En fait, pour en arriver là, j'ai dit : " D'accord, je t'ai engagé pour

01:04.500 --> 01:06.600
m'aider à mettre en œuvre un algorithme

01:06.600 --> 01:08.887
Convolutional Deep Q-Learning

01:08.887 --> 01:12.457
pour l'environnement Doom ".

01:12.457 --> 01:14.407
"L'objectif est de disposer d'un algorithme d'apprentissage

01:14.407 --> 01:15.337
par renforcement entièrement

01:15.337 --> 01:18.457
fonctionnel capable de jouer à Doom, un environnement de jeu.

01:18.457 --> 01:22.327
J'ai mis en place des classes "pour l'expérience_replay et la mémoire

01:22.327 --> 01:24.187
et le traitement de l'image".

01:24.187 --> 01:27.903
"Je vous fournirai cela afin que vous puissiez l'incorporer

01:28.777 --> 01:30.337
dans le code final.

01:30.337 --> 01:34.800
Il s'agit d'un point très important, que la plupart des gens ignorent.

01:34.800 --> 01:37.893
Vous devez avoir un moyen de lui dire, ou de dire à ChatGPT,

01:38.790 --> 01:42.120
que vous avez déjà quelque chose et que vous voulez utiliser

01:42.120 --> 01:43.860
ce code dans l'implémentation

01:43.860 --> 01:45.720
finale.

01:45.720 --> 01:50.720
Ainsi, si je ne fournissais pas ce contexte, cela générerait un code,

01:50.910 --> 01:54.390
une implémentation de l'apprentissage convolutif

01:54.390 --> 01:57.240
profond qui n'envisagerait pas d'utiliser

01:57.240 --> 02:01.140
experience_replay et notre fonction de traitement

02:01.140 --> 02:06.330
d'image, mais c'est ce que nous voulons.

02:06.330 --> 02:07.323
Je poursuis donc en

02:08.250 --> 02:10.537
disant : "Votre objectif est d'implémenter

02:10.537 --> 02:14.107
la solution complète en utilisant Python, Torch pour le modèle, et d'optimiser

02:14.107 --> 02:16.717
le code pour qu'il soit exécuté dans Google Colab,

02:16.717 --> 02:21.187
afin que les étudiants qui parcourent le code puissent l'exécuter avec des ordinateurs

02:21.187 --> 02:23.167
moins puissants". Il s'agit en fait

02:23.167 --> 02:28.167
d'indiquer au ChatGPT le format de la solution

02:28.260 --> 02:33.060
finale que vous souhaitez obtenir.

02:33.060 --> 02:35.190
Enfin, le fait de "poser des questions de clarification

02:35.190 --> 02:37.200
si nécessaire" lui fournira davantage de contexte.

02:37.200 --> 02:40.050
Et "Eh, si vous ne savez pas, si vous n'avez pas assez de contexte,

02:40.050 --> 02:42.060
n'hésitez pas à me demander". Enfin, il a demandé : "Vous avez compris ? Je voulais confirmer que c'était le cas.

02:42.060 --> 02:44.197
C'est une façon intelligente de lui permettre de réfléchir à la

02:44.197 --> 02:47.580
situation et de ne pas se contenter de générer les prochains messages, les prochaines réponses.

02:47.580 --> 02:49.737
Si vous ne faites pas cela,

02:50.640 --> 02:53.730
si vous ne demandez pas "Compris ? "ou "Clair ? ou "Vous comprenez ? "ou quelque chose comme

02:53.730 --> 02:58.730
ça, il ignorera complètement certaines

03:00.210 --> 03:05.210
parties et commencera à générer.

03:05.820 --> 03:07.230
Étant donné que le nombre de jetons est

03:07.230 --> 03:09.090
limité dans les questions

03:09.090 --> 03:12.780
et dans les réponses, vous souhaitez le dépasser

03:12.780 --> 03:16.020
afin d'obtenir une actualisation du nombre de jetons que vous pouvez générer.

03:16.020 --> 03:18.240
La première réponse est donc

03:18.240 --> 03:20.760
: "J'ai compris la tâche.

03:20.760 --> 03:22.980
"Je vais faire exactement ce que je vais demander.

03:22.980 --> 03:26.310
"Mais avant de poursuivre, j'ai quelques questions à poser. Et c'est là que ce "si vous avez des questions, posez-les

03:26.310 --> 03:28.610
moi", m'a posé de bonnes questions.

03:29.820 --> 03:32.377
Tout d'abord, avez-vous un environnement personnalisé ou utilisez-vous

03:32.377 --> 03:33.607
quelque chose qui existe déjà ?

03:33.607 --> 03:36.697
OpenAI, VizDoom, etc.

03:36.697 --> 03:39.600
Ensuite, nous passons à des mesures

03:39.600 --> 03:43.980
de performance spécifiques que vous aimeriez

03:43.980 --> 03:45.750
que je suive.

03:45.750 --> 03:49.200
Le modèle lui-même est-il soumis à des exigences ?

03:49.200 --> 03:51.240
Quelles sont les versions de Python et de PyTorch ?

03:51.240 --> 03:53.883
Enfin, y a-t-il des contraintes spécifiques

03:54.750 --> 03:56.850
concernant le délai ?

03:56.850 --> 03:58.950
Cela provient principalement des plans d'affaires

03:58.950 --> 04:00.783
sur lesquels il a été formé, mais pour lui,

04:01.800 --> 04:05.850
ce n'est pas vraiment, comme si ce n'était pas pertinent pour lui, mais d'accord.

04:05.850 --> 04:08.223
J'ai répondu : "Oui, je vais utiliser OpenAI Gym, et voici

04:09.180 --> 04:10.140
comment le charger. Ceci est tiré du cours.

04:10.140 --> 04:12.990
J'ai dit, d'accord, suivez la récompense moyenne, pas

04:12.990 --> 04:17.160
d'exigences spécifiques, soyez créatifs tant que cela fonctionne, utilisez

04:17.160 --> 04:19.803
les derniers modèles ou versions des bibliothèques,

04:20.970 --> 04:23.283
et quelle est la date limite.

04:24.150 --> 04:25.177
Je viens d'écrire "ASAP".

04:25.177 --> 04:30.177
En outre, voici les classes que j'ai mentionnées.

04:30.480 --> 04:31.713
J'ai donc collé les classes que nous avons dans le cours.

04:33.000 --> 04:35.133
Donc, la relecture de l'expérience,

04:36.030 --> 04:40.953
tout, et enfin, la mémoire de relecture, le traitement

04:42.120 --> 04:46.320
de l'image, et c'est tout.

04:46.320 --> 04:48.090
C'est ainsi que j'ai créé le contexte et qu'il

04:48.090 --> 04:49.797
a commencé à générer de l'énergie.

04:51.150 --> 04:54.120
Il a donc généré le code.

04:54.120 --> 04:57.000
Il commence par prétraiter l'image,

04:57.000 --> 05:00.720
puis crée le réseau Q profond, qui est assez

05:00.720 --> 05:04.773
similaire à ce que nous avons.

05:05.790 --> 05:06.623
Ensuite, il a commencé

05:07.681 --> 05:10.230
par l'initialiser, puis le code d'entraînement.

05:10.230 --> 05:13.530
Jusqu'à présent, tout fonctionnait, puis tout s'arrête ici.

05:13.530 --> 05:15.753
Si vous voulez continuer à générer

05:16.590 --> 05:21.363
quelque chose de plus long, j'ai simplement écrit "continuer".

05:22.560 --> 05:25.110
Et il a dit : "Continuer ? Oui, certainement. Il continue à générer, et bam,

05:25.110 --> 05:27.513
nous avons le code complet.

05:29.070 --> 05:31.983
Incroyable.

05:32.910 --> 05:34.863
Il indique comment l'utiliser,

05:36.000 --> 05:40.350
la fréquence, ce qu'il faut changer, etc.

05:40.350 --> 05:43.950
Il m'a également aidé dans ce domaine.

05:43.950 --> 05:46.110
Permettez-moi de vous présenter mon Google Colab.

05:46.110 --> 05:49.530
J'ai donc commencé par coller le code ici,

05:49.530 --> 05:51.840
en collant notre fonction de prétraitement.

05:51.840 --> 05:55.020
Je reviendrai dans un instant sur les modifications apportées à cette fonction

05:55.020 --> 05:55.853
de prétraitement.

05:57.060 --> 06:00.750
Ensuite, j'ai collé cette expérience, une partie de

06:00.750 --> 06:02.793
l'installation de mon côté.

06:03.720 --> 06:05.940
Nous l'expliquerons dans une seconde.

06:05.940 --> 06:09.630
J'ai joué avec son réseau Q profond et son code d'entraînement.

06:09.630 --> 06:13.053
Il y a donc certainement des possibilités d'amélioration.

06:14.040 --> 06:16.290
Surtout si vous disposez d'un environnement local, cela fonctionnera.

06:16.290 --> 06:18.720
Si vous l'utilisez dans Google Colab, il se peut qu'il ne fonctionne pas.

06:18.720 --> 06:19.553
Permettez-moi de vous en parler.

06:20.970 --> 06:24.843
Je l'ai donc fait et j'ai obtenu une erreur.

06:25.740 --> 06:29.163
J'ai dit : "Hé, le code initial qu'il m'a fourni n'a pas fonctionné.

06:30.150 --> 06:31.833
J'ai juste collé le code,

06:32.790 --> 06:37.790
ce message d'erreur, qui dit "I can't resize an images". Et si vous regardez notre code du cours, il faut redimensionner

06:38.430 --> 06:41.640
l'image avec ceci.

06:41.640 --> 06:45.810
Mais la nouvelle version de SciPy supprime cette fonctionnalité.

06:45.810 --> 06:49.440
Il a donc dit : "Oh, oui, il semble que cela ait

06:49.440 --> 06:50.840
été supprimé". "Voici la nouvelle version avec Pillow.

06:51.750 --> 06:54.240
En fait, cela n'était pas nécessaire.

06:54.240 --> 06:58.110
Il s'agit en fait de réécrire toute la classe de

06:58.110 --> 07:03.110
prétraitement des images avec Pillow au lieu de SciPy.

07:03.810 --> 07:06.600
Je l'ai donc utilisé, et il fonctionne effectivement.

07:06.600 --> 07:10.440
Et puis j'ai dit : "D'accord, j'ai un problème avec le fait qu'Environnement

07:10.440 --> 07:13.200
utilise Google Colab.

07:13.200 --> 07:17.310
"Comment résoudre le problème ? Voici l'erreur. Et il a dit : "Oh, oui, excusez-vous".

07:17.310 --> 07:18.663
"Il semble que cet environnement particulier ne fonctionne pas.

07:19.537 --> 07:21.637
"Voici ce que vous devez faire.

07:21.637 --> 07:25.200
"Il s'agit essentiellement d'installer et de faire ceci. J'ai eu une erreur, puis une autre erreur.

07:25.200 --> 07:27.360
Et cette erreur indique en fait

07:27.360 --> 07:32.260
que le rendu n'est pas disponible dans cette version particulière.

07:33.270 --> 07:36.723
Et il m'a dit : "D'accord, installez cette version. Je l'ai fait. Autre erreur.

07:37.620 --> 07:41.283
Et il a dit : "Oh, oui, oui, "Google Colab ne prend pas en charge le rendu, les

07:42.990 --> 07:44.227
bibliothèques OpenGL",

07:44.227 --> 07:47.257
ce qui signifie, pour nous, que nous devons faire, au lieu de

07:47.257 --> 07:50.160
Google Colab, quelque chose

07:50.160 --> 07:52.087
d'autre pour la visualisation.

07:52.087 --> 07:55.657
Il m'a donné des conseils étape par étape sur ce

07:55.657 --> 07:56.917
qu'il fallait faire,

07:56.917 --> 07:59.880
comment changer les choses, etc.

07:59.880 --> 08:02.580
Et si vous le faites localement, vous résoudrez le problème.

08:02.580 --> 08:04.350
Mais il s'agit essentiellement

08:04.350 --> 08:09.350
de vous apprendre à utiliser correctement ChatGPT.

08:11.850 --> 08:14.280
Par exemple, ici, vous avez vu que j'ai eu des erreurs, que

08:14.280 --> 08:17.040
j'ai répondu à ces erreurs, etc.

08:17.040 --> 08:18.457
Et maintenant, vous avez,

08:18.457 --> 08:23.457
par exemple, si vous faites défiler l'écran vers l'arrière, un code fonctionnant

08:24.270 --> 08:27.870
parfaitement avec un réseau Q profond, avec un code d'entraînement,

08:27.870 --> 08:31.350
et vous pouvez lui demander de générer un code de test,

08:31.350 --> 08:34.500
et il le fera.

08:34.500 --> 08:37.440
Incroyable, non ?

08:37.440 --> 08:38.820
C'est donc tout.

08:38.820 --> 08:42.450
Voici comment utiliser ChatGPT pour résoudre le réseau Q profond,

08:42.450 --> 08:45.120
ou réseau Q profond convolutif, pour Doom.

08:45.120 --> 08:47.200
Merci. Profitez du cours !
