WEBVTT 00:00.950 --> 00:05.600 Colabへようこそ、 そして我々のビジネスプロジェクトへようこそ。 00:05.600 --> 00:12.500 というわけで、 今回もオーディオファイルをもとに議事録を作成することになった。 00:12.620 --> 00:15.620 それで、 とても役に立つデータを見つけたんだ。 00:15.620 --> 00:19.610 完璧なデータセットを用意してくれるのは、 典型的な抱きつき顔だ。 00:19.790 --> 00:25.760 ミーティング・バンクと呼ばれるデータセットで、 00:25.790 --> 00:31.250 これはかなり有名なデータセットらしい。 00:31.460 --> 00:32.990 それで、 これを使っているんだ。 00:32.990 --> 00:43.730 あるデンバー市議会の会議をダウンロードし、 その一部を10分間撮影した。 00:43.730 --> 00:46.550 ええと、 10分だったか、 20分だったか、 そのどちらかだ。 00:46.640 --> 00:54.890 とにかく、 その音声をカットしてグーグルドライブに保存したんだ。 僕がここで考えているのは、 この製品でグーグルドライブにあるもの、 00:54.890 --> 00:59.690 あるいは会社のために作るのであれば会社のドライブにあるものを何でも取り込んで、 00:59.690 --> 01:06.150 それを使って議事録を作成できるようにしたいんだ。 01:06.150 --> 01:13.800 このプロジェクトの一環として、 ちょっとしたサイドバーとして、 Google DriveからColabを読み込む方法も紹介しよう。 01:13.800 --> 01:23.850 では、 ピップ・インストールのインポートについて、 いつものように説明しよう。 01:23.850 --> 01:29.250 このラボにもOpenAIをインストールすることになる。 01:29.250 --> 01:34.170 ハグフェイスだけじゃなくて、 ハグフェイスのパッケージをたくさん使っているんだ。 01:34.170 --> 01:37.140 そしてOpenAIのライブラリも。 01:37.230 --> 01:44.730 OpenAIのインポートも含め、 あらゆるものをインポートしている。 01:45.000 --> 01:47.370 それから、 いくつかの定数を設定します。 01:47.370 --> 01:52.020 私たちはウィスパーと呼ばれるオーディオモデルを使うつもりです。 01:52.020 --> 01:55.530 以前、 君にこの任務を与えたときだ。 01:55.710 --> 02:01.770 それからこれがラマ3だ。 180億ドルのインストラクター・モデルも使用する予定だ。 02:01.890 --> 02:08.010 これが、 これから学ぶ新しい能力だ。 02:08.040 --> 02:09.660 今日もちょっとおまけ。 02:09.690 --> 02:13.080 これがColabをGoogle Driveに接続する方法です。 02:13.110 --> 02:14.280 超シンプルだ。 02:14.310 --> 02:16.140 しかも、 ただのドライブドットマウントだ。 02:16.140 --> 02:19.260 そして、 どこに行きたいかを伝える。 02:19.290 --> 02:20.220 ドライブをマウントする。 02:20.220 --> 02:21.720 基本的にはそれだけだ。 02:21.720 --> 02:25.740 そして、 自分のドライブの範囲内ということを自分に課している。 02:25.800 --> 02:33.480 LMSというフォルダの中にデンバー・エクストラクト・ドットmp3というのがあって、 02:33.480 --> 02:43.080 これがデンバー市議会の10分から20分の間のセグメントをMP3で録音したものです。 02:43.110 --> 02:51.900 これを実行すると、 ポップアップで「Googleに接続しています。 02:51.930 --> 02:55.980 2回目の実行ですが、 最初に実行したときは、 もちろん認証がポップアップ表示され、 02:55.980 --> 03:02.680 Googleアカウントでログインしていることを確認し、 アクセスを許可するよう選択されました。 03:02.680 --> 03:05.860 今回はすでにそこに装着されていると言っている。 03:05.980 --> 03:13.780 ここのフォルダに行けば、 Googleドライブにアクセスして、 スラッシュ・コンテンツ・スラッシュ・ドライブの下にあるすべてのファイルを見ることができる。 03:14.410 --> 03:18.040 そこでHuggingfaceのハブにサインインする。 03:18.760 --> 03:19.300 さあ、 始めよう。 03:19.330 --> 03:20.620 ログインに成功しました。 03:20.620 --> 03:23.380 そしてOpenAIにもサインインする。 03:23.410 --> 03:25.690 だから、 これはとても似ている。 03:25.690 --> 03:33.340 OpenAIのキーを取得します。 このコラボの秘密の中にOpenAIのキーを設定しました。 03:33.580 --> 03:43.810 そして、 そのキーを取得し、 通常のOpenAIのコンストラクタを呼び出して、 インターフェースの接続を確立します。 03:43.810 --> 03:48.820 しかし今回は、 OpenAIのAPIキーを渡している。 03:49.000 --> 03:55.630 過去には、 環境変数が設定されていることに頼っていたので、 これを指定する必要がなかったのを覚えているだろう。 03:55.660 --> 03:58.570 今回は明確にパスする。 03:58.630 --> 04:00.010 そうだ。 04:00.250 --> 04:04.570 これでOpenAIの接続が確立した。 04:04.870 --> 04:06.790 それからどうすればいいんだ? 04:06.790 --> 04:14.290 グーグルドライブにあるこの音声ファイルを、 このコラボにマッピングしておこうと思う。 04:14.290 --> 04:18.010 そしてOpenAI dot audioを呼び出す。 04:18.010 --> 04:24.790 ドット転写ドット作成は、 私たちが使ってきた他のOpenAI APIのメソッドと非常によく似ています。 04:24.820 --> 04:30.130 特に、 私たちが実際に作り、 喋らせ、 音声を発生させたときのものと似ている。 04:30.340 --> 04:37.150 モデル名、 ウィスパー・ワン・モデル、 ファイル名、 そしてレスポンスをテキストで表示することを入力した。 04:37.150 --> 04:42.760 そして、 OpenAIのウィスパーモデルから返ってきたものをプリントする。 04:42.760 --> 04:49.870 つまり、 フロンティア・モデルと呼ばれる音声の束が提供され、 あるいは今話しているように音声の束が提供され、 04:49.900 --> 05:01.690 現在その会議の書き起こしが戻ってくるのを待っているところです。 05:02.590 --> 05:03.700 まあ、 それは起こっている。 05:03.700 --> 05:07.030 他のことを先に進めるように、 このまま続けるつもりだ。 05:07.030 --> 05:07.960 私は走らなければならない。 05:07.960 --> 05:16.630 システムプロンプト、 システムメッセージ、 ユーザープロンプトのシステムメッセージがある。 05:16.630 --> 05:22.120 あなたは、 議事録から要約、 主要な論点、 05:22.120 --> 05:36.430 要点、 行動項目をマークダウンした所有者を含む議事録を作成するアシスタントです。 05:36.490 --> 05:36.910 それでいい。 05:36.940 --> 05:39.520 僕の英語は下手だと思ったけど、 大丈夫だよ。 05:39.550 --> 05:41.680 その他のデンバー評議会 05:41.680 --> 05:46.750 議事録は、 出席者、 場所、 日付、 ディスカッションのポイント、 持ち帰り事項、 所有者を記したアクションアイテムなどのサマリーを含めて、 05:46.750 --> 05:48.790 マークダウンで作成してください。 05:48.790 --> 05:54.640 そして、 そのユーザープロンプトの直後にミーティングの記録を押し込む。 05:54.820 --> 05:56.560 以下はその記録である。 05:56.590 --> 06:00.440 ちょうどプリントアウトしたところで、 長い古い記録なんだ。 06:00.440 --> 06:02.960 デンバー市議会。 06:02.990 --> 06:11.540 かなり長い時間話し込んだが、 その多くは、 今度の連邦祝日である先住民の日についてだった。 06:11.780 --> 06:19.130 そして、 先住民の日を議会がどのように認識するのが正しいかについても議論があった。 06:19.130 --> 06:24.050 この文章をすべて読み通すか、 あるいは音声を聴いてみてほしい。 06:24.050 --> 06:30.140 つまり、 これはすべてこの転写変数にテキストで入っている。 06:30.230 --> 06:31.760 そこで私たちはオーディオから始めた。 06:31.790 --> 06:36.050 OpenAIのウィスパー・ワン・モデルのおかげで、 テキストが使えるようになった。 06:36.260 --> 06:40.100 システムプロンプトとユーザープロンプトを作成する。 06:40.130 --> 06:41.960 見慣れた光景だろう。 06:41.960 --> 06:44.000 これがクオンツのコンフィグだ。 06:44.000 --> 06:45.950 また量子化することになる。 06:45.980 --> 06:46.490 なぜだ。 06:46.520 --> 06:55.790 ラムダ3では非常に効果的だった。 メモリが55まで大幅に減少する前に、 1. 5ギガバイト。 06:56.060 --> 06:57.320 しかし、 そうはならなかった。 06:57.350 --> 06:59.510 少なくとも、 彼のパフォーマンスは私たちには完璧に見えた。 06:59.510 --> 07:03.410 もしかしたら、 量子化せずに試してみて、 どれだけジョークがうまくなったか確かめたのかもしれない。 07:03.590 --> 07:03.950 うーん。 07:03.980 --> 07:06.830 大差なくても驚かないよ。 07:06.860 --> 07:08.990 量子化は非常に効果的だ。 07:09.320 --> 07:12.890 よし、 アクションの時間だ。 07:12.980 --> 07:17.990 これは前回もやったことなので、 皆さんもよくご存知のはずだ。 07:17.990 --> 07:26.360 自動トークナイザーFrompretrainedメソッドを使用して、 Lama用のトークナイザーを作成します。 07:26.360 --> 07:30.410 パッド・トークンをセットする作業は、 これまでと同じように行う。 07:30.560 --> 07:35.900 次に、 apply chat template functionメソッドを呼び出します。 07:35.900 --> 07:39.950 メッセージで伝える......これだ。 07:39.980 --> 07:41.090 私たちはそれをパスしている。 07:41.090 --> 07:43.790 もちろん、 これには全記録が含まれる。 07:43.820 --> 07:47.090 会議全体のテキストとユーザーによるプロンプトが含まれる。 07:47.120 --> 07:51.350 そして、 その大量のテキストをGPUに載せるのだ。 07:51.410 --> 07:53.270 またストリーミングするつもりだ。 07:53.270 --> 07:55.790 そこで、 このテキスト・ストリーム・オブジェクトを使う。 07:55.790 --> 07:57.800 そして、 こうだ。 07:57.830 --> 07:58.400 これがそうだ。 07:58.400 --> 08:00.710 これがモデルを作るときだ。 08:00.710 --> 08:03.080 我々は、 因果関係エルムの自動モデルを作成する。 08:03.080 --> 08:06.680 ラマのモデル名を渡す。 08:06.680 --> 08:10.070 GPUがあれば使ってください。 08:10.220 --> 08:13.760 T4ボックス(小型GPUボックス)を使っている。 08:13.760 --> 08:17.150 そして量子化コンフィグを渡す。 08:17.450 --> 08:20.480 しばらく時間がかかるだろうから、 今から走り始めるつもりだ。 08:20.480 --> 08:22.820 話す前に走り出すべきだった。 08:23.000 --> 08:24.770 その方がスマートだ。 08:24.950 --> 08:26.090 ええと......。 08:26.090 --> 08:33.410 そしてモデルを作成し、 アクションを実行する。 08:33.440 --> 08:37.610 アクションはモデルのジェネレートを呼び出すことである。 08:37.610 --> 08:48.830 generateを呼び出すときには、 もちろん、 トークン化されたプロンプトとトランスクリプト全体を入力として渡さなければならない。 08:49.070 --> 08:51.770 これは、 あなたが以前使っていたものより少し大きい。 08:51.770 --> 08:54.110 以前は新規トークンの上限は80枚だと言っていた。 08:54.140 --> 09:00.560 現在、 新規トークンの上限を2000としているのは、 かなりの反響がある可能性があるからだ。 09:00.830 --> 09:07.940 ええと、 それで、 ええと、 会議の議事録を取り戻すには十分なスペースが必要なんだ。 09:07.940 --> 09:17.270 そして、 ストリーマーを提供し、 そのストリーマーが結果を私たちのラボにストリームバックできることを伝えている。 09:17.780 --> 09:25.550 少し考え込んでいる間に、 次に何が起こるかと言うと、 会議の議事録をここに流すんだ。 09:25.790 --> 09:36.260 ええと、 その後、 私たちができることは、 出力を取ってテキストを取得することです。 09:36.500 --> 09:41.540 そして、 それをトークナイザー・ドット・デコードを使ってデコードする。 09:41.840 --> 09:45.380 それをresponseという変数に入れるんだ。 09:45.380 --> 09:46.790 さて、 議事録だ。 09:47.150 --> 09:47.960 うーん。 09:52.430 --> 09:53.600 もうすぐだ。 09:53.600 --> 09:54.770 これまでのところだ。 09:54.770 --> 09:56.690 を置くだけだ。 09:57.750 --> 09:59.520 その記録である。 10:04.170 --> 10:11.370 デンバー市議会10月9日(月)の議事録と出席者。 10:12.930 --> 10:14.100 概要 10:19.380 --> 10:25.530 彼らは10月9日(月)に会合を開き、 先住民の日の宣言を討議し採択した。 10:25.560 --> 10:28.320 ロペス議員が宣言を発表した。 10:28.410 --> 10:29.970 主な論点 10:30.000 --> 10:31.050 収穫。 10:31.050 --> 10:34.140 この日の重要性を認識して採択された。 10:34.170 --> 10:37.590 彼らは、 包括性とあらゆる文化を尊重することの重要性を強調した。 10:37.620 --> 10:41.250 オーナーと行動 10:41.250 --> 10:44.370 ロペス議員と事務員 10:44.520 --> 10:49.890 書記官は、 この宣言にデンバー市およびデンバー議会の印章を押印する。 10:49.890 --> 10:57.330 そして、 ロペス議員がデンバー・アメリカン・インディアン委員会とその他の地域に宣言のコピーを送付し、 10:57.330 --> 11:03.420 最後に次のステップを紹介する。 11:03.420 --> 11:06.960 だから、 ラマ3世には敬意を表したい。 1. 11:06.960 --> 11:13.230 この議事録は、 出席者、 日付、 形式、 セクションがすべて揃った、 11:13.230 --> 11:20.100 非常に包括的で、 明確で、 徹底した議事録のようだ。 11:20.130 --> 11:24.510 もちろん、 マークダウン形式であることにお気づきだろう。 11:24.510 --> 11:30.330 そして、 以前Jupyter Notebookでフロンティアモデルをローカルで扱ったときに、 11:30.330 --> 11:39.360 Colabでマークダウンを表示する方法として、 このディスプレイマークダウンレスポンスが使えることをご存知でしょう。 11:39.360 --> 11:47.310 そしてここに、 デンバー市議会の議事録があり、 要約、 要点、 行動項目、 次のステップなど、 11:47.310 --> 11:53.310 さまざまなセクションに整理されている。 11:53.490 --> 12:07.660 そこで、 フロンティアモデルとオープンソースモデルを使って、 音声を取り込み、 それをトランスクリプトに変換し、 そのトランスクリプトをアクションと次のステップを含むミーティングの要約に変換するアプリケーションを紹介しよう。 12:09.160 --> 12:11.620 さて、 あなたには明らかな練習がある。 12:11.620 --> 12:13.900 もうおわかりいただけただろうか。 12:13.900 --> 12:17.950 それを素敵なユーザーインターフェイスに落とし込むのは簡単だ。 12:17.950 --> 12:27.370 Gradioは、 前の週と同じように使うことができる。 12:27.370 --> 12:32.590 グーグル・ドライブ上のファイル名を入力し、 「議事録の作成」を押せばいい。 12:32.620 --> 12:41.200 その音声を読み込んでテキストに変換し、 会議の議事録、 持ち帰り事項、 次のステップに変換する。 12:41.800 --> 12:43.570 それがあなたにとっての課題です。 12:43.570 --> 12:45.640 そうしてくれ。 12:45.640 --> 12:49.270 そして、 素晴らしいユーザー・インターフェースを見るのが待ちきれない。 12:49.270 --> 12:51.730 コードを入手したら、 ぜひプッシュしてほしい。 12:51.730 --> 12:56.470 また次の講義でお会いしましょう。