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.
 
 

232 lines
8.6 KiB

WEBVTT
00:01.340 --> 00:02.180
やあ、 みんな。
00:02.210 --> 00:04.250
何を考えているかは分かる。
00:04.250 --> 00:07.130
今週はトレーニングウィークのはずだった。
00:07.160 --> 00:11.900
フロンティア・モデルを微調整するために、 私はすべてを設定した。
00:11.900 --> 00:13.250
私たちは何をしなかったのか?
00:13.250 --> 00:15.110
私たちはフロンティアモデルを微調整していない。
00:15.110 --> 00:16.490
だが、 いいニュースがある。
00:16.490 --> 00:18.140
今日がその日だ。
00:18.170 --> 00:19.460
今日がその日だ。
00:19.460 --> 00:25.550
しかし、 今日もまた、 私たちと同じように、 ある意味で失望させられるかもしれないことを覚悟しておかなければならない。
00:25.580 --> 00:26.720
いずれ分かるだろう。
00:26.900 --> 00:35.720
うーん、 でも、 勇敢な新世界に乗り出すのだから、 その覚悟はしておいてほしい。
00:35.720 --> 00:51.140
簡単にまとめると、 すでにフロンティア・モデルを使ってテキストやコードを生成したり、 APIを使ったり、 パイプラインと下位レベルのトランスフォーマーAPIの両方を通してオープンソースのモデルを抱き合わせで使ったりすることができる。
00:51.140 --> 00:59.390
モデルを直接使用するのと同様に、 ランゲ・チェインを使用して高度なラグ・パイプラインを作成することも、 ランゲ・チェインを使用しないこともできます。
00:59.390 --> 01:09.110
そして最も重要なことは、 問題解決のための5つのステップ戦略に従うことができるようになったことだ。
01:09.140 --> 01:13.910
その結果、 多くの時間をデータのキュレーションに費やし、 ベースラインモデルを作成することが判明した。
01:13.910 --> 01:16.760
トレーニングも行ったが、 それはベースラインモデルのトレーニングだった。
01:16.790 --> 01:22.970
伝統的なMLは、 私たちがまだ行っていない、 訓練された、 微調整された、 フロンティアモデルである。
01:22.970 --> 01:24.500
そして、 それが今日私たちがやろうとしていることだ。
01:24.530 --> 01:30.170
ファイン・チューニングのプロセスをモデルの前で理解し、 そのためのデータセットを作成し、 ファイン・チューニングを実行し、
01:30.200 --> 01:35.360
そしてファイン・チューニングされた新しいモデルをテストする。
01:35.930 --> 01:42.290
この種のモデルの文脈では、
01:42.290 --> 01:54.020
微調整はトレーニングと同義なのです。
01:54.020 --> 02:00.680
つまり私たちは常に、 訓練済みの既存のモデル(事前訓練済みモデル)を使って、 転移学習を利用しながら訓練を重ねているのです。
02:00.680 --> 02:12.030
転移学習とは、 事前訓練済みの既存のモデルを使い、 もう少し訓練を重ねれば、 新しいタスクに対してより優れた訓練ができるようになるという理論です。
02:12.120 --> 02:14.760
そしてそれは微調整とも呼ばれる。
02:15.450 --> 02:24.030
それでは、 OpenAIで微調整を行うための3つのステップについて説明しよう。
02:24.180 --> 02:33.390
GPT4ゼロ、 あるいはGPT4ミニを獲得し、 微調整するためには、 3つのことを守る必要がある。
02:33.420 --> 02:39.270
最初のステップは、 トレーニングに使用するトレーニングデータを準備することだ。
02:39.270 --> 02:44.820
従来のモデル、 線形回帰などの文脈では、 明らかにトレーニングデータを使用する。
02:44.820 --> 02:49.170
我々はいくつかのトレーニング例を得て、 それを線形回帰モデルにかけた。
02:49.170 --> 02:50.790
だから、 トレーニングデータを作らなければならない。
02:50.820 --> 02:54.720
そしてそれをOpenAIにアップロードしなければならない。
02:54.720 --> 03:07.160
そして、 JSON L(JSON行の略)と呼ばれる特定のフォーマットでトレーニング・データを受け取る。
03:07.640 --> 03:13.880
これからトレーニング、 微調整を行い、 これらのチャートはすべて下向きになる。
03:13.880 --> 03:14.900
あなたを悩ませるかもしれない。
03:14.930 --> 03:20.270
物事がうまくいっていないように見えるが、 とんでもない。
03:20.300 --> 03:21.590
トレーニングの損失。
03:21.710 --> 03:23.960
そしてもちろん、 あなたは損失が減ることを望んでいる。
03:23.960 --> 03:25.880
つまり、 状況は良くなっているということだ。
03:25.970 --> 03:32.480
だから私たちはタカのようにチャートを注視し、 損失が減少していることを確認しようとする。
03:33.200 --> 03:39.560
そして最も重要なのは、 バッチの過程でトレーニングのロスを調べ、
03:39.590 --> 03:44.090
さらに検証のロスを調べることだ。
03:44.090 --> 03:45.740
ええと、 それも降りてくるんですか?
03:45.770 --> 03:49.940
トレーニングの損失を見るだけでは、 トレーニングデータにオーバーフィットする可能性があるからだ。
03:49.970 --> 03:56.990
なぜなら、 トレーニング・データを1エポック実行するだけだからだ。
03:56.990 --> 03:58.850
そしてエポックとは、 あなたがそう呼ぶものだ。
03:58.940 --> 04:07.370
そして、 同じデータで2回目を行う。
04:07.400 --> 04:10.070
これはトレーニングの第2のエポックと呼ばれるものだ。
04:10.490 --> 04:16.130
なぜなら、 我々はトレーニングデータをたくさん持っているからだ。
04:16.130 --> 04:19.580
もう少し多くのトレーニングデータを使って、 1エポックやったほうがいいかもしれない。
04:19.580 --> 04:27.230
そして、 すべてのデータは常に新しいデータであるため、 トレーニング損失は検証損失と同様に我々にとって有用である。
04:28.100 --> 04:31.760
そして最後に結果を評価する。
04:31.760 --> 04:38.240
そして、 その結果に基づいて微調整をし、 繰り返し、 続けていく。
04:38.390 --> 04:40.310
これがその段階だ。
04:41.060 --> 04:44.870
その第一は、 データを準備することだ。
04:45.050 --> 04:53.750
だからOpenAIは、 JSON Lと呼ばれるフォーマット、 つまりJSONデータの一連の行でそれを期待する。
04:53.900 --> 04:56.030
JSONデータと同じじゃないか、 と思うかもしれない。
04:56.030 --> 04:56.870
それは違う。
04:56.870 --> 04:59.000
コレクションの中には入っていない。
04:59.000 --> 04:59.900
だからリストには入っていない。
04:59.900 --> 05:02.770
カンマ付きの角括弧では始まらない。
05:02.770 --> 05:11.410
このファイルの各行は、 中かっこで始まり、 中かっこで終わる別々のJSONオブジェクトである。
05:11.410 --> 05:16.270
これは微妙な違いだが、 JSONオブジェクトを記述していないことを想定していない場合、
05:16.270 --> 05:19.390
リストに囲まれてしまうため、 注意を引くことができる。
05:19.390 --> 05:27.550
あなたはこのファイルにJSONの行を書き、 それぞれの行は私たちにとって非常に馴染みのあるものになる。
05:27.580 --> 05:30.730
メッセージという属性を持つ。
05:30.730 --> 05:40.750
そしてそこに入るのは、 私たちがよく知っている辞書のリストであり、 各辞書には役割と内容がある。
05:40.750 --> 05:42.100
それは会話だ。
05:42.100 --> 05:45.460
つまり、 これが各列に入るものだ。
05:45.610 --> 05:51.040
おわかりのように、 この特殊なデータセットをアップロードするために細工をする。
05:52.240 --> 05:53.260
分かった。
05:53.680 --> 05:57.130
雑談はこれくらいにしておこう。
05:57.160 --> 05:58.900
Jupyter Labに行ってみよう。
05:58.900 --> 06:01.000
実際に走らせてみよう。
06:01.000 --> 06:05.230
そして初めてフロンティアモデルをトレーニングする。
06:05.260 --> 06:06.370
そうしよう。