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.
 
 

502 lines
17 KiB

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
また次の講義でお会いしましょう。