WEBVTT

00:01.490 --> 00:08.720
LLMエンジニアリングの旅の第3週目に戻ってきた皆さんを熱烈に歓迎しましょう。 

00:08.750 --> 00:15.140
先週、 素晴らしいGradioフレームワークを使ったユーザー・インターフェースの構築を楽しんだのなら、

00:15.170 --> 00:24.500
今週はもっと気に入るはずだ。

00:24.830 --> 00:28.340
その前に、 すでにできることをいつものように簡単にまとめておこう。 

00:28.370 --> 00:33.260
トランスフォーマーについて説明でき、 重要な専門用語に精通している。 

00:33.290 --> 00:38.750
コンテクスト・ウィンドウについては、 牛が帰ってくるまで話すことができる。 

00:38.780 --> 00:44.210
GeminiでもClaudeでもOpenAIでも、 自信を持ってコーディングできる。 

00:44.240 --> 00:45.680
APIは知っているだろう。 

00:45.680 --> 00:49.820
ストリーミングのやり方も、 マークダウンのことも、 JSONレスポンスのことも知っている。 

00:49.940 --> 00:53.330
また、 AIアシスタント、 チャットボットを作ることもできる。 

00:53.360 --> 00:55.190
道具を使わせることもできる。 

00:55.190 --> 01:00.260
さまざまなエージェントを使うこともできるし、 マルチモーダルにもできる。 

01:00.380 --> 01:02.330
そして、 自分たちでも作った。 

01:02.330 --> 01:04.400
そして願わくば、 それをさらに広げてほしい。 

01:04.400 --> 01:04.400
それもそうだ。 

01:05.060 --> 01:06.590
それで、 今日は何が起きているんだ?

01:06.620 --> 01:09.080
今日はハグ顔に入ろう。 

01:09.080 --> 01:14.930
そもそも、 ハグ顔とは何か、 その範囲と規模を説明できればいいわけだし。

01:14.930 --> 01:18.260
ハグ顔で最も注目すべきことのひとつは、 その幅広さだ。 

01:18.260 --> 01:24.140
オープンソースのデータ・サイエンス・コミュニティに提供するさまざまなものを、

01:24.140 --> 01:26.990
すぐに理解してもらえるだろう。

01:27.320 --> 01:35.510
モデル、 データセット、 空間をハグハグしながら見ていくんだけど、 Google Colabについてもよく理解できるようになるよ。

01:35.510 --> 01:39.410
すでにGoogle Colabを理解しているかもしれないが、 その場合はすぐに復習できるだろう。 

01:39.410 --> 01:41.840
しかし、 そうでない人たちのために、 私たちはそれに踏み込もうとしている。 

01:41.870 --> 01:47.810
優れたGPUを搭載したマシンでどのようにコードを走らせることができるかを見てもらい、 世の中にあるさまざまな製品と、

01:47.840 --> 01:50.270
このクラスで使うGPUを理解してもらう。

01:50.270 --> 01:51.980
だから、 私たちがセッティングします。 

01:51.980 --> 01:55.550
だから、 オープンソースのものを準備するんだ。 

01:55.550 --> 02:02.900
その前に、 いつものように、 これまでの経過と現在地、 そして残された課題を簡単に振り返っておこう。 

02:02.930 --> 02:12.750
最初はLMエンジニアリングの知識がない状態で左からスタートした。

02:12.750 --> 02:16.980
第1週は、 フロンティアのあらゆることに没頭した。 

02:16.980 --> 02:18.060
第2週は。 

02:18.090 --> 02:20.250
先週はUIを構築した。 

02:20.250 --> 02:26.070
私たちはトップ3のAPIをすべて使い、 ツールを使って実験した。 

02:26.100 --> 02:31.500
エージェント化 マルチモダリティ 今週は、 オープンソースについて、 ハグ顔について。 

02:31.530 --> 02:37.500
来週は、 問題に適したLMの選択とコードの生成について話す。 

02:37.530 --> 02:39.480
そのあとはラグ・ウィークだ。 

02:39.510 --> 02:48.450
そしてフロンティアモデルを微調整し、 オープンソースモデルを微調整し、 フィナーレですべてを持ち帰る。

02:49.830 --> 02:54.150
それでは早速、 ハグ顔の話をしよう。 

02:54.540 --> 02:56.670
つまり、 どこにでもあるものなんだ。 

02:56.700 --> 02:59.280
地域全体で使われているんだ。 

02:59.310 --> 03:01.770
素晴らしいリソースだ。 

