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.
151 lines
5.8 KiB
151 lines
5.8 KiB
WEBVTT |
|
|
|
00:00.470 --> 00:05.930 |
|
そして、 ベクターに焦点を当てたこの日に、 LMエンジニアリングに戻ってこられたことを嬉しく思う。 |
|
|
|
00:05.930 --> 00:08.570 |
|
最後に、 私はずっとベクターについて話してきた。 |
|
|
|
00:08.600 --> 00:11.390 |
|
今日は実際に彼らと遊ぶことができる。 |
|
|
|
00:11.540 --> 00:18.380 |
|
近々Jupyter Labに入り、 チャンクを作成する予定だ。 |
|
|
|
00:18.380 --> 00:25.100 |
|
私たちはOpenAIのエンベッディングを使って、 テキストの塊からベクトルを作っています。 |
|
|
|
00:25.130 --> 00:31.460 |
|
これらのベクターは、 chromaという非常に人気のあるオープンソースのベクターデータベースに保存します。 |
|
|
|
00:31.640 --> 00:36.440 |
|
そして、 そのベクトルを視覚化し、 それが何を表しているかを把握する。 |
|
|
|
00:36.530 --> 00:41.150 |
|
そしてそれは、 ベクターで遊び続けるための練習になる。 |
|
|
|
00:41.270 --> 00:48.140 |
|
自分の物事をベクトルに置き換えてみて、 テキストを数字の束に変えることで意味を持つということがどういうことなのかを、 |
|
|
|
00:48.140 --> 00:52.430 |
|
どんどん感じ取ってほしい。 |
|
|
|
00:52.610 --> 00:56.660 |
|
そこで、 これらの異なるタイプのモデルについて少し話をしよう。 |
|
|
|
00:56.810 --> 00:58.970 |
|
テキストをベクターに変換する方法。 |
|
|
|
00:58.970 --> 01:03.080 |
|
だから、 まず第一に、 非常に単純化された方法がある。 |
|
|
|
01:03.350 --> 01:07.160 |
|
例えば、 ボキャブラリーを考え出すとかね。 |
|
|
|
01:07.160 --> 01:10.190 |
|
そこで、 可能性のある言葉のリストを考えてみよう。 |
|
|
|
01:10.190 --> 01:16.730 |
|
例えば、 あなたのボキャブラリーの最初の単語がdogで、 2番目の単語がcatだとしよう。 |
|
|
|
01:17.270 --> 01:24.860 |
|
そして、 テキストのブロックを取り出して、 そのブロックの中にある特定の単語の回数を数えることができる。 |
|
|
|
01:24.860 --> 01:30.890 |
|
そして、 例えばdogという単語が2回入っていたら、 ベクトルの最初の位置に2を入れ、 |
|
|
|
01:30.890 --> 01:33.320 |
|
catは1回入れる。 |
|
|
|
01:33.320 --> 01:36.320 |
|
そして、 その場所に1本、 といった具合だ。 |
|
|
|
01:36.320 --> 01:43.010 |
|
つまり、 特定のタイプの単語の数を数えて、 それをベクターに入れるだけなのだ。 |
|
|
|
01:43.010 --> 01:44.660 |
|
それはとても単純なことだ。 |
|
|
|
01:44.660 --> 01:50.840 |
|
単語が並べられた順番は反映されないし、 例えば同じJavaという単語がコーヒー豆の一種を指すこともあれば、 |
|
|
|
01:50.840 --> 01:56.120 |
|
プログラミング言語を指すこともあるという事実も反映されない。 |
|
|
|
01:56.120 --> 01:59.090 |
|
単語数のカウントだけだろう。 |
|
|
|
01:59.420 --> 02:01.430 |
|
だから、 それはむしろ単純なことだ。 |
|
|
|
02:01.430 --> 02:04.670 |
|
そして幸運なことに、 これにはもっと高度な方法がある。 |
|
|
|
02:04.700 --> 02:11.510 |
|
注目されたもののひとつは、 2013年に登場したワード・ツー・ベックと呼ばれるもので、 |
|
|
|
02:11.600 --> 02:22.550 |
|
ディープ・ニューラル・ネットワークを使って、 単語の意味を反映するような形でベクトル変換を始めることができた。 |
|
|
|
02:22.550 --> 02:30.470 |
|
そして、 2人のベックという言葉をきっかけに、 王+男+女=女王というような話をするようになったんだ。 |
|
|
|
02:30.830 --> 02:34.970 |
|
ええと、 バートは少し前に話したモデルだよ。 |
|
|
|
02:35.000 --> 02:43.700 |
|
これは、 グーグルが論文『Inventing Transformers』を発表した直後に作成したエンコーディングのトランスフォーマーモデルだ。 |
|
|
|
02:43.760 --> 02:48.440 |
|
今回使用するOpenAI embeddingsは、 OpenAIのものです。 |
|
|
|
02:48.440 --> 02:52.610 |
|
そして最新バージョンは、 2024年から更新されたものだ。 |
|
|
|
02:52.640 --> 03:00.680 |
|
それで、 これがテキストを数字ベクトルに変換するために使う最新で最高のモデルになるんだ。 |
|
|
|
03:01.760 --> 03:07.160 |
|
ということで、 クロマについて手短にお話させてください。 |
|
|
|
03:07.160 --> 03:14.290 |
|
クロマはベクトル・データ・ストアの一例だ。 |
|
|
|
03:14.290 --> 03:23.020 |
|
その数はかなり多く、 主要なデータベースの多くも、 現在ではベクターの採取やベクターでの検索をサポートしている。 |
|
|
|
03:23.140 --> 03:29.950 |
|
多くの人がNoSQLデータストアとして使っているMongoDBの例では、 ベクトルも扱うことができ、 ベクトルデータベースとして機能する。 |
|
|
|
03:29.950 --> 03:33.700 |
|
しかし、 クロマーは何よりもまずベクター・データベースのようなものだった。 |
|
|
|
03:33.790 --> 03:37.120 |
|
そしてこれがそのウェブサイトだ。 |
|
|
|
03:37.150 --> 03:46.570 |
|
それに、 昔ながらのマックのインターフェイスで撮った写真よりもいい写真が撮れるんだ。 |
|
|
|
03:46.780 --> 03:52.030 |
|
でも、 Iアプリケーションでクエリーを実行すれば、 たくさんのベクターから検索することができ、 |
|
|
|
03:52.030 --> 03:56.380 |
|
検索されたデータはプロンプトとクエリーに入力されます。 |
|
|
|
03:56.380 --> 04:01.150 |
|
つまり、 前回お見せした図のファンシー・バージョンというわけだ。 |
|
|
|
04:01.510 --> 04:03.730 |
|
ええと、 クロマーです。 |
|
|
|
04:03.760 --> 04:06.460 |
|
これをベクターの保存に使う。 |
|
|
|
04:06.460 --> 04:08.740 |
|
雑談はもう十分だろう。 |
|
|
|
04:08.770 --> 04:13.570 |
|
JupyterLabを手に入れ、 ベクターを実際に使う時が来たのだ。 |
|
|
|
04:13.600 --> 04:14.350 |
|
そこで会おう
|
|
|