WEBVTT

00:02.310 --> 00:04.620
ルカ：皆さん､ こんにちは､ おかえりなさい｡ 

00:04.620 --> 00:05.453
このビデオでは､

00:05.453 --> 00:07.710
ChatGPTについて､ そしてそれを使って､

00:07.710 --> 00:16.290
コースで使うのと同じDoomのアルゴリズム､ 畳み込み深層Q-learningを実装する方法について説明します｡

00:16.290 --> 00:17.790
そこで､ これから数分間､

00:17.790 --> 00:26.190
私が実際にChatGPTを指さしてお願いした､ モデルを入手するための方法を紹介します｡

00:26.190 --> 00:33.720
そこで､ 私がどのようにしたのか､ なぜあるプロンプトをそのようにしたのかを理解してもらうことにしましょう｡

00:33.720 --> 00:38.460
だから､ 最初のプロンプトは､ 私の方からかなり作り込んだものだったんです｡ 

00:38.460 --> 00:39.293
私は､ 「あなたは､

00:39.293 --> 00:41.527
"機械学習をシミュレーションやロボティクスに応用する

00:41.527 --> 00:43.717
"プロジェクトに長年携わった経験を持つ､

00:43.717 --> 00:48.750
機械学習のシニアエキスパートです｡ これは第一部で､ 舞台を整え､ 役割を与えることです｡

00:48.750 --> 00:51.330
ですから､ 基本的にはChatGPT全体のベクトル空間は､

00:51.330 --> 00:55.410
機械学習のトピックに多く促されることになります｡

00:55.410 --> 00:59.310
さて､ 私の文脈に登場させたいのは､ ドゥームです｡ 

00:59.310 --> 01:04.310
そして実は､ そこに至るまでに､ 「よし､ 『Doom』環境向けの『Convolutional

01:04.500 --> 01:12.457
Deep Q-Learning』アルゴリズムの実装を手伝ってくれ」と依頼したのです｡

01:12.457 --> 01:14.407
"ゲーム環境であるDoomをプレイできる

01:14.407 --> 01:18.457
"完全な機能の強化学習アルゴリズムを持つことが目標です｡

01:18.457 --> 01:24.187
"経験_再生 "と "記憶・画像処理 "のためのクラス」を実装しました｡

01:24.187 --> 01:30.337
"最終的なコードに組み込むことができるように "それを提供します｡

01:30.337 --> 01:34.800
これは､ ほとんどの人が見逃している､ 本当に重要なことです｡ 

01:34.800 --> 01:37.893
すでに何かを持っていて､ そのコードを最終的な実装に使いたいということを､

01:38.790 --> 01:45.720
彼､ あるいはChatGPTに伝える方法が必要です｡

01:45.720 --> 01:50.720
ですから､ もし私がコンテキストとしてこれを提供しなかった場合､

01:50.910 --> 02:01.140
経験値_再生と画像処理関数の使用を考慮しない畳み込み式深層Q学習の実装コードが生成されてしまいますが､

02:01.140 --> 02:06.330
私たちはそれを望んでいます｡

02:06.330 --> 02:07.323
あなたの目標は､

02:08.250 --> 02:10.537
PythonとTorch for

02:10.537 --> 02:14.107
modelを使って完全なソリューションを実装し､

02:14.107 --> 02:23.167
そのコードをGoogle Colabで実行できるように最適化することです」｡

02:23.167 --> 02:23.167
これは基本的に､

02:23.167 --> 02:33.060
あなたが望む最終解の形式をChatGPTに伝えるものです｡

02:33.060 --> 02:35.190
そして最後に､ 「必要に応じて明確な質問をする」ことで､

02:35.190 --> 02:37.200
より多くの文脈を提供することができます｡

02:37.200 --> 02:40.050
そして､ 「えー､ わからなければ､ "文脈が足りなければ､

02:40.050 --> 02:42.060
私に聞いてください"｡ そして最後に､ 「わかったか？ 得たことを確認したかったのです｡ 

02:42.060 --> 02:44.197
これは､ 次のプロンプト､ 次の答えを生成するために厳密に行くのではなく､

02:44.197 --> 02:47.580
このことを反映させるための巧妙な方法です｡

02:47.580 --> 02:49.737
このままでは､

02:50.640 --> 02:53.730
「わかった？ "または "Clear? や「わかりましたか？ "といった具合に､

