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.
367 lines
13 KiB
367 lines
13 KiB
WEBVTT |
|
|
|
00:00.860 --> 00:08.780 |
|
JupyterLabのお気に入りの場所に来て、 コーディングの準備をしている。 |
|
|
|
00:08.810 --> 00:15.800 |
|
まず目につくのは、 2日目のJupyter Notebookがないことだろう。 |
|
|
|
00:15.830 --> 00:22.610 |
|
実際、 2日目のJupyterノートブックが5つある。 |
|
|
|
00:22.730 --> 00:31.670 |
|
また、 いつもよりノートブックを読むスピードが少し速くなるかもしれない。 |
|
|
|
00:31.910 --> 00:41.390 |
|
さて、 今日は商品の価格を推定するためのより複雑なアプローチを構築します。 |
|
|
|
00:41.630 --> 00:49.970 |
|
ええと、 今日の最大のポイントは、 同じことをするためのラグ・パイプライン・ソリューションにアプローチしようとすることだ。 |
|
|
|
00:50.030 --> 00:55.520 |
|
直感的には、 これはラグにとって本当に素晴らしいユースケースだと思う。 |
|
|
|
00:55.520 --> 01:01.160 |
|
トレーニング・データ・セットには40万点の商品の価格がある。 |
|
|
|
01:01.220 --> 01:08.810 |
|
そのすべてをデータストアに置いて、 モデルを呼び出すときに、 似たような製品をいくつか与えて、 この電動歯ブラシの価格を教えてください、 |
|
|
|
01:08.810 --> 01:13.460 |
|
と言ったらどうだろう? |
|
|
|
01:13.460 --> 01:22.070 |
|
ちなみに、 ここに学習データから似たような電動歯ブラシを5つ選び、 それをモデルに与えて助けてもらう。 |
|
|
|
01:22.070 --> 01:24.890 |
|
そのためにフロンティア・モデルを使うのはまったく理にかなっている。 |
|
|
|
01:24.890 --> 01:32.030 |
|
そして、 いくつかの類似点を武器に、 我々はフロンティアモデルに大きな先鞭をつけていることを想像してほしい。 |
|
|
|
01:32.120 --> 01:40.100 |
|
正確なデータの宝庫を手に入れたのだから。 |
|
|
|
01:40.130 --> 01:44.090 |
|
だから、 スウィートスポットにぴったりなんだ。 |
|
|
|
01:44.180 --> 01:50.030 |
|
そこで、 このノート、 2. 0ノートブックの8週目のフォルダに、 |
|
|
|
01:50.030 --> 01:57.260 |
|
40万トレーニング・データ・ポイントを含むベクトル・データ・ストアを作成する。 |
|
|
|
01:57.260 --> 01:58.370 |
|
だから、 それは大きなことなんだ。 |
|
|
|
01:58.370 --> 02:02.060 |
|
第5週よりもずっと多い。 |
|
|
|
02:02.540 --> 02:05.810 |
|
次のノートでは2日目。 1. |
|
|
|
02:05.810 --> 02:09.380 |
|
2Dで視覚化し、 次に3Dで視覚化する。 |
|
|
|
02:09.500 --> 02:10.910 |
|
これがクイックノートだ。 |
|
|
|
02:10.910 --> 02:16.910 |
|
でも、 2日目にこういったことを肌で感じられるのは素晴らしいことだ。 3. |
|
|
|
02:16.940 --> 02:20.330 |
|
そしてラグ・パイプラインを構築し、 テストする。 |
|
|
|
02:20.330 --> 02:25.910 |
|
そして2日目。 4 これが1 in 1ノートで多くのことを行っているところです。 |
|
|
|
02:25.940 --> 02:31.970 |
|
第6週に見たランダムフォレスト・プロセッサーを復活させる。 |
|
|
|
02:32.270 --> 02:34.760 |
|
そして、 しかし、 我々はその改良版をやるつもりだ。 |
|
|
|
02:34.760 --> 02:38.780 |
|
そして、 すべてのモデルを可能にするアンサンブルと呼ばれるものを構築する。 |
|
|
|
02:38.780 --> 02:41.660 |
|
基本的には、 一緒に投票するようなものだと考えればいい。 |
|
|
|
02:41.690 --> 02:47.660 |
|
彼らは一緒に問題に取り組んでいて、 その中から最良の結果をもたらす直線的な組み合わせを選んでいるのだ。 |
|
|
|
02:47.660 --> 02:49.460 |
|
だから、 乗り切らなければならないことがたくさんある。 |
|
|
|
02:49.460 --> 02:57.410 |
|
私たちはすでに、 専門のLLMという形で強力な製品プロセッサを構築していることをお伝えしたかったのです。 |
|
|
|
02:57.410 --> 03:00.590 |
|
それなのに、 なぜこんなに時間をかけているのだろう? |
|
|
|
03:00.590 --> 03:02.060 |
|
答えは簡単だ。 |
|
|
|
03:02.090 --> 03:03.620 |
|
さっき言ったとおりだ。 |
|
|
|
03:03.620 --> 03:07.400 |
|
これは、 自分の専門性を確固たるものにすることだと考えている。 |
|
|
|
03:07.400 --> 03:10.790 |
|
ボロ雑巾でもっと練習できるようにするためだ。 |
|
|
|
03:11.000 --> 03:20.840 |
|
同じプロジェクトに携わりながら、 エージェント・ベースの機能を構築する他の種類の側面について、 より多くの練習を積むことができる。 |
|
|
|
03:20.840 --> 03:25.370 |
|
だから、 私たちは自分たちが何をしているのかわかっているし、 満足している。 |
|
|
|
03:25.370 --> 03:29.180 |
|
だから、 私たちがこれからやろうとしていることへのモチベーションを高めてもらえればと思う。 |
|
|
|
03:29.750 --> 03:38.300 |
|
さて、 これ以上説明することなく、 いくつかのインポート環境変数を実行し、 私たちが知っている顔を抱きしめてログインする。 |
|
|
|
03:38.300 --> 03:47.930 |
|
そしてまた、 トレーニング・データを読み込むつもりだ。 単純化するために、 以前から持っているピックル・ファイルをトレーニング・データに読み込む。 |
|
|
|
03:47.930 --> 03:53.180 |
|
そこで、 トレーニング・データの最初のポイントである燃料ポンプ・モジュールを見てみよう。 |
|
|
|
03:53.180 --> 03:56.930 |
|
これを覚えていれば、 プロンプトを呼ぶことができる。 |
|
|
|
03:56.930 --> 04:00.980 |
|
そして、 トレーニングでおなじみのプロンプトが表示される。 |
|
|
|
04:00.980 --> 04:02.660 |
|
1ドル単位でいくらかかったか。 |
|
|
|
04:02.660 --> 04:07.280 |
|
そして、 価格と価値がそこにある。 |
|
|
|
04:07.280 --> 04:08.210 |
|
オーケー。 |
|
|
|
04:08.240 --> 04:11.760 |
|
これでChromaデータストアが完成した。 |
|
|
|
04:11.760 --> 04:20.010 |
|
5週目にこのストアを作ったんだけど、 |
|
|
|
04:20.010 --> 04:31.740 |
|
123個のドキュメントがあったのを覚えているかな。 |
|
|
|
04:31.740 --> 04:36.840 |
|
そこで今回は、 400,000ドキュメントのクロマ・データストアを作成する。 |
|
|
|
04:36.840 --> 04:37.830 |
|
多いね。 |
|
|
|
04:37.890 --> 04:38.940 |
|
チャンクアップするつもりはない。 |
|
|
|
04:38.970 --> 04:39.840 |
|
もちろん、 その必要はない。 |
|
|
|
04:39.870 --> 04:41.610 |
|
これらはすでに小さな塊だ。 |
|
|
|
04:41.760 --> 04:46.530 |
|
各製品は、 それぞれのアイテムとしてクロマに入る。 |
|
|
|
04:46.800 --> 04:56.190 |
|
だから、 ラングチェーンをこのボロパイプラインに使うつもりはない。 |
|
|
|
04:56.280 --> 05:00.270 |
|
ええと、 ラングチェーンは良い、 有用な抽象化を与えてくれるが、 その必要はない。 |
|
|
|
05:00.300 --> 05:05.970 |
|
そして、 今のような熟練したレベルになれば、 Llmsを直接扱うだけでよくなり、 |
|
|
|
05:05.970 --> 05:12.750 |
|
その上に構築される抽象化レイヤーは必ずしも必要ではなくなる。 |
|
|
|
05:13.110 --> 05:15.900 |
|
だから、 そうするつもりなんだ。 |
|
|
|
05:15.990 --> 05:25.560 |
|
クロマデータベースを作成します。 |
|
|
|
05:26.520 --> 05:30.810 |
|
ええと、 私はもっと早くその定数を外していたかもしれない。 |
|
|
|
05:30.810 --> 05:32.190 |
|
今すぐそうしよう。 |
|
|
|
05:32.220 --> 05:33.330 |
|
謝罪する。 |
|
|
|
05:33.600 --> 05:42.210 |
|
ええと、 ここにもうひとつ、 DBイコール商品アンダースコア・ベクトル・ストアの定数を追加します。 |
|
|
|
05:42.930 --> 05:47.760 |
|
このノートを使いやすくするために整理していたんだけど、 整理しすぎたんだ。 |
|
|
|
05:48.150 --> 05:50.070 |
|
スペルが正しければ、 私は製品を持っている。 |
|
|
|
05:50.070 --> 05:51.090 |
|
ベクターストア |
|
|
|
05:51.120 --> 05:52.620 |
|
これでよし。 |
|
|
|
05:52.710 --> 05:55.710 |
|
よし、 じゃあ戻ろう。 |
|
|
|
05:55.740 --> 05:57.270 |
|
一瞬の気晴らし。 |
|
|
|
05:57.270 --> 06:00.840 |
|
そこで、 そのパスでクロマ・データ・ストアを作成する。 |
|
|
|
06:00.870 --> 06:02.070 |
|
これでよし。 |
|
|
|
06:02.220 --> 06:06.450 |
|
存在するかどうかをチェックし、 すでに存在する場合は削除する。 |
|
|
|
06:06.540 --> 06:07.680 |
|
私はそれを実行するつもりはない。 |
|
|
|
06:07.680 --> 06:10.950 |
|
それは私が作成したこの製品ベクターストアを削除します。 |
|
|
|
06:10.950 --> 06:13.170 |
|
そして少し時間がかかる。 |
|
|
|
06:13.230 --> 06:15.060 |
|
それほど時間はかからなかったけど。 |
|
|
|
06:15.060 --> 06:17.940 |
|
でも、 これはあなた自身に任せるわ。 |
|
|
|
06:18.450 --> 06:23.670 |
|
そこで私たちは、 新しい別のタイプのエンベッディングを使おうとしている。 |
|
|
|
06:23.670 --> 06:27.990 |
|
私たちはセンテンス・トランスフォーマーというものを使おうと思っている。 |
|
|
|
06:27.990 --> 06:34.800 |
|
これは、 テキストチャンクを384次元にマッピングするハグフェイスの便利なモデルだ。 |
|
|
|
06:34.920 --> 06:38.310 |
|
それに、 セマンティック検索などには理想的だ。 |
|
|
|
06:38.310 --> 06:41.640 |
|
このベクトル埋め込みを生成するのは変換モデルだ。 |
|
|
|
06:41.640 --> 06:47.130 |
|
以前、 ラグ・パイプラインを構築したときにOpenAIのエンベッディングを使ったことを覚えているかもしれない。 |
|
|
|
06:47.130 --> 06:52.980 |
|
だから、 この2つを一緒に比べてみると、 このハグしている顔のほうは、 あー、 |
|
|
|
06:52.980 --> 06:54.330 |
|
次元が違う。 |
|
|
|
06:54.330 --> 07:00.240 |
|
だから、 OpenAIのエンベッディングほど正確ではないだろう。 |
|
|
|
07:00.240 --> 07:03.690 |
|
でも、 無料だし、 速いし、 ローカルで動かせる。 |
|
|
|
07:03.690 --> 07:09.420 |
|
この最後のポイントは非常に重要だ。 |
|
|
|
07:09.420 --> 07:19.220 |
|
例えば、 5週目に私が指定したプロジェクトに取り組んでいて、 Eメールなど自分のものを使って自分だけのラグ・データベースを構築しようとしているとする。 |
|
|
|
07:19.220 --> 07:28.220 |
|
OpenAIにすべてを送信するのは、 安全であるべきとはいえ避けたいかもしれない。 |
|
|
|
07:28.220 --> 07:31.100 |
|
そこで、 ハギング・フェイスのモデルをロードする。 |
|
|
|
07:31.130 --> 07:36.740 |
|
これは、 将来的には無視してもいいような警告を与えている。 |
|
|
|
07:37.010 --> 07:42.920 |
|
このモデルを作成したら、 model dot encodeを呼び出すことができます。 |
|
|
|
07:42.950 --> 07:47.000 |
|
テキスト文書のリストを渡す。 |
|
|
|
07:47.000 --> 07:49.220 |
|
返ってくるのはnumpyの配列だ。 |
|
|
|
07:49.220 --> 07:54.590 |
|
そして、 その中から最初の1枚を抜き取るだけで、 私のベクトルを得ることができる。 |
|
|
|
07:54.590 --> 07:55.550 |
|
そして、 かなり早かった。 |
|
|
|
07:55.550 --> 07:57.680 |
|
そして、 バルクでもうまく機能する。 |
|
|
|
07:57.680 --> 08:06.080 |
|
このベクトルの長さを見ると、 384次元あることがわかる。 |
|
|
|
08:06.110 --> 08:08.450 |
|
印刷すればいい。 |
|
|
|
08:08.450 --> 08:09.920 |
|
大きな古いベクトルになるだろう。 |
|
|
|
08:09.920 --> 08:10.490 |
|
あれだ。 |
|
|
|
08:10.490 --> 08:18.260 |
|
だから、 そのベクトルは、 ある意味では、 多次元的な反映である方法で、 数字でうまくハイそこに表している |
|
|
|
08:18.260 --> 08:21.260 |
|
従った LMに。 |
|
|
|
08:21.470 --> 08:27.770 |
|
だから、 それは......その......遊んで、 感覚をつかむ価値がある。 |
|
|
|
08:28.430 --> 08:33.920 |
|
つまり、 これから書くユーティリティ・メソッドの説明は、 アイテム(項目のひとつ)を受け取り、 |
|
|
|
08:33.920 --> 08:36.950 |
|
それを単なるテキストの塊に変えるものだ。 |
|
|
|
08:36.950 --> 08:41.600 |
|
最初のトレーニングポイントを見て、 そのプロンプトを見ると、 |
|
|
|
08:41.600 --> 08:45.320 |
|
プロンプトはこのように表示されます。 |
|
|
|
08:45.350 --> 08:54.320 |
|
その代わりに、 その商品の説明を呼び出すと、 同じものが表示されるだけだが、 |
|
|
|
08:54.320 --> 08:59.870 |
|
前面に何も表示されず、 価格も表示されない。 |
|
|
|
09:00.050 --> 09:05.660 |
|
そのデータをベクター・データ・ストアに格納する。 |
|
|
|
09:05.900 --> 09:08.720 |
|
そのコードを実行すると、 しばらく時間がかかる。 |
|
|
|
09:08.720 --> 09:13.910 |
|
そして、 それが完成する頃には、 ベクター・データ・ストアに登録され、 ビジネスの準備が整う。 |
|
|
|
09:13.910 --> 09:16.820 |
|
すでに実行したので、 ベクター・データ・ストアが作成されている。 |
|
|
|
09:16.820 --> 09:18.380 |
|
左側に見える。 |
|
|
|
09:18.380 --> 09:19.760 |
|
今すぐそうすべきだ。 |
|
|
|
09:19.760 --> 09:22.580 |
|
それが終わったら、 また次のビデオで会おう。
|
|
|