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.
 
 

169 lines
7.0 KiB

WEBVTT
00:00.410 --> 00:02.180
また会えて嬉しいよ。
00:02.180 --> 00:11.900
冒険の3週目、 3日目をスタートさせるにあたり、 ええと、 今回は物事がより深くなりそうだ。
00:11.900 --> 00:18.890
我々は、 Face Transformersライブラリを抱きしめるための低レベルのAPIに入るために、 腕まくりをするつもりだ。
00:19.490 --> 00:26.330
そしていつものように、 フロンティアモデルに対してコードを書くことも、 AIアシスタントを構築することも、 パイプラインを使用することもできることを簡単に覚えておいてほしい。
00:26.330 --> 00:26.870
パイプライン
00:26.870 --> 00:36.290
前回やったことは、 Hugging Faceから入手可能なオープンソースの推論タスクを幅広く利用する簡単な方法だ。
00:36.290 --> 00:39.260
今日、 私たちはもっと低いレベルにいる。
00:39.350 --> 00:45.470
先ほど申し上げたように、 パイプラインよりも低いレベルでトランスフォーマーとやりとりする方法の一部として、
00:45.470 --> 00:49.430
トークナイザーとモデルがあります。
00:49.430 --> 00:50.630
そして、 それが今日私たちがやろうとしていることだ。
00:50.630 --> 00:53.000
まずはトーケナイザーから。
00:53.000 --> 01:03.890
テキストとトークンの間の翻訳をモデル別に学び、 チャット・テンプレートというものを理解するつもりです。
01:03.920 --> 01:06.170
非常に重要な瞬間だ。
01:06.440 --> 01:13.700
ええと、 まず、 ハギング・フェイスのトークナイザーと呼ばれるオブジェクトを紹介すると、
01:13.700 --> 01:20.870
これはテキスト(文字列)とトークン(数値のリスト)の変換を行うオブジェクトです。
01:21.020 --> 01:23.930
ええと、 簡単に言うと2つの機能がある。
01:23.930 --> 01:26.960
エンコードとデコードについて知っておくべき2つのこと。
01:26.960 --> 01:32.060
エンコードすると文字列からトークンになり、 デコードすると元に戻る。
01:32.060 --> 01:33.590
そして私たちはそれを見ることになる。
01:33.590 --> 01:39.920
もちろん、 ちょっとしたニュアンスや手間のかかることはあるが、 基本的にはそれだけだ。
01:40.370 --> 01:53.150
トークナイザーにはボキャブラリーがあり、 1文字、 2文字、 3文字、 4文字など、 トークンを構成するさまざまな文字の断片がすべて含まれています。
01:53.360 --> 01:57.110
そして、 このような文字の断片を含むこともできる。
01:57.110 --> 01:59.870
スペシャル・トークンと呼ばれるものが含まれることもある。
01:59.900 --> 02:07.880
特別なトークンとは、 文の始まりやアシスタントとのチャットの始まりなど、
02:07.880 --> 02:17.210
モデルに何かを伝えるためのトークンです。
02:17.660 --> 02:23.150
前にも言ったように、 ニューラルネットワーク・アーキテクチャをどのように訓練すればいいのか、
02:23.150 --> 02:28.730
特定のトークンが文頭などを表すと期待できるようにニューラルネットワーク・アーキテクチャをどのように構築すればいいのか、
02:28.730 --> 02:33.470
と考えているのなら、 どうすればいいのだろう?
02:33.470 --> 02:35.420
そして、 魔法のような答えはない。
02:35.420 --> 02:37.370
単純にトレーニングに尽きる。
02:37.370 --> 02:46.550
もし学習データの中で、 その特別なトークンがその目的に使われている例を十分に見ていれば、 それがその特別なトークンの目的であることを学習する。
02:46.550 --> 02:52.400
しかし、 一般的に言って、 ある特定のタイプのトークンを他のトークンよりも期待するような、
02:52.400 --> 02:57.890
またトークナイザーを期待するような基本的なものは、 アーキテクチャにはない。
02:57.890 --> 03:03.590
これに加えて、 テキストをトークンにマッピングし、 ボキャブラリーを持つことも、 チャットテンプレートと呼ばれるものがある。
03:03.590 --> 03:07.320
少なくとも、 特定のタイプのモデルについては、 これからわかるだろう。
03:07.320 --> 03:16.950
そして、 システム・メッセージやユーザー・メッセージなどのメッセージ・セットを、 トークン・セットに変換する方法を知っている。
03:16.950 --> 03:20.940
そしてそれは、 実際の例を見ればすべて理解できるだろう。
03:21.630 --> 03:29.520
だから、 ハギング・フェイスのすべてのモデル、 すべてのオープン・ソース・モデルには、 それ自身のトークナイザーが関連付けられている。
03:29.520 --> 03:35.190
モデルがどのようにトレーニングされたかに依存するので、 モデルに適用される一般的なトークナイザーは1つだけではありません。
03:35.220 --> 03:53.040
しかし、 重要なのは、 モデルが学習されたときにどのトークナイザーが使われたかということだ。
03:53.130 --> 03:57.390
それはいずれやってみるべき実験かもしれない。
03:57.390 --> 04:01.380
そんなことをしたら、 すぐに非生産的な実験になってしまう。
04:01.380 --> 04:12.120
というわけで、 今日は llama 3 のトークナイザを見てみましょう。 ラルマの象徴的なモデル群である「1」が道を切り開いた。
04:12.240 --> 04:12.420
申し訳ない。
04:12.450 --> 04:12.660
からだ。
04:12.690 --> 04:13.230
ラルマより
04:13.230 --> 04:13.890
メータより
04:13.920 --> 04:17.010
それがオープンソースモデルへの道を開いた。
04:17.010 --> 04:20.670
マイクロソフトのファイ3というモデルを見てみよう。
04:20.670 --> 04:29.400
アリババ・クラウドの強豪であり、 さまざまな指標で業界をリードしているクイン2を再び見てみよう。
04:29.400 --> 04:41.010
スター・コーダー2と呼ばれる、 コードを生成するためのモデルだ。
04:41.010 --> 04:44.970
そのトークナイザーを見て、 違いを確認する。
04:45.270 --> 04:53.520
ええと、 この2つが似たようなグラフィックなのは、 ラマ3. 1とファイ3は極めてよく似ている。
04:53.550 --> 05:01.650
Quantuもよく似ていますが、 英語だけでなく中国語にも力を入れています。
05:01.650 --> 05:05.580
Star Coder 2は、 もちろんコーディングに関するものだ。
05:05.700 --> 05:12.120
それでは、 Google Colabに移動し、 トークン化を行います。