02:53.730 --> 03:05.210
一部のパーツを完全に無視して生成を開始します｡

03:05.820 --> 03:09.090
質問にも回答にもトークンの数という制限があるので､

03:09.090 --> 03:16.020
それを破って､ トークンの発生量をリフレッシュできるようにしたいですね｡

03:16.020 --> 03:18.240
だから､ 最初の答えは､

03:18.240 --> 03:20.760
「課題を理解した」です｡

03:20.760 --> 03:22.980
"お願い "したことは､ きっちり実行する｡ 

03:22.980 --> 03:26.310
"しかし､ その前にいくつか質問があります｡  そして､ この「わからないことがあったら聞いてね」というところですが､

03:26.310 --> 03:28.610
結構いいことを聞いてくれました｡

03:29.820 --> 03:33.607
まず､ 環境をカスタムしているのか､ それともすでにあるものを使っているのか｡

03:33.607 --> 03:36.697
だからOpenAIとか､ VizDoomとか､ そういうのですね｡ 

03:36.697 --> 03:39.600
次に､ 具体的にどのようなパフォーマンス指標に従えばいいのか､

03:39.600 --> 03:45.750
という話に移っていきます｡

03:45.750 --> 03:49.200
モデル自体に条件はあるのでしょうか？

03:49.200 --> 03:51.240
PythonとPyTorchのバージョンは？

03:51.240 --> 03:56.850
最後に､ 納期について具体的な制約があるのでしょうか？

03:56.850 --> 03:58.950
これは､ 主にビジネスプランのトレーニングを受けたものですが､

03:58.950 --> 04:00.783
それについては､ これはあまり関係ないような､

04:01.800 --> 04:05.850
でもまあいいやというような感じです｡

04:05.850 --> 04:10.140
私は「はい､ OpenAI Gymを使いますので､ その読み込み方をご紹介します」と提供しました｡

04:10.140 --> 04:10.140
コースからです｡ 

04:10.140 --> 04:12.990
私は､ よし､ 平均的な報酬に従え､

04:12.990 --> 04:17.160
具体的な要求はない､ 動く限り創造的であれ､ ライブラリの最新モデルやバージョンを使え､

04:17.160 --> 04:23.283
そして期限は何日だ､ と言った｡

04:24.150 --> 04:25.177
今､ 「ASAP」と書きました｡ 

04:25.177 --> 04:30.177
さらに､ 私が紹介したこれらの授業を紹介します｡ 

04:30.480 --> 04:31.713
だから､ コースにあるクラスを貼り付けただけです｡ 

04:33.000 --> 04:35.133
だから経験リプレイ､

04:36.030 --> 04:40.953
全部､ 最後にリプレイメモリー､ 画像処理､

04:42.120 --> 04:46.320
これで終わりです｡

04:46.320 --> 04:48.090
そして､ これでコンテキストを構築し､

04:48.090 --> 04:49.797
今度は生成するようにしました｡

04:51.150 --> 04:54.120
そこで､ コードを生成しました｡ 

04:54.120 --> 04:57.000
基本的には画像の前処理から始まり､

04:57.000 --> 05:04.773
深層Q-networkを作成しますが､ これは私たちのものとかなり似ています｡

05:05.790 --> 05:06.623
そして､ それを初期化するところから始まり､

05:07.681 --> 05:10.230
トレーニングコードを作成しました｡

05:10.230 --> 05:13.530
今までは全部うまくいっていたのに､ ここで壊れてしまう｡ 

05:13.530 --> 05:15.753
もっと長いものを生成し続けたい場合は､

05:16.590 --> 05:21.363
「続ける」とだけ書きました｡

05:22.560 --> 05:27.513
と表示され､ 「Continue? ええ､ もちろんです｡  そのまま生成を続けると､ なんとフルコードが完成します｡

05:29.070 --> 05:31.983
驚きです｡ 

05:32.910 --> 05:40.350
使い方や頻度､ 交換するものなどが記載されていました｡

05:40.350 --> 05:43.950
これにも助けられました｡ 

05:43.950 --> 05:46.110
そして､ 私のGoogle Colabにお連れしましょう｡ 

05:46.110 --> 05:49.530
そこで､ まずここにコードを貼り付け､

05:49.530 --> 05:51.840
前処理関数を貼り付けました｡

05:51.840 --> 05:55.853
この前処理機能の変更点については､ また後日紹介します｡

