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 では、 さっそく行ってみよう。