03:01.980 --> 03:12.900
ハギング・フェイス・プラットフォームは、 ハギング・フェイス・コーにアクセスし、 アカウント登録すれば利用できる。

03:12.900 --> 03:16.890
あなたは3つのカテゴリーにアクセスできる。 

03:16.890 --> 03:31.080
まず第一に、 80万を超えるオープンソースのモデルがあり、 それらは様々な種類のタスクをこなすことができる。

03:31.080 --> 03:35.010
そして今後の週にはデータセットがある。 

03:35.010 --> 03:41.880
それは宝の山で、 20万を超えるデータセットが、 考えられるほとんどすべての問題をカバーしている。 

03:41.910 --> 03:44.070
検索してみてください。 

03:44.100 --> 03:49.470
このコースの後半で、 特に素晴らしいデータセットを使うことになる。 

03:49.500 --> 03:54.030
しかし、 あなたの問題を解決するためのデータはたくさん見つかるだろう。 

03:54.270 --> 04:00.150
Kaggleというプラットフォームと似ていて、 よりデータ面に特化しています。 

04:00.150 --> 04:05.550
でも、 あなたはその膨大なデータを抱きかかえる顔の中に持っている。 

04:06.000 --> 04:13.560
また、 ハギング・フェイスにはスペースというものがあり、 アプリを書いてそのアプリを公開することができる。

04:13.590 --> 04:20.680
クラウドのハードウェアで動作させ、 他の人が使えるようにする。 

04:20.680 --> 04:28.360
自分のコードがオープンソースであることに満足しているのであれば、 それこそがハギング・フェイスのすべてなのだから。

04:28.630 --> 04:35.110
多くのスペースアプリはGradioで作られています。 

04:35.110 --> 04:36.910
つまり、 これらはグラディオのアプリなのだ。 

04:37.060 --> 04:38.890
ええと、 グラディオのアプリではないものもあります。 

04:38.890 --> 04:43.660
Streamlitと呼ばれるものがあり、 これも非常に不思議なアプリの作り方だ。 

04:43.660 --> 04:45.670
グラディオとは違って、 かなりマジカルだ。 

04:45.730 --> 04:48.640
他にもアプリを公開する方法はいくつかあります。 

04:48.700 --> 04:51.520
あー、 でも、 グラディオが一番一般的だと思うよ。 

04:51.520 --> 05:02.650
特にリーダーボードと呼ばれるものがあり、 これはグラディオのアプリで、 さまざまなLLMを評価し、 ランク付けしてスコアカードのような形で表示するものだ。

05:02.680 --> 05:07.300
リーダーボードは、 さまざまなLLMを比較するときによく使うが、 今日もハギングフェイス・スペースを見るときに、

05:07.330 --> 05:11.590
そのいくつかを見ることになるだろう。

05:12.190 --> 05:20.230
これがHuggingfaceのプラットフォームで、 Huggingface Co.にアクセスしてログインし、 そこにあるものを見始めるとたどり着くことができる。

05:20.260 --> 05:28.240
Hugging faceは、 多くのオープンソースプロジェクトの基礎となるライブラリコードも提供しています。 

05:28.870 --> 05:35.140
そして図書館は、 私たちがやりたいことを実現するための素晴らしいスタートを切ってくれる。 

05:35.170 --> 05:42.910
なぜなら、 定型的なコードをほとんど使用することなく、 すぐに実行に移せるからだ。

05:43.180 --> 05:51.970
それは、 参入障壁を低くし、 人々を素早く生産的にするために非常にうまく作られたライブラリだ。 

05:52.420 --> 05:57.880
Hugging Face Hubは、 Hugging Faceにログインして、

05:57.880 --> 06:12.430
データセットやモデルのようなものをHubからダウンロードしたりアップロードしたりできるライブラリです。

06:12.850 --> 06:25.540
データセットは、 ハグハグフェイスやトランスフォーマーのデータリポジトリにすぐにアクセスできるライブラリだ。

06:25.570 --> 06:44.830
これは中心的なライブラリで、 トランスフォーマーアーキテクチャに従うLlmsのラッパーコードであり、 そのカバーの下には実際にニューラルネットワークを実行するPyTorchかTensorFlowのコードがある。

06:45.160 --> 06:52.480
しかし、 トランスフォーマーを作れば、 実際のディープ・ニューラル・ネットワークのコードを指先で操作できる。 

