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.
379 lines
13 KiB
379 lines
13 KiB
WEBVTT |
|
|
|
00:00.110 --> 00:02.570 |
|
そこでGPT4に電話をかける。 |
|
|
|
00:02.600 --> 00:11.000 |
|
ああ、 これはリンクのセットに目を通し、 どれが関連性のあるリンクかを把握し、 完全修飾リンクに置き換えるように要求しているのだ。 |
|
|
|
00:11.270 --> 00:18.740 |
|
特に、 どのリンクが関連性があるのかを選択する必要があるからだ。 |
|
|
|
00:18.740 --> 00:21.620 |
|
一種のニュアンスのある推論プロセスが必要なのだ。 |
|
|
|
00:21.890 --> 00:27.560 |
|
この目的のためにGPT 4を使うだけでなく、 必要な情報を正確に指定する方法で、 |
|
|
|
00:27.560 --> 00:35.390 |
|
JSONの形で応答するよう依頼するつもりだ。 |
|
|
|
00:35.420 --> 00:45.080 |
|
さて、 この後、 構造化出力と呼ばれるテクニックを取り上げますが、 これはLLMに非常に特殊なフォーマットでの応答を要求する場合です。 |
|
|
|
00:45.110 --> 00:48.950 |
|
私たちは効果的に、 応答するために必要なフォーマットを指定する。 |
|
|
|
00:48.980 --> 00:50.300 |
|
今日はやらない。 |
|
|
|
00:50.300 --> 00:52.670 |
|
単純にJSONを返してもらうだけだ。 |
|
|
|
00:52.700 --> 00:56.000 |
|
そして、 返信に必要な書式を指示する。 |
|
|
|
00:56.000 --> 00:57.380 |
|
素晴らしいものになるだろう |
|
|
|
00:57.410 --> 01:00.590 |
|
ええと、 このような単純なリクエストには効果的です。 |
|
|
|
01:00.590 --> 01:04.120 |
|
もっと高度になると、 構造化出力を使う必要が出てくるかもしれない。 |
|
|
|
01:04.120 --> 01:09.370 |
|
第8週では、 エージェントAIのフレームワークを構築する。 |
|
|
|
01:09.370 --> 01:11.560 |
|
でも今は、 これが僕らの仕事だ。 |
|
|
|
01:11.560 --> 01:14.290 |
|
そこで、 システム・プロンプトを作成することにする。 |
|
|
|
01:14.350 --> 01:19.960 |
|
システム・プロンプトはもちろん、 目の前のタスクと、 それをどのように進めるかを説明する場所だ。 |
|
|
|
01:19.960 --> 01:22.570 |
|
そこでこの情報を提供することになる。 |
|
|
|
01:22.570 --> 01:24.250 |
|
これがシステム・プロンプトだ。 |
|
|
|
01:24.280 --> 01:28.720 |
|
ウェブページにあるリンクのリストが提供される。 |
|
|
|
01:28.720 --> 01:34.810 |
|
これらのリンクのうち、 会社概要ページや会社ページ、 採用情報ページへのリンクなど、 |
|
|
|
01:34.810 --> 01:41.800 |
|
会社案内のパンフレットに掲載するのに最もふさわしいものはどれかを決めることができます。 |
|
|
|
01:41.830 --> 01:46.210 |
|
この例のようにJSONで応答してください。 |
|
|
|
01:46.210 --> 01:49.150 |
|
そして、 渡された例がある。 |
|
|
|
01:49.150 --> 01:54.400 |
|
一発プロンプトで作業していると言ったのは、 |
|
|
|
01:54.400 --> 02:07.000 |
|
アバウトページやキャリアページで使用できる具体的な例を示したというのが本当の意味です。 |
|
|
|
02:07.030 --> 02:09.880 |
|
属性リンクは1つになる。 |
|
|
|
02:09.880 --> 02:16.570 |
|
そしてそのリンクは、 それぞれの辞書に種類とURLが記載された再度の辞書のリストになる。 |
|
|
|
02:16.570 --> 02:19.420 |
|
そしてそのURLは完全なURLである。 |
|
|
|
02:19.420 --> 02:21.430 |
|
では、 このセルを走らせてみよう。 |
|
|
|
02:21.430 --> 02:27.190 |
|
念のため、 リンクのシステム・プロンプトをプリントしておこう。 |
|
|
|
02:27.190 --> 02:28.840 |
|
これで変数ができた。 |
|
|
|
02:28.840 --> 02:31.330 |
|
そして、 その変数に含まれているのがこれだ。 |
|
|
|
02:31.330 --> 02:32.410 |
|
印刷するんだ。 |
|
|
|
02:32.440 --> 02:34.540 |
|
キャリッジリターンも取得する。 |
|
|
|
02:34.540 --> 02:35.830 |
|
これを見てみよう。 |
|
|
|
02:36.910 --> 02:37.990 |
|
これだ。 |
|
|
|
02:38.500 --> 02:44.890 |
|
だから、 システム・プロンプトでLLMに指示するのはまさにこれなのだ。 |
|
|
|
02:45.370 --> 02:50.110 |
|
次に、 ユーザー・プロンプトのリンクを取得する関数を書いてみよう。 |
|
|
|
02:50.110 --> 02:51.400 |
|
そして、 こんな感じだ。 |
|
|
|
02:51.430 --> 02:53.770 |
|
ウェブサイト・オブジェクトを取る。 |
|
|
|
02:53.770 --> 02:59.800 |
|
そして、 ここには「blah」のウェブサイト上のリンクのリストが表示される。 |
|
|
|
03:00.070 --> 03:04.630 |
|
会社案内に関連するウェブリンクを決定してください。 |
|
|
|
03:04.660 --> 03:17.160 |
|
あなたのURLは含めないこと、 含めないことをいくつか挙げて、 リンクをひとつずつリストアップして返す。 |
|
|
|
03:17.160 --> 03:20.490 |
|
だから、 これは実際の例を見ればもっと理解できるだろう。 |
|
|
|
03:20.490 --> 03:26.580 |
|
では、 リンクス・ユーザー・プロンプトを取得して、 エディターを渡すことにしよう。 |
|
|
|
03:26.580 --> 03:27.510 |
|
これはこの上ですか? |
|
|
|
03:27.510 --> 03:29.520 |
|
これらのリンクを見ることになる。 |
|
|
|
03:29.520 --> 03:32.100 |
|
では、 このユーザー・プロンプトがどんなものか見てみよう。 |
|
|
|
03:32.130 --> 03:34.800 |
|
そして、 これを実行して感覚をつかむべきだ。 |
|
|
|
03:34.800 --> 03:36.930 |
|
ユーザー・プロンプトはこのように表示される。 |
|
|
|
03:36.960 --> 03:40.020 |
|
今言ったことと同じことが書いてあって、 申し訳ない。 |
|
|
|
03:40.110 --> 03:45.270 |
|
このウェブサイトを見ている、 あの素晴らしいウェブサイトを見ている、 と教えてくれるんだ。 |
|
|
|
03:45.540 --> 03:47.430 |
|
それから、 ここにリンクがある。 |
|
|
|
03:47.430 --> 03:55.080 |
|
中には相対的なものもあるかもしれないので、 まとめるべきだし、 関連性のあるものを選ぶべきだ。 |
|
|
|
03:55.680 --> 03:56.580 |
|
オーケー。 |
|
|
|
03:56.610 --> 04:01.920 |
|
そして今、 このすべてをOpenAIを呼び出す関数に入れる時だ。 |
|
|
|
04:01.920 --> 04:04.890 |
|
そして、 ここにリンクのURLがある。 |
|
|
|
04:04.890 --> 04:08.430 |
|
そこで、 そのURLに対して新しいウェブサイト・オブジェクトを作成する。 |
|
|
|
04:09.120 --> 04:11.130 |
|
そして今、 私たちはこう呼んでいる。 |
|
|
|
04:11.130 --> 04:15.930 |
|
前回は手短に済ませたが、 今回はもう少し時間をかけよう。 |
|
|
|
04:15.930 --> 04:24.330 |
|
OpenAIのチャットを呼び出します。 これは、 チャットの完了のための主要なAPIで、 私たちがほとんど常に使うものです。 |
|
|
|
04:24.330 --> 04:33.720 |
|
APIは標準APIで、 あなたのタスクはこの会話を続けることです。 |
|
|
|
04:33.720 --> 04:42.690 |
|
そして、 completion APIで何かを作成し、 先ほどと同じようにモデルを受け取り、 そのモデルをメッセージで送ります。 |
|
|
|
04:42.690 --> 04:43.410 |
|
それは変数だった。 |
|
|
|
04:43.410 --> 04:46.350 |
|
GPTのミニ4枚を最初にセットした。 |
|
|
|
04:46.410 --> 04:47.820 |
|
メッセージ |
|
|
|
04:47.820 --> 04:51.120 |
|
もうお分かりいただけただろうか。 |
|
|
|
04:51.120 --> 04:56.370 |
|
メッセージに使うフォーマットは辞書のリストだ。 |
|
|
|
04:56.400 --> 05:08.670 |
|
これは辞書のリストであり、 各辞書は、 システムまたはユーザー、 関連するシステム・メッセージまたはユーザー・メッセージのキー・コンテンツを持つキー・ロールを持つ。 |
|
|
|
05:08.670 --> 05:09.270 |
|
だから |
|
|
|
05:09.270 --> 05:11.600 |
|
システムシステムメッセージユーザー。 |
|
|
|
05:11.630 --> 05:15.890 |
|
メッセージリストに表示されるユーザーメッセージ。 |
|
|
|
05:15.890 --> 05:17.360 |
|
簡単なことだ。 |
|
|
|
05:17.360 --> 05:20.300 |
|
これがあなたにとって完全につながることを願っている。 |
|
|
|
05:20.330 --> 05:28.010 |
|
細かいことだが、 1つだけ特別なことがある。 |
|
|
|
05:28.100 --> 05:34.970 |
|
だから、 OpenAIに、 レスポンスにJSONオブジェクトを返すように指示することができる。 |
|
|
|
05:34.970 --> 05:39.500 |
|
そのためには、 JSONオブジェクトを渡す。 |
|
|
|
05:39.500 --> 05:45.800 |
|
クロードはJSONオブジェクトを要求するようなことはしない。 |
|
|
|
05:45.890 --> 05:46.940 |
|
OpenAIはそうだ。 |
|
|
|
05:46.940 --> 05:56.570 |
|
しかし、 OpenAIのドキュメントには、 これを使う場合でも、 JSONレスポンスが必要であることをプロンプトに記載することが重要であると記載されています。 |
|
|
|
05:56.570 --> 06:00.950 |
|
これは、 プロンプトにそのことを明記している場合にのみ機能する。 |
|
|
|
06:01.700 --> 06:03.620 |
|
だからそうするんだ。 |
|
|
|
06:03.650 --> 06:06.440 |
|
戻ってきたものは、 この変数コンプリートに入る。 |
|
|
|
06:06.440 --> 06:12.770 |
|
実は、 前回と一貫性を保つために、 前回そう呼んでいたので、 レスポンスに変更しようと思う。 |
|
|
|
06:14.540 --> 06:15.410 |
|
これでよし。 |
|
|
|
06:15.590 --> 06:24.080 |
|
そして、 最終的な返答を得るために、 ドット選択肢ゼロを選ぶ。 |
|
|
|
06:24.080 --> 06:25.490 |
|
それで、 これは何なんだ? |
|
|
|
06:25.490 --> 06:36.890 |
|
まあ、 実際にAPIリクエストで複数のバリエーションをリクエストすることは可能だ。 |
|
|
|
06:36.890 --> 06:37.970 |
|
私たちはそれをやっていない。 |
|
|
|
06:37.970 --> 06:39.680 |
|
だから1本しか返せない。 |
|
|
|
06:39.740 --> 06:43.250 |
|
そして、 そのバリエーションが選択肢という形で戻ってくる。 |
|
|
|
06:43.250 --> 06:44.840 |
|
でも、 1人しかいない。 |
|
|
|
06:44.840 --> 06:50.000 |
|
つまり、 選択肢ゼロは、 唯一無二の選択肢である。 |
|
|
|
06:50.000 --> 07:00.050 |
|
そのため、 常にレスポンス・ドット・チョイス・ゼロ・ドット・メッセージ・ドット・コンテンツが表示されるわけだが、 これは単に、 実際にテキストメッセージが返されるところまでドリルダウンしているだけである。 |
|
|
|
07:00.050 --> 07:06.680 |
|
APIを呼び出すのは何度も何度も同じだからだ。 |
|
|
|
07:06.710 --> 07:12.410 |
|
OpenAIのドットチャット、 ドットコンプリート、 ドットクリエイト、 そして返ってくるのはレスポンスのドットチョイス、 |
|
|
|
07:12.410 --> 07:16.840 |
|
ゼロメッセージのコンテンツだ。 |
|
|
|
07:17.380 --> 07:21.370 |
|
寝ている間に暗唱するようになるだろう。 |
|
|
|
07:21.700 --> 07:31.150 |
|
そして、 戻ってきたものにはJsonを使う。 文字列をロードして、 それをJSONとして戻す。 |
|
|
|
07:31.180 --> 07:32.710 |
|
それを実行しよう。 |
|
|
|
07:32.980 --> 07:33.910 |
|
オーケー。 |
|
|
|
07:33.910 --> 07:35.290 |
|
だから、 思い切ってやるんだ。 |
|
|
|
07:35.290 --> 07:40.210 |
|
その関数を呼び出して、 ウェブサイト "anthropic comm "を渡す。 |
|
|
|
07:40.210 --> 07:41.770 |
|
では、 何を期待しているのか。 |
|
|
|
07:41.800 --> 07:50.950 |
|
そのページ上のすべてのリンクを収集し、 GPTフォーミニを呼び出して、 この中から関連性があると思われるリンクをいくつか選んで回答してください、 |
|
|
|
07:50.950 --> 07:57.460 |
|
と言うことを期待しています。 |
|
|
|
07:57.460 --> 07:58.990 |
|
では、 何が出てくるか見てみよう。 |
|
|
|
07:59.020 --> 07:59.890 |
|
さあ、 始めよう。 |
|
|
|
08:01.210 --> 08:02.860 |
|
今、 OpenAIに行っている。 |
|
|
|
08:02.890 --> 08:06.550 |
|
まず、 人類学のページを集めなければならなかった。 |
|
|
|
08:06.550 --> 08:09.910 |
|
そして、 これがアバウトページのタイプだ。 |
|
|
|
08:09.910 --> 08:17.980 |
|
そして、 会社概要ページ、 採用情報ページ、 チームページ、 リサーチ・エンタープライズ価格、 API、 ニュースへのリンクがある。 |
|
|
|
08:17.980 --> 08:18.760 |
|
どうだ? |
|
|
|
08:18.760 --> 08:26.380 |
|
これはすべて、 パンフレットに掲載したい素晴らしい情報であり、 掲載されていないリンクが山ほどあることは間違いない。 |
|
|
|
08:26.380 --> 08:28.270 |
|
そう自分を納得させよう。 |
|
|
|
08:28.270 --> 08:37.330 |
|
人間工学はウェブサイトであり、 これを渡すだけだ。 |
|
|
|
08:39.700 --> 08:47.500 |
|
そして、 "anthropic dot links "をクリックすると、 そのページにあったすべてのリンクが表示されます。 |
|
|
|
08:47.500 --> 08:48.310 |
|
みんなそうだ。 |
|
|
|
08:48.340 --> 08:52.360 |
|
支援された国とか、 他にもたくさんある。 |
|
|
|
08:52.360 --> 08:58.690 |
|
また、 ホスト名を含む完全なURLになっていないものが多いこともわかるだろう。 |
|
|
|
08:58.690 --> 09:09.490 |
|
そして、 GPT4ミニへの問い合わせは、 これらのサブセットを非常にうまく選択し、 完全に修飾して、 それらが何であるかを説明していることがわかるだろう。 |
|
|
|
09:10.060 --> 09:11.470 |
|
素晴らしい結果だと思う。 |
|
|
|
09:11.470 --> 09:17.380 |
|
これは、 会社案内を作るために必要な2つのステップのうち、 第1ステップに過ぎない。 |
|
|
|
09:17.380 --> 09:19.900 |
|
ステップ2については、 また次のビデオで。
|
|
|