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.
 
 

373 lines
13 KiB

WEBVTT
00:00.620 --> 00:02.630
みんな、 行動の時だ。
00:02.660 --> 00:04.670
コラボを立ち上げたんだ。
00:04.670 --> 00:06.380
さあ、 7週目、 3日目だ。
00:06.410 --> 00:08.240
常にセットアップしている。
00:08.540 --> 00:12.920
モデル名を確認し、 いよいよ本番だ。
00:13.250 --> 00:19.940
ええと、 まず最初にすることは、 ハギング・フェイスにログインすること。
00:19.940 --> 00:23.810
そして、 ハギング・フェイスにログインした後、 皆さんがあまりご存じない、
00:23.810 --> 00:29.480
新しいこと、 素晴らしいウェイト&バイアス・プラットフォームにログインします。
00:29.690 --> 00:34.940
先週のウェイトとバイアスの考察の一環として、 すでに設定済みかもしれないが、 そうでなければ、
00:34.940 --> 00:36.830
とても簡単だ。
00:36.830 --> 00:38.150
もちろん無料だ。
00:38.150 --> 00:43.550
ここにリンクされているウェイトとバイアスのWとBのドットIをご覧ください。
00:43.550 --> 00:51.530
無料アカウントをセットアップして、 あなたの杖のAPIキー、 重みと偏りのAPIキーを見つけることができます。
00:51.530 --> 00:58.160
そして、 この南京錠のマークをクリックし、 Google Colabにシークレットとして追加します。
00:58.220 --> 01:03.840
そうしたくない場合は、 このノートブックに直接入力することもできます。
01:03.840 --> 01:05.850
しかし、 秘訣を使うことをお勧めする。
01:05.850 --> 01:09.990
ウェイトとバイアスを設定したら、 さあ始めよう。
01:10.020 --> 01:15.420
そしてデータセットをロードし、 そのデータセットが期待通りのものであることを素早くチェックすることができる。
01:15.450 --> 01:18.750
私たちはそれを期待しているし、 期待している。
01:18.780 --> 01:27.840
トレーニング・データ・ポイントの数を見てみよう。 40万個のトレーニング・データ・ポイントがある。
01:27.840 --> 01:29.040
一つ目を見てみよう。
01:29.040 --> 01:32.760
ただ、 私たちが期待する通りのものであることを確認してほしい。
01:32.760 --> 01:39.570
このトレーニング・データ・ポイントのテキストは、 私たちが期待しているプロンプトで、 その後に価格が続きます。
01:39.570 --> 01:45.120
そして、 この次のトークンを予測し、 それを的中させるためにモデルは必死になる。
01:45.510 --> 01:47.460
実際の価格もここにある。
01:47.460 --> 01:49.950
四捨五入しているのがわかるだろう。
01:49.950 --> 01:51.660
そして、 探していることを伝える。
01:51.660 --> 01:56.550
1ドル単位、 トークン単位、 1ドル単位でいくらかかりますか?
01:57.100 --> 01:58.360
そして値段だ。
01:58.390 --> 01:59.440
本当の価格だ。
01:59.440 --> 02:03.940
テストデータセットを見てみよう。
02:03.940 --> 02:06.400
しかし、 テストデータセットが非常に似ていることを覚えているだろう。
02:06.430 --> 02:08.020
ほんの小さな違いだ。
02:08.020 --> 02:10.480
ここに値段はない。
02:10.480 --> 02:12.070
値段はドルと書いてあるだけだ。
02:12.280 --> 02:16.360
そしてそれこそが、 我々のモデルが得意とするトレーニングなのだ。
02:16.750 --> 02:17.530
オーケー。
02:17.560 --> 02:24.880
ログインして、 weights and biasesにログインするように指示すると、 weights and Biasesプロジェクトがセットアップされます。
02:24.880 --> 02:33.160
というのも、 もし走り始めても、 ハグフェイスがこれをやってくれるからだ。
02:33.160 --> 02:45.580
しかし、 必要であれば、 コンフィグにいくつかのパラメータを渡して、 ウェイトやバイアスに表示される追加的なUMや属性を設定することもできるからだ。
02:45.580 --> 02:47.470
知っておくと便利なトリックだね。
02:47.560 --> 02:50.290
うーん、 でも、 とにかく、 これを実行するかどうかは自由だ。
02:50.320 --> 02:51.940
大した違いはない。
02:52.570 --> 02:55.310
じゃあ、 これは前にも見たね。
02:55.310 --> 03:01.310
このハイパーパラメーターを使って、 ビットとバイトのコンフィグを4ビット量子化に使うか、
03:01.340 --> 03:04.280
8ビットに使うかを決めるだけだ。
03:04.280 --> 03:06.320
もちろん4ビットで行く。
03:06.350 --> 03:08.390
ずっと下に行くんだ。
03:08.390 --> 03:13.100
そして、 トークナイザーとモデルをロードする。
03:13.160 --> 03:16.220
そして、 トークナイザーをロードするいつものコード。
03:16.220 --> 03:22.670
これは定型文のようなもので、 トレーナーに対して、 配列の最大長を満たすようにすべてのデータ・ポイントをパディングし、
03:22.700 --> 03:41.630
文末のトークンですべてのデータ・ポイントをパディングして、 配列のトークンの長さである182文字を埋めるように指示するものです。
03:41.630 --> 03:44.570
だから、 このトークンで右サイドを埋めるんだ。
03:44.960 --> 03:52.490
そしてこの1行は、 世代設定と呼ばれるものにパッドのトークンIDを設定するための、
03:52.520 --> 03:54.690
単なる定型文です。
03:54.690 --> 04:05.490
これを入れたのは、 後で警告が出るのを防ぐためだ。
04:05.490 --> 04:09.420
そうすることで、 不必要な警告が表示されるのを避けることができる。
04:10.290 --> 04:17.730
そして最後に、 いつものようにメモリーのフットプリントを印刷して、 それが5であることを確認する。 4ビット版のラマに期待される6GB、
04:17.730 --> 04:24.840
3. 180億パラメータモデル。
04:25.560 --> 04:27.300
さて、 ここでもうひとつ詭弁がある。
04:27.300 --> 04:29.610
データコレーターと呼ばれるものだ。
04:29.670 --> 04:46.230
つまり、 トレーニングをするときに、 価格を含む完全なシーケンスを渡すという狡猾な方法がある。
04:46.230 --> 04:47.940
しかし、 ちょっとした引っ掛かりがある。
04:47.940 --> 04:57.000
実際には、 ドル記号までのプロンプトのすべてのトークンを予測する方法についてモデルが学習することは気にしない。
04:57.000 --> 05:00.060
トークンを予測する方法を学ばせたいんだ。
05:00.060 --> 05:05.790
だから、 商品の説明を書くのがどれだけ上手かを見るのに多くの時間を費やしてほしくないし、
05:05.790 --> 05:10.200
価格も覚えてほしくない。
05:10.380 --> 05:15.120
そのためには、 マスクというものをセットアップする必要があるんだ。
05:15.270 --> 05:23.310
トレーナーに「プロンプトについて学ぶ必要はない。
05:23.310 --> 05:27.960
しかし、 ドル記号のすぐ後にあるこのトークンを予測する方法を学ぼう。
05:27.960 --> 05:36.390
マスクのセッティングは少々手こずり、 トークンをいじくり回す必要がある。
05:36.390 --> 05:42.330
しかし幸運なことに、 ハギング・フェイスは、 それをすべてやってくれるちょっとしたユーティリティで、 実に簡単にしてくれた。
05:42.330 --> 05:46.500
そして、 それはデータ・コレーターと呼ばれ、 完成度の高いものである。
05:46.830 --> 05:49.420
LMは......僕らが手に入れたものだ。
05:49.450 --> 05:51.970
完成させたいものしかないんだ。
05:51.970 --> 05:53.380
この特別な文章。
05:53.380 --> 05:59.800
どのように機能するかというと、 レスポンス・テンプレートと呼ばれるものを考え出すのです。 とても派手に聞こえますが、
05:59.800 --> 06:06.700
それは単に、 次に何が来るかを予測してほしいことを示すテキストの塊を意味します。
06:06.700 --> 06:10.480
そして私たちの場合、 それは単純に価格がドル記号であるということだ。
06:10.480 --> 06:13.120
その次を予測させたい。
06:13.120 --> 06:18.490
そこで、 それをレスポンス・テンプレートと呼ばれるものに入れ、 レスポンス・テンプレートだけを渡して、
06:18.490 --> 06:23.800
データ・コレーターのインスタンスを作成する。
06:23.800 --> 06:33.730
そして、 トークナイザーも指定しなければならない。 トークナイザーは、 トレーナーに入力されるマスクされたデータの最終的なセットを構築するためにそれを使用する。
06:33.730 --> 06:35.230
すぐにわかるだろう。
06:35.230 --> 06:41.320
だからこれは超シンプルで、 裏ではかなり高度なことをやっていて、 僕らにとっては簡単なことなんだ。
06:42.010 --> 06:42.910
分かった。
06:43.270 --> 06:46.750
そしてついに、 私たちにとって最後の大きな瞬間がやってきた。
06:46.750 --> 06:50.090
これはたくさんのコードがあるように見えるだろうが、 実際にはそれほど多くはない。
06:50.270 --> 06:56.090
これからトレーナーを呼び出すので、 2組のパラメーターを渡さなければならない。
06:56.090 --> 06:58.460
そのひとつがローラのコンフィグだ。
06:58.460 --> 07:02.960
ハイパーパラメーターは、 ローラのトレーニング方法に関係するものだ。
07:02.960 --> 07:08.390
そしてもうひとつは、 psftコンフィグによる微調整だ。
07:08.390 --> 07:15.140
コンフィグは、 トレーニングがどのように機能するかについての一般的なもので、 私がやったことは、
07:15.140 --> 07:24.560
基本的に、 アルファ値やドロップアウトなど、 ノートブックの一番上で定義した定数から引っ張ってくるように設定しました。
07:24.560 --> 07:30.110
これらは重要なハイパーパラメーターではない。
07:30.140 --> 07:40.610
ローラのパラメーターには、 もちろんアルファを渡していることがわかるだろう。
07:40.610 --> 07:46.950
ローラの設定、 トレーニングパラメータ、 SFTの設定には、 ラン名などが含まれています。
07:46.950 --> 07:50.160
バッチサイズは何エポックですか?
07:50.310 --> 07:52.170
ええと、 超重要な16番。
07:52.200 --> 07:56.610
私の場合、 T4ボックスを使っているのであれば、 これはあなたのためのものかもしれない。
07:56.850 --> 08:00.660
グラデーションの蓄積は、 僕らにとっては大事なことなんだ。
08:00.750 --> 08:06.360
そして、 私たちが使うことにしたコサイン・スケジューラーの学習率などだ。
08:06.510 --> 08:12.960
それから、 この下の方にある、 ハブにプッシュするように言っているんだ。
08:13.050 --> 08:19.050
保存を行うたびに、 つまりバッチ・ステップの5000回ごとに、 このモデルをハブにプッシュして、
08:19.050 --> 08:23.520
ハブに一連の保存を行うようにします。
08:23.520 --> 08:26.220
そして、 それぞれのポイントで我々のモデルを見ることができる。
08:26.520 --> 08:32.700
そして、 この名前をつけてほしいと頼み、 非公開のレポにしたいと言って、 そのレポから素晴らしい結果が出たと満足するまで、
08:32.700 --> 08:36.570
まだ公開しないようにする。
08:37.710 --> 08:40.740
そしてこれが最後のセリフだ。
08:40.740 --> 08:43.990
SFTトレーナーというものを立ち上げた。
08:43.990 --> 08:47.230
私たちはほんのわずかなことで合格する。
08:47.260 --> 08:49.630
第一に、 ベースモデルを知る必要がある。
08:49.630 --> 08:54.940
私たちが微調整したい根本的なモデルとは、 ラマ3である。 1.
08:55.330 --> 08:57.490
その2 トレーニングデータとは何か?
08:57.520 --> 08:58.510
私たちはそれをパスする。
08:58.510 --> 09:00.430
ローラのパラメーターは?
09:00.430 --> 09:09.430
これには、 アルファ値、 r、 ドロップアウト、 トークナイザー、 トレーニング・パラメーターが設定されている。
09:09.430 --> 09:17.770
そして最後にコレーターを渡す。 コレーターは、 ドル記号の値段を探すことを知っていて、 それを教えてくれる卑劣なオブジェクトだ。
09:17.800 --> 09:20.110
その前をわざわざ予測する必要はない。
09:20.440 --> 09:22.570
次のことを心配する。
09:22.990 --> 09:27.400
それで、 これでトレーナーが決まった。
09:27.400 --> 09:36.190
そして次のビデオでは、 この単線の微調整列車を走らせる。
09:36.310 --> 09:37.990
それは素晴らしい瞬間だ。
09:37.990 --> 09:42.070
では、 さっそく行ってみよう。