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.
 
 

211 lines
7.6 KiB

WEBVTT
00:00.950 --> 00:05.870
そして今、 qとqラウラの量子化について話している。
00:05.900 --> 00:07.730
Qは量子化された量子化の略。
00:07.760 --> 00:08.420
ローラ
00:08.420 --> 00:12.620
確か3週目に量子化について少し触れた。
00:12.620 --> 00:14.480
だから、 覚えていることもあるだろう。
00:14.480 --> 00:17.540
でも、 これからは本音で話そう。
00:18.080 --> 00:20.630
問題はここからだ。
00:20.630 --> 00:28.700
我々はこのような小さなモデル、 つまり80億パラメータ版のラマ3で作業している。 1.
00:28.700 --> 00:36.950
私たちは、 より少ない次元の行列を扱うことで、 より多くのメモリを確保できるよう、 ローラという賢いスキームを考え出した。
00:37.130 --> 00:42.740
しかし問題は、 そのベースモデルでさえ、 その小型版、 80億版でさえ、
00:42.740 --> 00:46.730
32GBのラムを消費するということだ。
00:46.730 --> 00:52.880
これは80億個の浮動小数点数で、 それぞれ32ビット長だ。
00:53.000 --> 00:56.480
それでGPUがいっぱいになるんだ。
00:56.510 --> 01:05.530
実際、 T4ボックスで使用される安価なGPUには15GBのメモリしか搭載されていないため、 ベースモデル自体にすら適合しない。
01:05.530 --> 01:08.740
すぐにメモリ不足になるから、 それは問題だ。
01:08.770 --> 01:13.570
ローラは僕らにとって物事をより良くするのにとても役に立つが、 ベースモデル自体をメモリに収めることもできないので、
01:13.570 --> 01:15.880
十分とは言えない。
01:15.880 --> 01:23.920
というのも、 80億という数字は、 ある世界では小さなモデルサイズかもしれないが、 それでも膨大な数のパラメーターがあることに変わりはないからだ。
01:24.190 --> 01:27.940
そして、 それが私たちに課題を与えている。
01:28.240 --> 01:31.810
そこで驚くべき発見がなされた。
01:31.810 --> 01:33.970
それが私たちの仕事だ。
01:34.120 --> 01:37.870
そして、 最初は、 それは本当であるにはあまりにも良すぎるように聞こえる。
01:37.900 --> 01:40.480
これはケーキを食べながらケーキを食べる方法のようだ。
01:40.480 --> 01:41.950
そして、 それはある種のものだ。
01:42.190 --> 01:51.310
つまり、 80億のパラメーターがあるのだから、 80億のパラメーターを使えばいいという考え方もある。
01:51.310 --> 01:58.600
40億のパラメーターを持つモデルのようにパラメーターを少なくしようとすれば、 モデルのパワーの多くを失うことになる。
01:58.600 --> 02:01.900
この80億のパラメーターは、 私たちにたくさんのノブを与えてくれる。
02:01.930 --> 02:04.270
それはこの非常に巧妙な建築にある。
02:04.270 --> 02:05.800
大きな力を与えてくれる。
02:05.830 --> 02:06.370
分かった。
02:06.370 --> 02:09.080
だから、 パラメーターの数を減らすのはやめよう。
02:09.080 --> 02:15.200
そうする代わりに、 それぞれのパラメーターの精度を下げよう。
02:15.230 --> 02:21.050
非常に細かく砥石を回すことができる代わりに、 カチッ、 カチッ、 カチッ、 カチッ、 カチッ、 カチッ、 カチッ、 カチッ、 カチッ、 カチッ、 カチッ、 カチッ、
02:21.050 --> 02:25.100
カチッ、 カチッ、 カチッ、 カチッ、 カチッ、 といくつかの設定を通過させることができるようにするんだ。
02:25.310 --> 02:32.450
それで、 それぞれのウエイトの精度を下げて、 ウエイトの数は同じにしようと考えたんだ。
02:32.480 --> 02:37.010
論理的に考えればそうかもしれないが、 情報量を減らしているだけだ。
02:37.010 --> 02:43.730
確かに、 情報量が半分になれば、 ウエイトの数が半分になるのと似たようなものだろう。
02:43.760 --> 02:46.280
そうではないことがわかったんだ。
02:46.280 --> 02:52.520
どんな理由であれ、 精度を下げればニューラルネットワークの質は多少落ちるが、
02:52.520 --> 02:55.100
思ったほどではない。
02:55.100 --> 02:57.920
まだ多くのパワーを保っている。
02:58.160 --> 03:06.560
そして、 これは同じパラメーター数でより大きなモデルをメモリにフィットさせるための素晴らしいトリックであることがわかった。
03:06.560 --> 03:10.220
精度が低いというだけで、 より少ないメモリしか消費しない。
03:10.580 --> 03:14.210
だから、 驚くほどうまく機能している。
03:14.300 --> 03:21.020
実際、 通常の32ビットの浮動小数点数を8ビットに減らしても、
03:21.020 --> 03:26.000
十分なパフォーマンスを得ることができる。
03:26.000 --> 03:29.540
そして、 ここからが本当にクレイジーに聞こえ始めるところだ。
03:29.630 --> 03:32.480
4ビットまで減らすことができる。
03:32.480 --> 03:35.210
つまり、 それぞれの数字は単なる4ビットの数字なのだ。
03:35.240 --> 03:42.950
整数の観点から考えるなら、 それぞれの数字が0から15まで進んでいるようなものだ。
03:43.160 --> 03:45.020
ただ、 整数で。
03:45.560 --> 03:47.510
それだけ精度が低いということだ。
03:47.510 --> 03:51.620
16の設定があるだけのクリックとかね。
03:52.010 --> 03:55.190
うーん、 それでもかなりいいパフォーマンスが得られる。
03:55.340 --> 03:55.670
もちろんだ。
03:55.670 --> 04:00.770
品質が落ちるのは少しだが、 ほんの少しだ。
04:01.010 --> 04:03.200
それで、 これが直感だったんだ。
04:03.200 --> 04:10.310
そしてもちろん、 これによって必要なメモリが劇的に削減され、 より大きなモデルをメモリに収めることができるようになる。
04:10.790 --> 04:14.420
細かい技術的なことをいくつか挙げておこう。
04:14.780 --> 04:17.810
そのひとつが、 先ほど話したクリックスイッチだ。
04:17.810 --> 04:20.510
0から15までの数字のようなものだと考えればいい。
04:20.510 --> 04:31.940
一般的には、 整数として解釈されることはなく、 4ビットが浮動小数点数として使用される。
04:31.940 --> 04:34.970
そして、 現実の例を見ればわかるだろう。
04:35.360 --> 04:39.740
そして、 もうひとつ指摘しておきたいのは、 カラーが初めて登場した当初は、
04:39.770 --> 04:53.390
私が理解していなかったことなのですが、 これはベースモデルを量子化しているのであって、 ローラ・アダプターを量子化しているわけではないということです。
04:53.570 --> 05:02.300
つまり、 ベースモデルの精度を下げて、 この巨大で素晴らしいベースモデルをメモリに収まるようにしようという話なんだ。
05:02.300 --> 05:04.490
それがクー・ロラなんだ。
05:04.520 --> 05:05.840
それが量子化だ。
05:05.840 --> 05:10.250
あと少しでラボで見ることができるのだから、 よりリアルに感じられるだろう。
05:10.250 --> 05:16.640
その前に、 次のビデオで3つの重要なハイパーパラメーターについてお話ししたいと思います。