Luka : Bonjour à tous et bienvenue.
Dans cette vidéo,
nous allons parler de ChatGPT et de la manière
de l'utiliser pour mettre en œuvre le même algorithme pour Doom que celui
que nous allons utiliser dans le cours,
l'apprentissage convolutionnel profond.
Dans les prochaines
minutes, nous allons donc voir comment j'ai indiqué et demandé
à ChatGPT d'obtenir notre modèle.
Je vais donc vous aider à comprendre comment j'ai procédé et
pourquoi j'ai fait certaines questions de la manière dont je l'ai fait.
L'invitation initiale était donc plutôt bien conçue de mon côté.
J'ai dit : "Vous êtes
un expert senior en apprentissage automatique "avec
des années d'expérience dans des projets "appliquant
l'apprentissage automatique aux simulations et à la robotique". Il s'agit de la première partie, qui consiste à planter le décor, à
leur donner un rôle.
Ainsi, l'espace vectoriel de l'ensemble du ChatGPT
sera davantage axé sur les sujets liés à l'apprentissage automatique.
Je voudrais maintenant évoquer le contexte de Doom.
En fait, pour en arriver là, j'ai dit : " D'accord, je t'ai engagé pour
m'aider à mettre en œuvre un algorithme
Convolutional Deep Q-Learning
pour l'environnement Doom ".
"L'objectif est de disposer d'un algorithme d'apprentissage
par renforcement entièrement
fonctionnel capable de jouer à Doom, un environnement de jeu.
J'ai mis en place des classes "pour l'expérience_replay et la mémoire
et le traitement de l'image".
"Je vous fournirai cela afin que vous puissiez l'incorporer
dans le code final.
Il s'agit d'un point très important, que la plupart des gens ignorent.
Vous devez avoir un moyen de lui dire, ou de dire à ChatGPT,
que vous avez déjà quelque chose et que vous voulez utiliser
ce code dans l'implémentation
finale.
Ainsi, si je ne fournissais pas ce contexte, cela générerait un code,
une implémentation de l'apprentissage convolutif
profond qui n'envisagerait pas d'utiliser
experience_replay et notre fonction de traitement
d'image, mais c'est ce que nous voulons.
Je poursuis donc en
disant : "Votre objectif est d'implémenter
la solution complète en utilisant Python, Torch pour le modèle, et d'optimiser
le code pour qu'il soit exécuté dans Google Colab,
afin que les étudiants qui parcourent le code puissent l'exécuter avec des ordinateurs
moins puissants". Il s'agit en fait
d'indiquer au ChatGPT le format de la solution
finale que vous souhaitez obtenir.
Enfin, le fait de "poser des questions de clarification
si nécessaire" lui fournira davantage de contexte.
Et "Eh, si vous ne savez pas, si vous n'avez pas assez de contexte,
n'hésitez pas à me demander". Enfin, il a demandé : "Vous avez compris ? Je voulais confirmer que c'était le cas.
C'est une façon intelligente de lui permettre de réfléchir à la
situation et de ne pas se contenter de générer les prochains messages, les prochaines réponses.
Si vous ne faites pas cela,
si vous ne demandez pas "Compris ? "ou "Clair ? ou "Vous comprenez ? "ou quelque chose comme
ça, il ignorera complètement certaines
parties et commencera à générer.
Étant donné que le nombre de jetons est
limité dans les questions
et dans les réponses, vous souhaitez le dépasser
afin d'obtenir une actualisation du nombre de jetons que vous pouvez générer.
La première réponse est donc
: "J'ai compris la tâche.
"Je vais faire exactement ce que je vais demander.
"Mais avant de poursuivre, j'ai quelques questions à poser. Et c'est là que ce "si vous avez des questions, posez-les
moi", m'a posé de bonnes questions.
Tout d'abord, avez-vous un environnement personnalisé ou utilisez-vous
quelque chose qui existe déjà ?
OpenAI, VizDoom, etc.
Ensuite, nous passons à des mesures
de performance spécifiques que vous aimeriez
que je suive.
Le modèle lui-même est-il soumis à des exigences ?
Quelles sont les versions de Python et de PyTorch ?
Enfin, y a-t-il des contraintes spécifiques
concernant le délai ?
Cela provient principalement des plans d'affaires
sur lesquels il a été formé, mais pour lui,
ce n'est pas vraiment, comme si ce n'était pas pertinent pour lui, mais d'accord.
J'ai répondu : "Oui, je vais utiliser OpenAI Gym, et voici
comment le charger. Ceci est tiré du cours.
J'ai dit, d'accord, suivez la récompense moyenne, pas
d'exigences spécifiques, soyez créatifs tant que cela fonctionne, utilisez
les derniers modèles ou versions des bibliothèques,
et quelle est la date limite.
Je viens d'écrire "ASAP".
En outre, voici les classes que j'ai mentionnées.
J'ai donc collé les classes que nous avons dans le cours.
Donc, la relecture de l'expérience,
tout, et enfin, la mémoire de relecture, le traitement
de l'image, et c'est tout.
C'est ainsi que j'ai créé le contexte et qu'il
a commencé à générer de l'énergie.
Il a donc généré le code.
Il commence par prétraiter l'image,
puis crée le réseau Q profond, qui est assez
similaire à ce que nous avons.
Ensuite, il a commencé
par l'initialiser, puis le code d'entraînement.
Jusqu'à présent, tout fonctionnait, puis tout s'arrête ici.
Si vous voulez continuer à générer
quelque chose de plus long, j'ai simplement écrit "continuer".
Et il a dit : "Continuer ? Oui, certainement. Il continue à générer, et bam,
nous avons le code complet.
Incroyable.
Il indique comment l'utiliser,
la fréquence, ce qu'il faut changer, etc.
Il m'a également aidé dans ce domaine.
Permettez-moi de vous présenter mon Google Colab.
J'ai donc commencé par coller le code ici,
en collant notre fonction de prétraitement.
Je reviendrai dans un instant sur les modifications apportées à cette fonction
de prétraitement.
Ensuite, j'ai collé cette expérience, une partie de
l'installation de mon côté.
Nous l'expliquerons dans une seconde.
J'ai joué avec son réseau Q profond et son code d'entraînement.
Il y a donc certainement des possibilités d'amélioration.
Surtout si vous disposez d'un environnement local, cela fonctionnera.
Si vous l'utilisez dans Google Colab, il se peut qu'il ne fonctionne pas.
Permettez-moi de vous en parler.
Je l'ai donc fait et j'ai obtenu une erreur.
J'ai dit : "Hé, le code initial qu'il m'a fourni n'a pas fonctionné.
J'ai juste collé le code,
ce message d'erreur, qui dit "I can't resize an images". Et si vous regardez notre code du cours, il faut redimensionner
l'image avec ceci.
Mais la nouvelle version de SciPy supprime cette fonctionnalité.
Il a donc dit : "Oh, oui, il semble que cela ait
été supprimé". "Voici la nouvelle version avec Pillow.
En fait, cela n'était pas nécessaire.
Il s'agit en fait de réécrire toute la classe de
prétraitement des images avec Pillow au lieu de SciPy.
Je l'ai donc utilisé, et il fonctionne effectivement.
Et puis j'ai dit : "D'accord, j'ai un problème avec le fait qu'Environnement
utilise Google Colab.
"Comment résoudre le problème ? Voici l'erreur. Et il a dit : "Oh, oui, excusez-vous".
"Il semble que cet environnement particulier ne fonctionne pas.
"Voici ce que vous devez faire.
"Il s'agit essentiellement d'installer et de faire ceci. J'ai eu une erreur, puis une autre erreur.
Et cette erreur indique en fait
que le rendu n'est pas disponible dans cette version particulière.
Et il m'a dit : "D'accord, installez cette version. Je l'ai fait. Autre erreur.
Et il a dit : "Oh, oui, oui, "Google Colab ne prend pas en charge le rendu, les
bibliothèques OpenGL",
ce qui signifie, pour nous, que nous devons faire, au lieu de
Google Colab, quelque chose
d'autre pour la visualisation.
Il m'a donné des conseils étape par étape sur ce
qu'il fallait faire,
comment changer les choses, etc.
Et si vous le faites localement, vous résoudrez le problème.
Mais il s'agit essentiellement
de vous apprendre à utiliser correctement ChatGPT.
Par exemple, ici, vous avez vu que j'ai eu des erreurs, que
j'ai répondu à ces erreurs, etc.
Et maintenant, vous avez,
par exemple, si vous faites défiler l'écran vers l'arrière, un code fonctionnant
parfaitement avec un réseau Q profond, avec un code d'entraînement,
et vous pouvez lui demander de générer un code de test,
et il le fera.
Incroyable, non ?
C'est donc tout.
Voici comment utiliser ChatGPT pour résoudre le réseau Q profond,
ou réseau Q profond convolutif, pour Doom.
Merci. Profitez du cours !