You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

136 lines
6.0 KiB

WEBVTT
00:00.290 --> 00:05.120
そこで今回は、 トレーニング・プロセスにおける5つの重要なハイパーパラメーターについてお話しします。
00:05.120 --> 00:07.460
そのうちのいくつかは、 以前にも簡単に話したことがある。
00:07.460 --> 00:13.670
しかし、 これらの多くは、 この種の他のデータ・サイエンス・プロジェクトに携わったことがない限り、 あなたにとってやや目新しいものだろう。
00:13.700 --> 00:18.890
そして、 最初に挙げるのは、 少し前に少し触れたエポックだ。
00:18.890 --> 00:29.300
つまりエポックとは、 トレーニング・プロセスの一環として、 データセット全体を何回処理するかということだ。
00:29.300 --> 00:34.370
だから、 トレーニングするときに、 それぞれのトレーニング・データ・ポイントを取って、 そのセットを1回通して、
00:34.370 --> 00:37.670
それで終わりだと想像するかもしれない。
00:37.670 --> 00:42.620
しかし実際には、 2度目に戻ってすべてのトレーニングデータをもう一度モデルで調べ直すことで、
00:42.620 --> 00:45.200
より多くの走行距離を得られることが判明した。
00:45.230 --> 00:46.820
と思うかもしれない。
00:46.820 --> 00:50.240
モデルがすでに一度見ているのに、 なぜ2度目を通すことが助けになるのか?
00:50.240 --> 00:52.520
では、 同じデータを2度目に与えるだけなのか?
00:52.520 --> 00:58.160
トレーニングの最適化プロセスでは、 これらのポイントをひとつひとつ確認し、
00:58.160 --> 01:11.490
モデルを少し良くする方向にごく小さな一歩を踏み出す。
01:11.640 --> 01:17.700
だから、 すべてのトレーニング・データ・セットを経験するたびに、 私たちはほんの少し上達する機会を得ることになる。
01:17.880 --> 01:22.860
そして恐らく、 それが完了した時点で、 モデルの状態は少し変わっている。
01:22.950 --> 01:27.930
そうすれば、 再びそれを見たときに、 より洗練された、 より良いプレーができるようになる。
01:28.560 --> 01:35.550
複数のエポックを持つことがしばしば理にかなっている理由はもう一つあり、 それはバッチサイズに行き着く。
01:35.580 --> 01:43.950
次のハイパーパラメーター・バッチサイズは、 1つのデータポイントを次のトークンを予測するモデルのフォワードパスにかけて、 損失を計算し、
01:43.980 --> 01:49.410
それから逆戻りして、 その損失がどの程度なのかの勾配を把握する、 ということをしないことが多い、
01:49.410 --> 01:52.380
ということです。
01:52.410 --> 01:56.610
モデルのパラメーターの重みが違うことが影響しているのでしょうか?
01:56.610 --> 02:00.540
そして、 正しい方向に少しずつステップを踏んでモデルを最適化する?
02:00.630 --> 02:06.240
多くのデータポイントを同時に扱うことは、 理にかなっていることもあるんだ。
02:06.240 --> 02:13.410
よくあるように、 4人とか8人とか16人を選んで、 16人全員でやるんだ。
02:13.930 --> 02:18.460
そうする理由のひとつは、 パフォーマンスだ。
02:18.460 --> 02:19.630
全部一緒にできる。
02:19.660 --> 02:23.920
もしGPUに16個のデータポイントを収めることができるなら、 それは良いことだ。
02:23.950 --> 02:30.670
一歩一歩やるより、 まとめてやったほうがいい理由は他にもいくつかある。
02:30.760 --> 02:35.920
うーん、 でも、 でも、 でも、 基本的な理由はパフォーマンスのためだよ。
02:36.100 --> 02:44.710
各エポックで複数のエポックを行う場合、 リゾートするか、 すべてのバッチをジャグリングするのが一般的だ。
02:44.710 --> 02:52.870
つまり、 エポックごとに異なるバッチ、 異なる16点のデータセットをモデルが見ることになる。
02:52.870 --> 03:02.890
エポックごとに異なるデータを見ているのですから。
03:02.890 --> 03:06.250
それが、 複数のエポックが良い理由でもある。
03:06.880 --> 03:13.630
各エポックの終了時にモデルを保存するという、 非常に一般的なテクニックがある。
03:13.630 --> 03:27.270
多くのエポックを実行し、 各エポックの終了時にモデルのパフォーマンスをテストするのはよくあることです。
03:27.270 --> 03:41.220
多くの場合、 モデルは各エポックで学習を重ねるにつれてどんどん良くなっていきます。
03:41.220 --> 03:49.740
そしてテストすると、 トレーニングデータセット外のポイントを想定していないため、 パフォーマンスが悪化する。
03:49.740 --> 03:54.690
だから、 より良い、 より良い、 より良い、 より良い、 より悪い、 より悪い、 より悪い、 より悪い、 というように見えてくる。
03:54.690 --> 03:57.450
そして結果は悪化の一途をたどる。
03:57.450 --> 04:05.550
そしてこれを実行し、 単純に最良のモデル、 最良の結果をもたらしたエポックを選ぶのだ。
04:05.550 --> 04:08.460
そして、 それがトレーニングの成果だと考えるものだ。
04:08.460 --> 04:12.570
それが微調整モデルのバージョンであり、 それを前進させるものだ。
04:12.570 --> 04:20.490
そのため、 より多くのエポック数を実行し、 そのようなテストを使ってどれがベストなモデルかを選ぶのが一般的だ。
04:21.870 --> 04:26.910
これで一旦中断し、 次のビデオでこれらのパラメータについて続けることにする。