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
ではまた