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.
352 lines
13 KiB
352 lines
13 KiB
WEBVTT |
|
|
|
00:00.080 --> 00:07.280 |
|
ストリーミングと呼ばれるものを追加することで、 この結果をもう少し満足のいくものにすることができます。 |
|
|
|
00:07.370 --> 00:27.980 |
|
ストリーミングとは、 LLMから情報が戻ってきて、 タイプライタースタイルのインターフェースと呼ばれるものに表示されることです。 |
|
|
|
00:28.430 --> 00:31.670 |
|
その方法は極めてシンプルだ。 |
|
|
|
00:31.760 --> 00:42.350 |
|
OpenAIのチャットコンプリートの呼び出しを作成するときに、 一度にすべてを受け取るだけでなく、 フローバックさせたい場合は、 |
|
|
|
00:42.380 --> 00:50.480 |
|
別のパラメータストリームをtrueに等しく渡すだけです。 |
|
|
|
00:50.510 --> 00:59.510 |
|
クロードを使ってみるとわかるが、 GPTとクロードではAPIが少し違うのだ。 |
|
|
|
00:59.510 --> 01:02.200 |
|
しかし、 それはGPTストリーム・イコール・トゥルーでのやり方だ。 |
|
|
|
01:02.230 --> 01:03.460 |
|
さて、 それは何を意味するのか? |
|
|
|
01:03.460 --> 01:10.420 |
|
つまり、 ストリームに戻ってくるのは、 単一のテキスト・レスポンスではなく、 |
|
|
|
01:10.420 --> 01:22.510 |
|
反復処理できるようなもので、 反復処理すると、 レスポンスの各チャンクが戻ってくる。 |
|
|
|
01:22.540 --> 01:28.750 |
|
さて、 今回のケースでは、 マークダウンで表示しているので、 もう少しスマートにしたい。 |
|
|
|
01:28.960 --> 01:37.090 |
|
というのも、 マークダウンは、 マークダウンの文字がストリーミングされ始めるかもしれないし、 |
|
|
|
01:37.090 --> 01:43.990 |
|
マークダウンの文字が表示されるかもしれない。 |
|
|
|
01:43.990 --> 01:53.230 |
|
各チャンクの完全なマークダウン・バージョンを書き換えることで、 そのチャンクに目を通すことができるようになる。 |
|
|
|
01:53.230 --> 02:01.980 |
|
しかし、 基本的には、 私はすべての応答、 つまり戻ってきたすべてのチャンクの累積記録のようなものを管理している。 |
|
|
|
02:01.980 --> 02:09.120 |
|
そうして戻ってきたチャンクに対して、 私は基本的に、 そのチャンクを返答に含める。 |
|
|
|
02:09.120 --> 02:14.070 |
|
ええと、 マークダウンという単語が実際にそこにある場合は、 それを取り除いて対応します。 |
|
|
|
02:14.070 --> 02:18.090 |
|
そして最後に、 フルディスプレイを更新して表示する。 |
|
|
|
02:18.090 --> 02:20.850 |
|
だから、 これはちょっと複雑なんだ。 |
|
|
|
02:20.850 --> 02:24.270 |
|
単にテキストを書くだけなら、 これは必要ないだろう。 |
|
|
|
02:24.270 --> 02:30.990 |
|
ええと、 この方法が必要な唯一の理由は、 素敵で派手なマークダウンの方法で表示したいからです。 |
|
|
|
02:30.990 --> 02:32.880 |
|
どういう意味か、 お見せしよう。 |
|
|
|
02:32.880 --> 02:38.880 |
|
もし、 これを人類について繰り返したら、 最初にリンクを見つけてすべてのページを取得する間、 |
|
|
|
02:38.880 --> 02:42.780 |
|
少し待たなければならない。 |
|
|
|
02:42.810 --> 02:43.560 |
|
あれを見ろ。 |
|
|
|
02:43.560 --> 02:50.760 |
|
おなじみのストリーミング・インターフェースが完成した。 |
|
|
|
02:50.760 --> 02:55.320 |
|
マークダウンなので、 ここにリンクのようなものも表示されるのがいいですね。 |
|
|
|
02:55.320 --> 02:57.680 |
|
そして、 私が何を言っていたのかをお見せしよう。 |
|
|
|
02:57.680 --> 03:03.590 |
|
マークダウンで表示させたくない場合は、 もっと簡単な方法として、 ストリーム内のチャンクに対して、 |
|
|
|
03:03.590 --> 03:10.550 |
|
えーと、 えーと、 と表示させることもできる。 |
|
|
|
03:12.560 --> 03:15.260 |
|
ええと、 プリントチャンク。 |
|
|
|
03:15.260 --> 03:20.060 |
|
そして、 end equalsのように、 毎回改行されないようにする必要がある。 |
|
|
|
03:20.060 --> 03:22.640 |
|
そして、 これがうまくいくかどうか、 今見ているところだと思う。 |
|
|
|
03:23.090 --> 03:30.890 |
|
この場合、 一連の小さなテキストとして印刷されるので、 マークダウンの書式は適用されません。 |
|
|
|
03:31.280 --> 03:33.560 |
|
ああ、 それはうまくいかないよ。 |
|
|
|
03:34.040 --> 03:34.940 |
|
あ、 すみません。 |
|
|
|
03:34.940 --> 03:37.850 |
|
もちろん、 これはチャンクであるべきだ。 |
|
|
|
03:38.810 --> 03:41.720 |
|
そうやって全部入れた方がいいかもしれない。 |
|
|
|
03:41.720 --> 03:43.940 |
|
そうでなければ、 流れてくるオブジェクトを取り戻すことになる。 |
|
|
|
03:43.970 --> 03:47.510 |
|
おそらく、 私がそうしているのを見て、 バカ野郎、 これでどうだ、 と思ったことだろう。 |
|
|
|
03:47.600 --> 03:49.340 |
|
これはリアルタイムで表示される。 |
|
|
|
03:49.550 --> 03:51.560 |
|
よし、 もう一度やってみよう。 |
|
|
|
03:51.590 --> 03:53.180 |
|
今よりいい結果が出るかどうか見てみよう。 |
|
|
|
03:53.990 --> 03:58.990 |
|
だから、 ここに単純にprint文を入れるとする。 |
|
|
|
03:58.990 --> 03:59.770 |
|
こんな感じだ。 |
|
|
|
03:59.770 --> 04:01.090 |
|
そして、 また戻ってくる。 |
|
|
|
04:01.090 --> 04:01.930 |
|
どうぞ |
|
|
|
04:01.960 --> 04:03.700 |
|
戻ってくるのがわかるだろう。 |
|
|
|
04:03.700 --> 04:05.080 |
|
超シンプルだ。 |
|
|
|
04:05.080 --> 04:07.450 |
|
ただ、 きれいなフォーマットにはならない。 |
|
|
|
04:07.450 --> 04:10.510 |
|
しかし、 この方法でやれば、 コードは明らかにシンプルになる。 |
|
|
|
04:10.510 --> 04:13.570 |
|
これが、 結果をストリームバックするために必要なすべてのコードである。 |
|
|
|
04:13.570 --> 04:18.250 |
|
つまり、 streamをtrueにセットし、 それを繰り返しながら戻るのだ。 |
|
|
|
04:19.180 --> 04:29.170 |
|
ところで、 コマンドと除算記号、 ウィンドウズではウィンドウズ・キーと除算記号で、 このようなコードのブロックをコメントアウトしたり、 |
|
|
|
04:29.170 --> 04:39.010 |
|
コメントアウトを解除したりするものです。 |
|
|
|
04:39.010 --> 04:47.530 |
|
このショートカットを使って、 もう一度、 素晴らしいフォーマットでアントロピックを見てみよう。 |
|
|
|
04:47.800 --> 04:49.180 |
|
リンクを見つける。 |
|
|
|
04:49.180 --> 04:50.800 |
|
そして、 またこれだ。 |
|
|
|
04:50.800 --> 04:55.350 |
|
そしてもちろん、 毎回驚くほど違うパンフレットになる。 |
|
|
|
04:55.590 --> 04:58.860 |
|
ええと、 それで......今度はあれだ。 |
|
|
|
04:58.860 --> 05:00.600 |
|
そして今度は別の会社を試してみよう。 |
|
|
|
05:00.600 --> 05:07.530 |
|
AIエンジニアのためのユビキタスなオープンソースプラットフォームとハグしてみよう。 |
|
|
|
05:07.560 --> 05:09.090 |
|
どうなるか見てみよう。 |
|
|
|
05:09.120 --> 05:10.800 |
|
リンクがいくつかある。 |
|
|
|
05:10.800 --> 05:16.380 |
|
そして、 キャリアのチャンスが書かれた抱きつき顔のパンフレットがやってきた。 |
|
|
|
05:16.380 --> 05:17.010 |
|
特典。 |
|
|
|
05:17.040 --> 05:18.060 |
|
ご連絡ください。 |
|
|
|
05:18.060 --> 05:18.780 |
|
そして |
|
|
|
05:18.810 --> 05:21.300 |
|
そして一緒にAIの未来を築きましょう。 |
|
|
|
05:21.330 --> 05:22.530 |
|
とても素晴らしい。 |
|
|
|
05:22.560 --> 05:25.740 |
|
よし、 これを楽しくするためにもうひとつやろう。 |
|
|
|
05:25.740 --> 05:31.050 |
|
システム・プロンプトを作成したところまで戻ってみよう。 |
|
|
|
05:31.050 --> 05:32.910 |
|
あれはどこだった? |
|
|
|
05:32.940 --> 05:34.710 |
|
ここにずっと戻ってきた。 |
|
|
|
05:34.710 --> 05:36.210 |
|
システムプロンプト。 |
|
|
|
05:36.210 --> 05:41.220 |
|
つまり、 システム・プロンプトの特徴のひとつは、 やるべきタスクを記述するだけでなく、 |
|
|
|
05:41.220 --> 05:50.760 |
|
LLMがこのコンテンツを作成する際に採用すべきトーンや性格についても語る場所であるということだ。 |
|
|
|
05:50.760 --> 05:57.690 |
|
では、 ここでコメントとバリエーションを解除してみよう。 |
|
|
|
05:57.690 --> 05:59.730 |
|
そして、 このバリエーションはまさにそれを含んでいる。 |
|
|
|
05:59.730 --> 06:05.610 |
|
短い、 ユーモラスな、 楽しい、 冗談のようなパンフレットであるべきで、 私たちはそのコードを実行する。 |
|
|
|
06:05.820 --> 06:12.600 |
|
ええと、 ここでは非常にいたずらっぽく使うので、 システム・プロンプトはグローバル変数のようなもので、 別の場所で参照する。 |
|
|
|
06:12.600 --> 06:21.600 |
|
ハードコードされているので、 再実行する必要はない。 |
|
|
|
06:21.630 --> 06:29.760 |
|
そして、 私の思い違いでなければ、 これから陽気な、 冗談のような、 ははは、 さあどうぞ、 という話になると信じている。 |
|
|
|
06:29.790 --> 06:33.900 |
|
セーフティネットがある人類学へようこそ。 |
|
|
|
06:34.380 --> 06:39.240 |
|
anthropicでは、 あなたが実際に信頼できるAIシステムを構築し、 朝のコーヒーよりも信頼性が高く、 |
|
|
|
06:39.240 --> 06:43.920 |
|
猫の気分転換よりも理解しやすいことを保証しています。 |
|
|
|
06:44.670 --> 06:50.100 |
|
陽光降り注ぐサンフランシスコを拠点に、 私たちはAIを敵ではなく味方にする使命を担っている。 |
|
|
|
06:50.130 --> 07:03.740 |
|
つまり、 システムプロンプトにちょっとした変更を加えるだけで、 会社案内にこれほど素晴らしい別のレンズが使えるというのは驚異的なことなんだ。 |
|
|
|
07:03.860 --> 07:07.220 |
|
本当に、 本当に驚くべきことだと思う。 |
|
|
|
07:07.430 --> 07:12.860 |
|
あなたがそれを見たときに混乱しないように、 コメントを外します。 |
|
|
|
07:13.010 --> 07:20.990 |
|
しかし、 これはもちろん、 私が最初に申し上げたいこと、 つまり、 プロンプトを使用して生成されるものの性格に影響を与えるということがどういうことなのかを深く理解するチャンスであるということを、 |
|
|
|
07:20.990 --> 07:30.560 |
|
この実験を通して実感していただきたいのです。 |
|
|
|
07:30.560 --> 07:32.840 |
|
だから、 もう一歩踏み込むことができる。 |
|
|
|
07:32.840 --> 07:36.740 |
|
皮肉たっぷりのパンフレットを作ろう。 |
|
|
|
07:36.740 --> 07:38.810 |
|
スペイン語のパンフレットを作る。 |
|
|
|
07:38.930 --> 07:43.790 |
|
ええと、 別の言語に翻訳されるようなものを追加してください。 |
|
|
|
07:43.790 --> 07:46.010 |
|
いろいろ試してみて |
|
|
|
07:46.160 --> 07:54.910 |
|
これは、 プロンプトをどのように使って、 どのような結果を得るかに影響を与えるかを学ぶ上で、 とても重要なことなんだ。 |
|
|
|
07:55.930 --> 08:01.180 |
|
さて、 エクササイズの話をしすぎる前に、 この話をまとめよう。 |
|
|
|
08:01.180 --> 08:09.010 |
|
そこで今日やったことは、 初日にやったことを拡張して、 ウェブサイトを要約するためにLMに1回電話するだけでなく、 |
|
|
|
08:09.010 --> 08:21.700 |
|
関連するリンクを集めるためにLMに1回電話し、 そのすべてのデータをスクレイピングして強固な会社案内を作るために1回電話した。 |
|
|
|
08:22.000 --> 08:31.600 |
|
大きな問題を小さなステップに分割しているんだ。 |
|
|
|
08:31.600 --> 08:38.410 |
|
しかし、 私が皆さんに印象づけたかったのは、 このような情報の統合とその結果としての生成は、 |
|
|
|
08:38.410 --> 08:43.420 |
|
さまざまな種類のビジネス問題に非常に応用できるということだ。 |
|
|
|
08:43.480 --> 08:49.810 |
|
商品を生み出すためのマーケティング・コンテンツを書くために、 このようなことができると想像できるだろう。 |
|
|
|
08:49.930 --> 08:57.240 |
|
パーソナライズされたEメールコンテンツを作成するための、 製品仕様からのガイドのようなチュートリアルです。 |
|
|
|
08:57.300 --> 08:59.670 |
|
たくさんのメールに目を通すことによってね。 |
|
|
|
08:59.670 --> 09:09.930 |
|
このように、 あるデータを合成してJSONにまとめ、 それを何らかのアウトプットを構築する方法として使うという2つのステップを想像する方法はたくさんある。 |
|
|
|
09:09.960 --> 09:12.120 |
|
さまざまな応用が可能だ。 |
|
|
|
09:12.120 --> 09:17.730 |
|
だから、 ぜひやってほしいのは、 これを日々の仕事に応用する方法を考えることだ。 |
|
|
|
09:17.730 --> 09:19.920 |
|
そして、 この商業的なアングルも興味深い。 |
|
|
|
09:19.950 --> 09:25.860 |
|
ええと、 自分の専門分野、 自分が最も得意とする領域について考えることができるようなもの。 |
|
|
|
09:25.860 --> 09:31.500 |
|
そして今、 この新しいもの、 あなたが持っているこのスキルを、 どのように有効活用できるか? |
|
|
|
09:31.500 --> 09:33.390 |
|
だから、 それについて考えてみてほしい。 |
|
|
|
09:33.390 --> 09:40.380 |
|
いつでも遠慮なく私にアイデアをぶつけてほしいし、 その例をいくつか作ってGitHubに置いてみてほしい。 |
|
|
|
09:40.380 --> 09:48.600 |
|
llmsへの複数のコールを使って情報を合成し、 コンテンツを生成している素晴らしい例がいくつかあるわけだ。 |
|
|
|
09:48.630 --> 09:50.400 |
|
また次のビデオで会おう。
|
|
|