06:52.480 --> 07:04.270
トランスフォーマーのコードで関数やメソッドを呼び出すとき、 私たちはもはやOpenAIの傘下にあるどこかのクラウド上で動いているAPIを呼び出しているわけではない。

07:04.270 --> 07:14.050
私たちは、 ディープ・ニューラル・ネットワークに対する推論やトレーニングを実行するために、 自分たちでコードを実行している。

07:14.860 --> 07:23.740
このコースの後半で紹介する、 より高度なライブラリが他にも3つある。

07:24.010 --> 07:29.810
その最初のPeftは、 Parameter efficient fine tuning(パラメータ効率的な微調整)の略だ。 

07:29.990 --> 07:42.290
このユーティリティを使えば、 LLMSの何十億ものパラメーターを操作することなく、 LLMSをトレーニングすることができる。

07:42.290 --> 07:43.910
つまり、 パラメータが効率的なんだ。 

07:43.910 --> 07:49.400
特に使うテクニックはローラ、 あるいはローラはローラのバリエーションと呼ばれるもので、

07:49.400 --> 07:52.460
これについては後でたっぷり説明する時間がある。

07:52.460 --> 07:54.710
でも、 それが私たちが使うものだということを念頭に置いておいてほしい。 

07:54.710 --> 07:59.750
そして、 ペフト・ライブラリーのパラメーターの効率的な微調整の一部でもある。 

08:00.140 --> 08:07.550
それから、 Trealというライブラリーがある。 TrealはTransformer Reinforcement Learning(トランスフォーマー強化学習)の略だ。 

08:07.550 --> 08:09.440
それにはいくつかのことが含まれている。 

08:09.440 --> 08:13.730
リワード・モデリングと呼ばれるようなことができる能力だ。 

08:14.060 --> 08:14.630
うん。 

08:14.630 --> 08:20.630
また、 近接政策最適化PPOと呼ばれるものもある。 

08:20.900 --> 08:24.200
また、 時折、 mmやPPOの名前を目にすることもあるだろう。 

08:24.200 --> 08:32.720
そしてこれは、 少し前に話したWRFと呼ばれるものの両方に関連していて、 LMSがチャットで本当に効果的であるように、

08:32.990 --> 08:43.100
私たちがLMSを訓練することができる方法です。

08:43.100 --> 08:48.620
そして、 2022年後半にChatGPTを生み出した重要な革新だった。 

08:48.650 --> 08:52.130
だから、 そのコードの多くはTRLの中にある。 

08:52.160 --> 09:02.390
また、 TRLの中にはスーパーバイズド・ファイン・チューニングやSFTと呼ばれるものがあり、 これはコースの後半で私たち自身が直接使うことになる。

09:02.390 --> 09:14.540
これは、 オープンソースのモデルを微調整するために使用する特定のライブラリであり、 特定の問題を抱える特定の領域でより効果的になるようにする。

09:14.540 --> 09:20.240
SFTがTRLライブラリーの微調整の一部を監督するように設定する。 

09:20.330 --> 09:21.380
略語ばかりだ。 

09:21.830 --> 09:30.230
SFTはTRLの一部であり、 不可欠なフレームワークだ。 

09:30.350 --> 09:32.570
でも、 これはまた後ほど紹介する、 より高度なものなんだ。 

09:32.600 --> 09:37.020
だから、 今すぐ全部覚える必要はないし、 頭文字を全部覚える必要もない。

09:37.140 --> 09:42.990
ただ、 後で見たときに聞いたことがあるようなものになるように、 種を植えさせてほしい。

09:44.160 --> 09:52.590
もうひとつは裏方的なものですが、 インポートして活用しているのをよく見かけます。

09:52.620 --> 10:05.670
accelerateと呼ばれるもので、 高度なHuggingfaceコードによって、 トランスフォーマーがどんな分散構成でも実行できるようになっているんだ。

10:05.670 --> 10:14.760
そのため、 トレーニングと推論の両方を、 効率的で適応性のある方法で、 複数のGPUにまたがる可能性もあるスケールで実行することができる。

10:14.760 --> 10:19.950
これから行う実験では、 GPUは最大でも1つしか使わない。 

10:20.910 --> 10:26.820
これが、 ハグフェイスの背後にある重要なライブラリのいくつかだ。 

10:27.660 --> 10:28.590
この時点ではね。 

10:28.590 --> 10:31.140
そろそろハグしている顔を見てもいい頃だと思う。 

10:31.140 --> 10:38.070
それでは早速、 ハグフェイス・プラットフォームから見て回ろう。