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.
391 lines
13 KiB
391 lines
13 KiB
WEBVTT |
|
|
|
00:00.800 --> 00:05.960 |
|
Jupyter Labへようこそ、 そして5日目のラボへようこそ。 |
|
|
|
00:05.960 --> 00:12.020 |
|
そして、 これはたくさんの創造性と、 できればたくさんのエンターテインメントになるだろう。 |
|
|
|
00:12.020 --> 00:16.910 |
|
そこでまず、 4日目のJupyter Labをコピーしてみた。 |
|
|
|
00:17.030 --> 00:19.370 |
|
そして、 私はそれを再現した。 |
|
|
|
00:19.370 --> 00:20.420 |
|
そして、 それを延長したんだ。 |
|
|
|
00:20.420 --> 00:23.570 |
|
だから、 今いるところより上は、 すべて4日目の繰り返しなんだ。 |
|
|
|
00:23.600 --> 00:33.590 |
|
フライトAIと呼ばれる航空会社のAIアシスタントを作成し、 航空券の価格を知ることができるツールを持たせる。 |
|
|
|
00:33.590 --> 00:39.140 |
|
そのすべてがすでにあり、 今日のショータイムのために準備してきた。 |
|
|
|
00:39.140 --> 00:40.820 |
|
私たちはマルチモーダルを目指す。 |
|
|
|
00:40.820 --> 00:46.250 |
|
私たちは、 GPT 4の後ろに位置するイメージ生成モデルであるDall-E 3を使うつもりです。 |
|
|
|
00:46.760 --> 00:48.800 |
|
これを使って画像を作るんだ。 |
|
|
|
00:48.800 --> 00:52.790 |
|
そして、 それをartistという関数に入れることから始めよう。 |
|
|
|
00:52.790 --> 00:57.770 |
|
その前に、 2つ、 ええと、 サービスアナウンスがあるんだ。 |
|
|
|
00:57.950 --> 01:03.830 |
|
ええと、 まず最初に言っておかなければならないのは、 画像生成にかかる料金は決して小さなものではないということだ。 |
|
|
|
01:03.880 --> 01:10.150 |
|
私たちがこれまでやってきたことはすべて、 1セントの何分の1という最小限の価格だったと思う。 |
|
|
|
01:10.300 --> 01:17.830 |
|
長大なパンフレットを大量に作成しているのでなければ、 このコースの運営で多額の請求が来ることはないだろう。 |
|
|
|
01:17.950 --> 01:21.880 |
|
でも、 今はもう少しレーダーに近いことをやっている。 |
|
|
|
01:21.910 --> 01:25.420 |
|
弊社が生成する各画像は0ドルです。 04. |
|
|
|
01:25.450 --> 01:31.360 |
|
さて、 これらの画像をご覧になれば、 0ドルの価値は十分にあるとご納得いただけるだろう。 各04ドル。 |
|
|
|
01:31.570 --> 01:34.720 |
|
しかも、 超クリエイティブで価値が高い。 |
|
|
|
01:34.720 --> 01:35.590 |
|
私は彼らを愛している。 |
|
|
|
01:35.590 --> 01:37.630 |
|
だから、 私は十分なお金を使ったと思う。 |
|
|
|
01:37.630 --> 01:42.310 |
|
でも、 0ドルを使うかどうかを決めるために、 そのことはお知らせしておきたい。 毎回04。 |
|
|
|
01:42.700 --> 01:49.120 |
|
もうひとつ言っておくと、 画像生成や音声生成などにLMという言葉を使うべきかどうかという点で、 少し、 あー、 あー、 あー、 |
|
|
|
01:49.120 --> 01:56.770 |
|
あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 あー、 |
|
|
|
01:56.770 --> 01:58.270 |
|
あー、 あー、 あー、 あー。 |
|
|
|
01:58.300 --> 01:59.290 |
|
テキストから音声へ。 |
|
|
|
01:59.320 --> 02:03.400 |
|
というのも、 もちろん、 これらは舞台裏にある大規模な言語モデルではないからだ。 |
|
|
|
02:03.430 --> 02:12.280 |
|
さて、 最近起こりがちなのは、 人々はLMを、 一般的なAIシステムの背後にあるモデルの総称として使っているということだ。 |
|
|
|
02:12.280 --> 02:19.450 |
|
だから実際には、 これはLMエンジニアのスキルセットとツールキットの一部だと思う。 |
|
|
|
02:19.450 --> 02:23.800 |
|
しかし、 もちろん、 厳密に言えば、 これらは言語モデルではないということは言っておかなければならない。 |
|
|
|
02:23.800 --> 02:31.630 |
|
これらは画像モデルとオーディオモデルで、 これからエージェントフレームワークに追加して遊ぶことになる。 |
|
|
|
02:31.750 --> 02:34.720 |
|
ともあれ、 前置きはこれくらいにして、 さっそく本題に入ろう。 |
|
|
|
02:34.720 --> 02:39.220 |
|
そこで、 便利な画像ライブラリをいくつかインポートすることから始めよう。 |
|
|
|
02:39.220 --> 02:40.420 |
|
まあ、 最初のは違うけどね。 |
|
|
|
02:40.570 --> 02:44.260 |
|
最初の2つはイメージライブラリではなく、 いくつかのユーティリティだ。 |
|
|
|
02:44.260 --> 02:51.520 |
|
そして、 Pythonのイメージ・ライブラリーは、 私たちにとって非常に便利な共通ライブラリーです。 |
|
|
|
02:51.760 --> 03:03.520 |
|
次にやることは、 artistという関数を書いて、 artistがOpenAI dot images dot generateを呼び出すことだ。 |
|
|
|
03:03.520 --> 03:09.460 |
|
つまり、 OpenAIの画像が生成するのに慣れた、 非常に一貫したスタイルなのだ。 |
|
|
|
03:09.460 --> 03:11.520 |
|
モデル名でパスを出す。 |
|
|
|
03:11.520 --> 03:13.860 |
|
この場合、 モデルはDall-E 3である。 |
|
|
|
03:13.890 --> 03:16.650 |
|
その前身である『Dall-E two』を試してみるのもいいだろう。 |
|
|
|
03:16.680 --> 03:18.480 |
|
画像はそれほど素晴らしいものではない。 |
|
|
|
03:18.480 --> 03:19.440 |
|
もう少し安い。 |
|
|
|
03:19.440 --> 03:26.160 |
|
0ドルくらいだったと記憶している。 0ドルではなく02ドル。 04なので、 大幅に安いわけではなく、 0ドル余分に払う価値は十分にあると私は思う。 |
|
|
|
03:26.160 --> 03:26.160 |
|
02. |
|
|
|
03:26.190 --> 03:27.750 |
|
Dall-E 3にこだわる。 |
|
|
|
03:27.780 --> 03:32.400 |
|
私たちはプロンプトを与え、 これは今、 辞書の巧妙なリストではない。 |
|
|
|
03:32.400 --> 03:33.360 |
|
ただのテキストだ。 |
|
|
|
03:33.360 --> 03:39.240 |
|
この場合、 私が提案するプロンプトは、 例えば、 都市での休暇を表現するイメージで、 観光スポットや都市に関するあらゆるユニークなものを、 |
|
|
|
03:39.240 --> 03:46.980 |
|
活気に満ちたポップアート・スタイルで表現するものだ。 |
|
|
|
03:46.980 --> 03:50.250 |
|
最小のサイズを与える。 |
|
|
|
03:50.250 --> 03:53.070 |
|
Dall-E 3なら大丈夫、 Dall-E 2ならもっと小さくなる。 |
|
|
|
03:53.250 --> 03:58.680 |
|
UmとDall-E threeは、 縦型と横型の2つの大きなサイズも用意している。 |
|
|
|
03:58.740 --> 04:00.870 |
|
その寸法を知りたければググればいい。 |
|
|
|
04:00.870 --> 04:02.400 |
|
もしこれらの画像を試してみたいなら。 |
|
|
|
04:02.430 --> 04:04.260 |
|
私たちはただ1枚の画像を返してほしいだけなのだ。 |
|
|
|
04:04.260 --> 04:06.210 |
|
私たちはこの形式を望んでいると言っている。 |
|
|
|
04:06.450 --> 04:12.840 |
|
Base64でエンコードされたフォーマットで戻ってくる。 |
|
|
|
04:12.840 --> 04:20.040 |
|
そして、 それをバイトにデコードし、 そのバイトでバイトIOオブジェクトを作り、 |
|
|
|
04:20.040 --> 04:26.850 |
|
それをimage dot open関数に渡すと、 画像を返してくれる。 |
|
|
|
04:26.850 --> 04:28.320 |
|
それを実行しよう。 |
|
|
|
04:28.320 --> 04:30.300 |
|
そして今、 それを試してみよう。 |
|
|
|
04:30.330 --> 04:35.040 |
|
だから、 私はイメージ=アーティストと言うつもりだ。 |
|
|
|
04:36.870 --> 04:38.940 |
|
そしてニューヨーク・シティ。 |
|
|
|
04:42.660 --> 04:50.520 |
|
そして、 画像を表示させるのがジュピター流だ。 |
|
|
|
04:50.550 --> 04:53.400 |
|
それを実行しましょう、 あるいは私がすでに実行したものがそこにあります。 |
|
|
|
04:53.400 --> 04:56.790 |
|
そんなに早くないのは残念だけど、 見てよ、 この素晴らしさを。 |
|
|
|
04:56.940 --> 04:58.380 |
|
ええと、 もうわかっていますよね。 |
|
|
|
04:58.380 --> 05:00.750 |
|
さっそく1つお見せしましょう。 |
|
|
|
05:00.750 --> 05:01.950 |
|
こんな感じだ。 |
|
|
|
05:01.950 --> 05:07.710 |
|
自由の女神、 数種類のエンパイアステートビル、 空に浮かぶ飛行機、 |
|
|
|
05:07.710 --> 05:18.510 |
|
そしてたくさんの看板とニューヨークのタクシーが綴られたタイムズスクエアのイメージのようなものを見ることができる。 |
|
|
|
05:18.540 --> 05:19.140 |
|
あれを見ろ。 |
|
|
|
05:19.170 --> 05:20.610 |
|
黄色いニューヨークのタクシー。 |
|
|
|
05:20.640 --> 05:21.690 |
|
そしてコカ・コーラ。 |
|
|
|
05:21.690 --> 05:23.040 |
|
それとホットドッグ。 |
|
|
|
05:23.070 --> 05:25.050 |
|
まさにニューヨークを象徴するものだ。 |
|
|
|
05:25.080 --> 05:26.550 |
|
ファンタスティックだ。 |
|
|
|
05:26.580 --> 05:29.190 |
|
その一方で、 ここでまた新たなイメージを構築してくれた。 |
|
|
|
05:29.190 --> 05:29.670 |
|
そして |
|
|
|
05:29.670 --> 05:31.020 |
|
うわあ、 これを見てよ。 |
|
|
|
05:31.020 --> 05:32.340 |
|
違うんだ。 |
|
|
|
05:32.340 --> 05:33.120 |
|
素晴らしいよ。 |
|
|
|
05:33.120 --> 05:35.430 |
|
こっちには大きなジェット機がある。 |
|
|
|
05:35.430 --> 05:40.620 |
|
エンパイア・ステート・ビルはもちろん、 複数のエンパイア・ステート・ビルや自由の女神像がある。 |
|
|
|
05:40.620 --> 05:48.870 |
|
ニューヨークを象徴するタクシーとホットドッグ。 |
|
|
|
05:49.080 --> 05:54.330 |
|
この画像はとてもクリエイティブで、 それぞれ違っていて、 |
|
|
|
05:54.330 --> 06:01.470 |
|
さっきの画像とこの画像の2つをご覧ください。 |
|
|
|
06:02.430 --> 06:03.060 |
|
分かった。 |
|
|
|
06:03.060 --> 06:05.220 |
|
まあ、 楽しんでもらえたなら幸いだ。 |
|
|
|
06:05.220 --> 06:10.920 |
|
そして、 ぜひとも0ドルを使うことを提案してもいいかな。 04、 自分用にいくつかの画像を作成する。 |
|
|
|
06:10.920 --> 06:12.180 |
|
彼らは素晴らしい。 |
|
|
|
06:12.690 --> 06:14.940 |
|
よし、 もうひとつ機能を追加しよう。 |
|
|
|
06:14.940 --> 06:20.450 |
|
OpenAIの音声を使って音声を生成する関数を作ります。 |
|
|
|
06:20.450 --> 06:25.670 |
|
ここでは、 Pi Dubと呼ばれるライブラリを使って、 いくつかのユーティリティを使うことにしよう。 |
|
|
|
06:25.670 --> 06:26.630 |
|
とても役に立つよ。 |
|
|
|
06:26.840 --> 06:29.300 |
|
これからtalkerという関数を書きます。 |
|
|
|
06:29.300 --> 06:33.860 |
|
トーカーはOpenAI dot audio dot speech dot createを呼び出す。 |
|
|
|
06:33.860 --> 06:39.470 |
|
つまり、 画像生成はOpenAIの画像生成だったのだ。 |
|
|
|
06:39.470 --> 06:46.760 |
|
オーディオについては、 OpenAIのオーディオ・ドット・スピーチ・ドット・クリエイトのケースだ。 |
|
|
|
06:46.760 --> 06:48.500 |
|
モデルを渡す。 |
|
|
|
06:48.740 --> 06:56.300 |
|
TTSはテキスト・トゥ・スピーチ(text to speech)の略で、 |
|
|
|
06:56.330 --> 07:00.080 |
|
音声を供給するモデルです。 |
|
|
|
07:00.080 --> 07:01.880 |
|
今回は声を試してみよう。 |
|
|
|
07:01.910 --> 07:02.750 |
|
オニキス |
|
|
|
07:02.750 --> 07:04.880 |
|
8種類の声をもう一度試すことができるんだ。 |
|
|
|
07:04.910 --> 07:06.800 |
|
それが何かはググればわかる。 |
|
|
|
07:06.800 --> 07:10.310 |
|
そして、 この関数が呼ばれたことを渡す。 |
|
|
|
07:10.310 --> 07:16.520 |
|
戻ってきたバイトで、 それらのバイトを表すbytes IOオブジェクトを再び作成する。 |
|
|
|
07:16.520 --> 07:27.250 |
|
そして、 このオーディオ・セグメントを使って、 ファイルとオーディオ・ストリームからオーディオ・セグメントを作成し、 そのオーディオを再生する。 |
|
|
|
07:27.250 --> 07:31.180 |
|
では、 その関数を作ってトーカーとしよう。 |
|
|
|
07:33.070 --> 07:35.470 |
|
やあ、 こんにちは。 |
|
|
|
07:40.150 --> 07:41.110 |
|
やあ、 こんにちは。 |
|
|
|
07:42.430 --> 07:43.240 |
|
これでよし。 |
|
|
|
07:43.270 --> 07:44.500 |
|
簡単なことだ。 |
|
|
|
07:44.830 --> 07:47.410 |
|
ええと、 別の声がどう聞こえるか見てみよう。 |
|
|
|
07:47.410 --> 07:50.320 |
|
合金の音を聞いてみよう。 |
|
|
|
07:50.470 --> 07:52.270 |
|
そこに合金を入れよう。 |
|
|
|
07:55.000 --> 07:55.930 |
|
やあ、 こんにちは。 |
|
|
|
07:56.860 --> 07:58.630 |
|
それが合金だった。 |
|
|
|
07:58.660 --> 08:01.180 |
|
オニキスにこだわると思う。 |
|
|
|
08:01.180 --> 08:03.070 |
|
しかし、 どちらでも試すことができる。 |
|
|
|
08:03.070 --> 08:09.580 |
|
そして、 そこにさらにいくつか入れて、 試してみて好きなものを選ぶこともできる。 |
|
|
|
08:09.910 --> 08:10.810 |
|
分かった。 |
|
|
|
08:10.810 --> 08:13.510 |
|
まあ、 それで行こう。 |
|
|
|
08:14.710 --> 08:20.920 |
|
さて、 次はエージェントのフレームワークについて話そう。 |
|
|
|
08:20.950 --> 08:23.650 |
|
次のビデオまで休憩しよう。 |
|
|
|
08:23.650 --> 08:26.200 |
|
そして、 そこで私たちは完全なエージェントの枠組みを手に入れることになる。 |
|
|
|
08:26.230 --> 08:27.280 |
|
ではまた
|
|
|