From the uDemy course on LLM engineering.
https://www.udemy.com/course/llm-engineering-master-ai-and-large-language-models
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.
352 lines
12 KiB
352 lines
12 KiB
WEBVTT |
|
|
|
00:00.800 --> 00:02.540 |
|
本題に入ろう。 |
|
|
|
00:02.690 --> 00:12.260 |
|
そこで、 何が起こっているかをすべて見ることができ、 データに深く入り込むことができるのが、 Weights and Biasesと呼ばれる美しいプラットフォームだ。 |
|
|
|
00:12.380 --> 00:17.330 |
|
とにかく個人使用なら完全に無料だし、 超優秀だ。 |
|
|
|
00:17.360 --> 00:20.180 |
|
ここに行けばいい |
|
|
|
00:20.210 --> 00:22.340 |
|
あの......ワンドブはウェイトとバイアスです。 |
|
|
|
00:22.580 --> 00:25.400 |
|
登録するには、 無料アカウントを作成してください。 |
|
|
|
00:25.400 --> 00:27.080 |
|
希望しないなら、 その必要はない。 |
|
|
|
00:27.110 --> 00:29.450 |
|
これは完全にオプションである。 |
|
|
|
00:29.480 --> 00:32.660 |
|
これにより、 走りながらトレーニングを視覚化することができる。 |
|
|
|
00:32.660 --> 00:36.680 |
|
とても満足できるので、 強くお勧めする。 |
|
|
|
00:36.740 --> 00:41.810 |
|
ええと、 くねくねした線がたくさん見えないと、 僕の中ではトレーニングをする意味がないんだ。 |
|
|
|
00:41.810 --> 00:44.930 |
|
信じてほしいのは、 私たちはたくさんのくねくねしたラインを持っているということだ。 |
|
|
|
00:44.930 --> 00:52.790 |
|
今日だけでなく、 あと2週間もすれば、 たくさんのチャートが表示されるでしょう。 ウェイトとバイアスにアクセスして、 |
|
|
|
00:52.790 --> 00:57.950 |
|
無料アカウントにサインアップするか、 すでにお持ちかもしれませんが、 |
|
|
|
00:57.950 --> 01:09.750 |
|
アバター・メニューの設定メニューから、 OpenAIなどで使っているAPIキーとよく似たAPIキーを作成できます。 |
|
|
|
01:10.050 --> 01:15.870 |
|
そしてOpenAIのダッシュボードに行き、 ノートブックのここにリンクを貼っておきます。 |
|
|
|
01:15.900 --> 01:25.590 |
|
そのページを開くと、 ページの真ん中あたりに統合という項目があり、 ウェイトとバイアスのキーを入力する欄がある。 |
|
|
|
01:25.590 --> 01:36.600 |
|
そうすれば、 あなたのOpenAIのアカウントが重みとバイアスに接続され、 重みとバイアスで起こっている微調整のプロセスを見ることができます。 |
|
|
|
01:36.630 --> 01:38.520 |
|
それは素晴らしいことだ。 |
|
|
|
01:38.520 --> 01:41.670 |
|
だから強く勧めるが、 必須ではない。 |
|
|
|
01:41.700 --> 01:48.660 |
|
それができたと仮定して、 重みとバイアスの統合を設定するこの行を実行したい。 |
|
|
|
01:48.900 --> 01:50.280 |
|
それに名前をつけることもできる。 |
|
|
|
01:50.280 --> 01:53.520 |
|
私はこのプロジェクトの名前を一般的に呼んでいる。 |
|
|
|
01:53.520 --> 01:55.410 |
|
全体的に、 このプロジェクトはたくさんやることになるだろう。 |
|
|
|
01:55.410 --> 02:00.360 |
|
私はプライサーと呼んでいるが、 今回はGPTプライサーと呼ぶことにする。 |
|
|
|
02:00.390 --> 02:06.720 |
|
GPTは商品の価格設定をするために微調整されたバージョンです。 |
|
|
|
02:06.750 --> 02:08.640 |
|
だから、 それを実行するんだ。 |
|
|
|
02:08.880 --> 02:11.790 |
|
今、 セッティングをしているところだ。 |
|
|
|
02:11.820 --> 02:13.920 |
|
しかし、 これだ。 |
|
|
|
02:13.920 --> 02:15.450 |
|
この人々だ。 |
|
|
|
02:15.450 --> 02:18.780 |
|
実際に微調整を行うのはこの時期だ。 |
|
|
|
02:18.810 --> 02:29.430 |
|
私たちは新しいOpenAI APIを呼び出します。 これは、 OpenAIのファインチューニング・ドットジョブ・ドットが作成する大きな大きなものです。 |
|
|
|
02:29.700 --> 02:31.140 |
|
そして、 私たちが通過するもの。 |
|
|
|
02:31.140 --> 02:36.390 |
|
だから、 ファイルをアップロードして戻ってきたのがこれなんだ。 |
|
|
|
02:36.390 --> 02:37.560 |
|
IDがある。 |
|
|
|
02:37.560 --> 02:43.500 |
|
ファイルを識別するIDがあることをお見せしよう。 |
|
|
|
02:45.690 --> 02:47.100 |
|
これがファイル名だ。 |
|
|
|
02:47.100 --> 02:50.040 |
|
OpenAIに関しては、 私たちはもっとシンプルな名前を考えていた。 |
|
|
|
02:50.040 --> 02:52.140 |
|
これがファイル・オブジェクト全体だ。 |
|
|
|
02:52.170 --> 02:53.940 |
|
少し前に見たのを覚えているだろう。 |
|
|
|
02:53.970 --> 02:57.390 |
|
これがファイルIDで、 これがその詳細のすべてだ。 |
|
|
|
02:57.570 --> 02:59.520 |
|
これがIDだ。 |
|
|
|
02:59.520 --> 03:02.760 |
|
そこで、 トレーニングファイルのIDを提供する。 |
|
|
|
03:02.760 --> 03:05.370 |
|
また、 検証ファイルのIDも提供する。 |
|
|
|
03:05.400 --> 03:13.010 |
|
今回のケースでも厳密には必要ないが、 良い練習方法であり、 将来的に微調整を行う際には必ず行うことになるだろう。 |
|
|
|
03:13.040 --> 03:13.820 |
|
おそらくね。 |
|
|
|
03:13.940 --> 03:15.500 |
|
我々はモデルを提供する。 |
|
|
|
03:15.530 --> 03:21.140 |
|
今、 私は多くの人にGPTを勧めているが、 その理由のひとつは推論で実行した方が安くなるからだ。 |
|
|
|
03:21.140 --> 03:23.780 |
|
せいぜい2、 3セントだろう。 |
|
|
|
03:23.900 --> 03:31.820 |
|
それと、 以前、 オリジナルモデルを走らせたときのことを思い出してほしいんだが、 GPTは大柄な選手用とミニ用でかなり似たようなパフォーマンスで、 |
|
|
|
03:31.820 --> 03:36.650 |
|
両者に大きな差はなかったんだ。 |
|
|
|
03:36.650 --> 03:41.300 |
|
だから、 小さいほうを微調整したほうがよさそうだ。 |
|
|
|
03:41.390 --> 03:44.180 |
|
種があるということは、 再現性があるということだ。 |
|
|
|
03:44.510 --> 03:46.070 |
|
ええと、 エポック数。 |
|
|
|
03:46.070 --> 03:47.090 |
|
だからこれはオプションだ。 |
|
|
|
03:47.090 --> 03:54.020 |
|
エポック数を指定する必要はない。 |
|
|
|
03:54.050 --> 03:55.910 |
|
自分で決めさせればいい。 |
|
|
|
03:55.910 --> 04:02.480 |
|
通常推奨されているよりも500データポイント多い、 かなりの量のデータを提供しているので、 |
|
|
|
04:02.480 --> 04:04.340 |
|
1つに修正したい。 |
|
|
|
04:04.490 --> 04:08.230 |
|
それで、 複数のエポックをやる意味がないと思ったんだ。 |
|
|
|
04:08.230 --> 04:15.320 |
|
もっとやりたいと思ったら、 何度もエポックするのではなく、 たくさん持っているトレーニングデータの量を増やせばいいのだ。 |
|
|
|
04:15.440 --> 04:18.890 |
|
ここで重みとバイアスの統合を指定する。 |
|
|
|
04:18.890 --> 04:23.120 |
|
ウェイトやバイアスを使いたくない場合は、 この行を完全に削除することだけは避けてください。 |
|
|
|
04:23.540 --> 04:31.280 |
|
それから、 サフィックスはオプションで、 作成するモデルの名前に含めるだけです。 |
|
|
|
04:31.430 --> 04:35.300 |
|
ただ、 モデルにちゃんとした名前をつけたいなら、 できることだ。 |
|
|
|
04:35.540 --> 04:37.940 |
|
ええと、 それだけなんだ。 |
|
|
|
04:37.940 --> 04:42.200 |
|
ハイパーパラメーターという言葉に出会ったことがないかどうかだけ書いておこう。 |
|
|
|
04:42.230 --> 04:49.970 |
|
ハイパーパラメーターとは、 データサイエンティストたちが、 トレーニングがどのように機能するかをコントロールするための余分なノブやホイール、 |
|
|
|
04:49.970 --> 04:55.790 |
|
設定のことだ。 |
|
|
|
04:55.820 --> 04:59.600 |
|
追加で設定できるパラメータがあれば、 何でもいい。 |
|
|
|
04:59.630 --> 05:02.870 |
|
いろいろな可能性を試してみて、 状況が良くなるか悪くなるかを確認する。 |
|
|
|
05:02.870 --> 05:11.250 |
|
異なる値を試してみて、 それが良くなるか悪くなるかを見るこのプロセスは、 ハイパーパラメーターの最適化として知られている。 |
|
|
|
05:11.580 --> 05:13.680 |
|
ハイパーパラメーターのチューニングも。 |
|
|
|
05:13.980 --> 05:19.290 |
|
これはすべて、 試行錯誤を意味する非常に洒落た言葉だ。 |
|
|
|
05:19.290 --> 05:21.030 |
|
これが設定だと言っているんだ。 |
|
|
|
05:21.030 --> 05:23.640 |
|
それが良くなるのか悪くなるのか、 僕らにはわからない。 |
|
|
|
05:23.640 --> 05:27.180 |
|
これには何の理論もない。 |
|
|
|
05:27.180 --> 05:30.630 |
|
だから、 いろいろな可能性を試して、 何が起こるか見てみよう。 |
|
|
|
05:30.780 --> 05:32.460 |
|
しかし、 誰もそんなことは言いたがらない。 |
|
|
|
05:32.460 --> 05:37.260 |
|
だからみんなハイパーパラメーター最適化と言うんだ。 |
|
|
|
05:37.500 --> 05:39.750 |
|
だから、 そう呼ぶことにする。 |
|
|
|
05:39.840 --> 05:42.720 |
|
そのためにハイパーパラメーターを渡す。 |
|
|
|
05:42.720 --> 05:48.420 |
|
また、 ハイパーパラメーターの最適化を行い、 さまざまなエポックを試したいのであれば、 |
|
|
|
05:48.450 --> 05:50.250 |
|
そうすべきだろう。 |
|
|
|
05:50.250 --> 05:52.740 |
|
とにかく、 私は十分に話した。 |
|
|
|
05:52.740 --> 06:00.120 |
|
私たちはこの男を走らせ、 それが走ることを気に入り、 戻ってくるのは微調整の仕事だ。 |
|
|
|
06:00.420 --> 06:04.770 |
|
作成されたとき、 エラーはなかったと書いてある。 |
|
|
|
06:04.800 --> 06:05.760 |
|
まだだ。 |
|
|
|
06:05.940 --> 06:08.610 |
|
ええと、 誰もいないところで終わっている。 |
|
|
|
06:08.850 --> 06:12.750 |
|
ハイパーパラメータとエポック数です。 |
|
|
|
06:13.090 --> 06:14.740 |
|
それがモデルだ。 |
|
|
|
06:14.950 --> 06:19.390 |
|
それから、 私たちが持ち込んだファイル。 |
|
|
|
06:20.050 --> 06:26.050 |
|
ええと、 では、 ここに今あるすべての仕事をリストアップします。 |
|
|
|
06:26.050 --> 06:28.390 |
|
そして、 一番新しいものから始まる。 |
|
|
|
06:28.390 --> 06:40.600 |
|
このジョブを実行すると、 このジョブがこのジョブと一致することが確認できます。 |
|
|
|
06:40.600 --> 06:47.950 |
|
同じ仕事について話しているわけだが、 何が起こっているのか、 このどこかでわかるだろう? |
|
|
|
06:48.850 --> 06:53.380 |
|
ええと、 実は、 まず、 このジョブIDを覚えておく必要がないようにしましょう。 |
|
|
|
06:53.380 --> 06:56.050 |
|
ジョブIDを変数にしてみよう。 |
|
|
|
06:56.380 --> 06:58.420 |
|
ただ、 それが私たちの期待するものであることを確認してほしい。 |
|
|
|
06:58.420 --> 07:03.940 |
|
この仕事をプリントすれば、 IDはあそことあそこが一致する。 |
|
|
|
07:03.940 --> 07:09.280 |
|
これは現在のランの名前であり、 それを参照するために使用するジョブIDである。 |
|
|
|
07:09.280 --> 07:16.300 |
|
このリトリーブを呼び出して、 何が起こっているのか情報を得ることができる。 |
|
|
|
07:16.750 --> 07:19.570 |
|
ここから何が学べるか考えてみよう。 |
|
|
|
07:20.200 --> 07:25.240 |
|
ええと、 ここのどこかに "実行中 "と書いてあるはずだ。 |
|
|
|
07:27.040 --> 07:31.960 |
|
ええと、 でもとにかく、 何が起こっているのかが本当にわかる最も重要なことは、 |
|
|
|
07:31.960 --> 07:39.370 |
|
この次の行にある、 ジョブIDに渡されるイベントのリストです。 |
|
|
|
07:39.370 --> 07:42.880 |
|
そして、 今これを実行すれば、 本当にビジネスが見えてくる。 |
|
|
|
07:42.880 --> 07:44.680 |
|
まだ2回しか開催されていない。 |
|
|
|
07:44.890 --> 07:49.600 |
|
ええと、 そして、 一番新しいイベントが一番上に来るように順番にリストアップされているんだ。 |
|
|
|
07:49.600 --> 07:57.520 |
|
つまり、 ジョブの微調整とトレーニングファイルの検証という2つのイベントが発生した。 |
|
|
|
07:58.660 --> 08:04.840 |
|
そして次に起こるのは、 時間をかけてファイルを検証することだ。 |
|
|
|
08:04.840 --> 08:06.730 |
|
そしてトレーニングを開始するんだ。 |
|
|
|
08:06.730 --> 08:08.230 |
|
そこからが面白くなる。 |
|
|
|
08:08.260 --> 08:12.970 |
|
そして、 そのポイントに到達するまでに2、 3分かかりそうなので、 次のビデオのために休憩する。 |
|
|
|
08:12.970 --> 08:14.620 |
|
次のビデオでは、 それを見てみよう。 |
|
|
|
08:14.650 --> 08:16.180 |
|
トレーニングの実際 |
|
|
|
08:16.180 --> 08:17.770 |
|
向こうで会おう。
|
|
|