From the uDemy course on LLM engineering.
https://www.udemy.com/course/llm-engineering-master-ai-and-large-language-models
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.
334 lines
14 KiB
334 lines
14 KiB
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 |
|
それでは早速、 ハグフェイス・プラットフォームから見て回ろう。
|
|
|