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.
322 lines
9.8 KiB
322 lines
9.8 KiB
WEBVTT |
|
|
|
00:00.710 --> 00:02.780 |
|
よし、 ラボに戻ろう。 |
|
|
|
00:02.780 --> 00:03.950 |
|
話をプロジェクトに戻そう。 |
|
|
|
00:03.980 --> 00:06.230 |
|
道具を使う時間だ。 |
|
|
|
00:06.530 --> 00:11.210 |
|
僕は今、 JupyterLabの2週目のフォルダにいて、 4日目に突入するところだ。 |
|
|
|
00:11.240 --> 00:19.880 |
|
これまでやってきたことを結集して、 架空の航空会社のカスタマーサービス・アシスタントを作る時が来た。 |
|
|
|
00:19.910 --> 00:21.770 |
|
まずは輸入品から。 |
|
|
|
00:21.770 --> 00:25.550 |
|
いつものように、 キーのロードを初期化する。 |
|
|
|
00:25.580 --> 00:32.870 |
|
今日はGPT four miniを使うつもりで、 OpenAIの初期化はそこにある。 |
|
|
|
00:32.900 --> 00:33.890 |
|
システムメッセージ。 |
|
|
|
00:33.890 --> 00:40.520 |
|
あなたはI便、 II便、 A便と呼ばれる航空会社のアシスタントだ。 |
|
|
|
00:40.610 --> 00:41.630 |
|
あれだ。 |
|
|
|
00:41.660 --> 00:45.200 |
|
一文以内で短く丁寧に答えること。 |
|
|
|
00:45.200 --> 00:46.400 |
|
常に正確に。 |
|
|
|
00:46.400 --> 00:48.770 |
|
答えがわからなければ、 そう言ってください。 |
|
|
|
00:48.800 --> 00:54.290 |
|
これはもちろん、 システム・プロンプトの非常に良いタイプだ。 |
|
|
|
00:54.350 --> 01:00.410 |
|
ええと、 もし、 幻覚がないことに強く焦点を当てたいのであれば、 真実性を重視したい。 |
|
|
|
01:00.410 --> 01:01.790 |
|
だから、 それを実行するんだ。 |
|
|
|
01:01.820 --> 01:04.370 |
|
それなら、 これはもうお馴染みのことだ。 |
|
|
|
01:04.370 --> 01:08.540 |
|
これはGradioが期待するスタイルのチャット機能である。 |
|
|
|
01:08.570 --> 01:14.630 |
|
メッセージを受け取り、 履歴を受け取り、 そしてOpenAIが期待するスタイルを構築する。 |
|
|
|
01:14.660 --> 01:16.940 |
|
以前より少し短く見えるかもしれない。 |
|
|
|
01:16.940 --> 01:19.850 |
|
そして、 今回は結果をストリーミングで返さないからだ。 |
|
|
|
01:19.850 --> 01:20.900 |
|
それはもう十分やったと思う。 |
|
|
|
01:20.900 --> 01:25.400 |
|
それに、 このような短い返答をするのだから、 ストリーミングはやり過ぎだろう。 |
|
|
|
01:25.400 --> 01:27.230 |
|
実際に見てみよう。 |
|
|
|
01:27.260 --> 01:28.280 |
|
上がってきた。 |
|
|
|
01:28.280 --> 01:29.870 |
|
私たちは今、 グラディオのことをよく知っている。 |
|
|
|
01:29.870 --> 01:33.440 |
|
私たちはそれを見せびらかす必要はないし、 そこで挨拶することもできる。 |
|
|
|
01:34.700 --> 01:36.680 |
|
こんにちは、 本日はどのようなご用件でしょうか? |
|
|
|
01:36.710 --> 01:41.360 |
|
故郷のロンドンに行きたい。 |
|
|
|
01:41.360 --> 01:42.170 |
|
私はいつもそこに行きたいと思っている。 |
|
|
|
01:42.200 --> 01:42.950 |
|
素晴らしい選択だ。 |
|
|
|
01:42.950 --> 01:45.800 |
|
ロンドン行きのフライトをお探しですか? |
|
|
|
01:46.460 --> 01:47.450 |
|
そうだ。 |
|
|
|
01:47.450 --> 01:50.300 |
|
チケットはいくらですか? |
|
|
|
01:52.100 --> 01:56.060 |
|
リアルタイムの価格は分からないが、 最新のチケット価格はウェブサイトやアプリで確認できる。 |
|
|
|
01:56.090 --> 01:56.480 |
|
ロンドンだ。 |
|
|
|
01:56.480 --> 01:59.390 |
|
だから、 指示された通りに見るのがいいんだ。 |
|
|
|
01:59.390 --> 02:00.920 |
|
価格を幻覚することはない。 |
|
|
|
02:00.920 --> 02:02.900 |
|
そこに行こうとはしない。 |
|
|
|
02:02.900 --> 02:09.200 |
|
言われたとおりに動くし、 私たちが頼んだように1行の短い返事をしているのもわかる。 |
|
|
|
02:09.230 --> 02:11.600 |
|
よし、 戻ろう。 |
|
|
|
02:11.630 --> 02:17.780 |
|
そこで、 フロンティアLMSが提供する信じられないほど強力な機能であるツールについてお話ししましょう。 |
|
|
|
02:17.780 --> 02:21.770 |
|
関数を書いて、 レスポンスの一部としてその関数を呼び出すことができる。 |
|
|
|
02:21.770 --> 02:24.140 |
|
ほとんど不気味な響きだ。 |
|
|
|
02:24.170 --> 02:27.680 |
|
私たちのマシン上でコードを実行する力を与えているのだ。 |
|
|
|
02:27.710 --> 02:33.110 |
|
さっきも言ったように、 これは一種の物語に過ぎない。 |
|
|
|
02:33.530 --> 02:41.510 |
|
では、 まず自分自身で関数を作ってみよう。 この関数は、 アラームを武装させるのに便利な関数だ。 |
|
|
|
02:41.510 --> 02:45.710 |
|
この関数は、 都市を指定してチケット価格を取得する。 |
|
|
|
02:45.710 --> 02:49.130 |
|
だから、 印刷することから始まるんだ。 |
|
|
|
02:49.130 --> 02:52.490 |
|
目的地の都市で呼び出されるチケット料金を入手する。 |
|
|
|
02:52.670 --> 02:58.250 |
|
そして、 この関数がいつ呼び出されるかを後で確認できるようにするためだ。 |
|
|
|
02:58.520 --> 03:03.380 |
|
つまり、 目的地の都市を小文字にするんだ。 |
|
|
|
03:03.380 --> 03:10.130 |
|
そこで、 小文字の都市と価格を辞書で調べてみる。 |
|
|
|
03:10.130 --> 03:13.190 |
|
見つからなければ不明と表示される。 |
|
|
|
03:13.400 --> 03:15.170 |
|
ここで1つ付け加えよう。 |
|
|
|
03:15.200 --> 03:18.650 |
|
なぜその場で変更しないのか? |
|
|
|
03:18.680 --> 03:20.180 |
|
おそらく、 すべてを壊してしまうだろう。 |
|
|
|
03:21.110 --> 03:21.770 |
|
そうでないことを祈る。 |
|
|
|
03:21.800 --> 03:28.100 |
|
ベルリンと、 ベルリン行きの航空券のための素敵で、 安くて、 特別な取引をしよう。 |
|
|
|
03:28.100 --> 03:29.000 |
|
なぜだ? |
|
|
|
03:29.330 --> 03:29.900 |
|
うーん。 |
|
|
|
03:29.930 --> 03:31.880 |
|
よし、 実行してみよう。 |
|
|
|
03:32.180 --> 03:35.090 |
|
では、 これを試してみよう。 |
|
|
|
03:35.120 --> 03:44.270 |
|
ベルリンまでのチケット代、 何が手に入るか見てみよう。 |
|
|
|
03:44.300 --> 03:46.400 |
|
そして、 ツール、 チケット代と書いてある。 |
|
|
|
03:46.400 --> 03:49.490 |
|
ベルリンに99ドルで電話。 |
|
|
|
03:49.520 --> 03:50.990 |
|
今、 あなたはこう思ったかもしれない。 |
|
|
|
03:51.020 --> 03:51.980 |
|
道具ってどういう意味? |
|
|
|
03:51.980 --> 03:54.080 |
|
これはツールではなく、 単なる機能だ。 |
|
|
|
03:54.110 --> 03:56.630 |
|
そして答えは、 今のところただの機能だ。 |
|
|
|
03:56.630 --> 03:58.490 |
|
我々はそれをツールにしようとしている。 |
|
|
|
03:58.490 --> 04:02.570 |
|
実際にそう聞こえるかどうかはわからないが、 私の中ではそう聞こえる。 |
|
|
|
04:02.930 --> 04:07.400 |
|
とにかく、 これが僕らのツールを作るということなんだ。 |
|
|
|
04:07.940 --> 04:15.560 |
|
さて、 これらのツールをLLMとのインターフェイスに導入する過程には、 ちょっとした物語がある。 |
|
|
|
04:15.560 --> 04:20.420 |
|
グラディオのインターフェイスを立ち上げるような単純なものにはならないだろう。 |
|
|
|
04:20.420 --> 04:23.660 |
|
残念ながら、 もっと複雑なんだ。 |
|
|
|
04:23.660 --> 04:24.770 |
|
それには理由がある。 |
|
|
|
04:24.770 --> 04:26.180 |
|
そして、 その理由を突き止める。 |
|
|
|
04:26.240 --> 04:28.340 |
|
うーん、 でももう少し複雑なんだ。 |
|
|
|
04:28.460 --> 04:36.830 |
|
うーん、 でも良いニュースは、 他のツールの他のファンクション・コールでも再現できる、 ある種のクッキー・カッターのようなスタイルだということだ。 |
|
|
|
04:36.830 --> 04:39.740 |
|
だから、 これを自分のプロジェクトに再利用することができる。 |
|
|
|
04:39.740 --> 04:41.390 |
|
そして、 そうなることを強く望んでいる。 |
|
|
|
04:41.420 --> 04:51.290 |
|
ここに有用なプロジェクトを掲載した意図のひとつは、 これをリソースとして、 自分のプロジェクトにコードの断片を使えるようにすることだ。 |
|
|
|
04:51.440 --> 04:55.160 |
|
そして、 あなた自身のツールを追加してみることをお勧めします。 |
|
|
|
04:55.160 --> 04:57.980 |
|
だから、 あなたはこれを注意深く追うべきだ。 |
|
|
|
04:58.550 --> 05:07.700 |
|
ええと、 最初に言っておくのは、 今書いた関数を記述するために必要な特定の辞書構造を構築する必要があるということだ。 |
|
|
|
05:07.700 --> 05:09.380 |
|
そして、 こんな感じだ。 |
|
|
|
05:09.410 --> 05:11.150 |
|
プライス・ファンクションと呼ぼう。 |
|
|
|
05:11.150 --> 05:12.050 |
|
好きなように呼べばいい。 |
|
|
|
05:12.080 --> 05:15.290 |
|
名前をつけて、 それを説明する。 |
|
|
|
05:15.290 --> 05:25.070 |
|
LLMがこの関数をいつ呼び出すのが適切かを理解できるようにするためだ。 |
|
|
|
05:25.070 --> 05:28.460 |
|
つまり、 目的地までの往復航空券の料金を取得すると書いてある。 |
|
|
|
05:28.490 --> 05:30.710 |
|
チケットの値段を知りたいときはいつでも電話してください。 |
|
|
|
05:30.710 --> 05:34.940 |
|
例えば、 客が「市内までのチケットはいくらですか? |
|
|
|
05:34.970 --> 05:38.360 |
|
だから、 例を挙げることは常に良い、 良いテクニックなんだ。 |
|
|
|
05:38.360 --> 05:39.950 |
|
それが、 ここで使っているものだ。 |
|
|
|
05:39.950 --> 05:43.640 |
|
そして、 このセットアップでパラメータを指定する。 |
|
|
|
05:43.640 --> 05:47.060 |
|
そして、 この関数には1つのパラメータがある。 |
|
|
|
05:47.060 --> 05:50.330 |
|
そして、 それこそがパラメーターの役割なのだ。 |
|
|
|
05:50.480 --> 05:54.230 |
|
そうやって、 使っている機能を説明するんだ。 |
|
|
|
05:54.230 --> 05:58.070 |
|
そして、 必須パラメータだと言っているのがわかるだろう。 |
|
|
|
05:58.640 --> 06:00.530 |
|
これがセットアップだ。 |
|
|
|
06:00.560 --> 06:03.110 |
|
そしてこの時点で、 私は少し立ち止まるつもりだ。 |
|
|
|
06:03.110 --> 06:05.210 |
|
そして次のビデオでは、 さらに続けるつもりだ。 |
|
|
|
06:05.210 --> 06:09.650 |
|
そして、 LLMにこの機能を持たせるつもりだ。 |
|
|
|
06:09.650 --> 06:10.700 |
|
そこで会おう
|
|
|