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