05:57.060 --> 06:02.793
そして､ この体験リプレイ､ 私の方からのインストールの一部を貼り付けました｡

06:03.720 --> 06:05.940
これについては､ ちょっとだけ説明します｡ 

06:05.940 --> 06:09.630
彼のディープQ-ネットワークとトレーニングコードで遊んでみた｡ 

06:09.630 --> 06:13.053
だから､ これを改善する方法は絶対にあるはずです｡ 

06:14.040 --> 06:16.290
特にローカル環境であれば､ うまくいくでしょう｡ 

06:16.290 --> 06:18.720
Google Colabで使用している場合､ 壊れる可能性があります｡ 

06:18.720 --> 06:19.553
では､ そこにお連れしましょうか｡ 

06:20.970 --> 06:24.843
で､ やってみたら､ エラーが出たんです｡ 

06:25.740 --> 06:29.163
私は､ 「おい､ 最初に提供された私のコードは動かなかったぞ」と言いました｡ 

06:30.150 --> 06:31.833
コードを貼り付けたところ､ このようなエラーメッセージが表示され､

06:32.790 --> 06:41.640
「画像のサイズを変更することができません｡ そして､ コースのコードを見てみると､ これで画像のリサイズをすることが要求されています｡

06:41.640 --> 06:45.810
しかし､ 新しいバージョンのSciPyでは､ 実はこれが削除されています｡ 

06:45.810 --> 06:50.840
だから､ 「ああ､ そうなんだ｡ "これは削除された可能性があるようだ"」と書かれていました｡

06:50.840 --> 06:50.840
"Pillow "を使った新バージョンをご紹介します｡ 

06:51.750 --> 06:54.240
そして実は､ その必要はなかったのです｡ 

06:54.240 --> 07:03.110
基本的に前処理画像クラス全体をSciPyではなくPillowで書き換えています｡

07:03.810 --> 07:06.600
それで使ってみたのですが､ 実際に効いていますね｡ 

07:06.600 --> 07:13.200
そして､ 「そうか､ "Google Colab "を使っている環境には問題があるんだ｡

07:13.200 --> 07:17.310
"解き方 "を教えてください｡  これがエラーになります｡  そして､ 「ああ､ そうだ､ 謝れ」と書いてあった｡ 

07:17.310 --> 07:18.663
"この特殊な環境がうまくいっていない "ようです｡ 

07:19.537 --> 07:21.637
"こうする "ということです｡ 

07:21.637 --> 07:25.200
"基本的にはインストールして行うものです｡  エラーが出た､ またエラーが出た｡ 

07:25.200 --> 07:32.260
そしてこのエラーは､ 実はレンダリングがこの特定のバージョンで見つかっていないことを示すものでした｡

07:33.270 --> 07:36.723
そして､ 「OK､ このバージョンをインストールしてください」と表示されました｡  したんです｡  またエラーです｡ 

07:37.620 --> 07:52.087
つまり､ ビジュアライゼーションのためには､ Google Colabの代わりに何か別のものを使う必要があるということです｡

07:52.087 --> 07:59.880
そして､ 基本的に何をすればいいのか､ どうすればそれを変えられるのか､ そういうことを段階を追って教えてくれました｡

07:59.880 --> 08:02.580
そして､ これを現地で行えば､ 問題は解決するのです｡ 

08:02.580 --> 08:04.350
しかし､ これは基本的に今､

08:04.350 --> 08:09.350
ChatGPTの正しい使い方を教えているのです｡

08:11.850 --> 08:14.280
例えば､ ここで､ いくつかのエラーが発生し､ そのエラーでプロンプトを表示した､

08:14.280 --> 08:17.040
といった具合です｡

08:17.040 --> 08:18.457
そして今､ スクロールバックすると､

08:18.457 --> 08:23.457
深いQネットワークとトレーニングコードを備えたフル機能のコードがあり､

08:24.270 --> 08:34.500
テストコードを生成するよう依頼することができます｡

08:34.500 --> 08:37.440
驚きでしょう？

08:37.440 --> 08:38.820
というわけで､ これで終わりです｡ 

08:38.820 --> 08:45.120
ChatGPTを使って､ Doomの深層Q（畳み込み深層Qネットワーク）を解く方法です｡

08:45.120 --> 08:47.200
ありがとうございます｡  コースを楽しんでください！
