3Dラボを読み込み中…
レッスンを読み込み中…
← AIの仕組みワールド 1・レッスン 2/4すべてのレッスン ↓

モデルはなぜ文字や単語をそのまま読まないのか
これを教える? プロジェクターモードを開く
モデルは、生の文字や単語全体をそのまま受け取ることはできません。まずテキストをトークンに分割します。トークンとは、学習前に作られた語彙と呼ばれる固定された一覧から取り出した部分です。それぞれの項目には整数の識別番号が付いています。モデルが受け取るのは、整数の一覧です。
トークンは、よく使われる単語全体、長い単語の一部、句読点、数字のまとまりなどです。単語の前の空白は、ふつうその単語にくっつきます。そのため、「ねこ」と「 ねこ」(前に空白があるもの)は、通常、異なる識別番号を持つ別のトークンです。大文字と小文字も重要です。「ネコ」のように、別のトークンになります。
ここでは、トークンの間に | を入れた例を示します。これは考え方を説明するための作りものです。実際のトークナイザーでは、別の分け方になります。
cat はとてもよく使われるため、1つのトークンです。un|believ|ably は3つのトークンです。単語全体は語彙に入っていませんが、部分ごとは入っています。語彙はどのように作られる? よく使われる方法の1つが、バイトペアエンコーディング(BPE)です。この考え方はデータ圧縮から生まれ、Sennrichたちは2016年にニューラル翻訳向けに応用しました。手順は次のとおりです。
小さなコーパスで試してみよう: low ×3, slow ×2, newer ×4, wider ×2。
er にマージする。lo を採用する。low にマージする。3回のマージ後、単語は low、s|low、n|e|w|er、w|i|d|er となる。頻出チャンクが単一のトークンになり、珍しい単語は断片のまま残る。
一般的な英語の文章についての大まかな目安: 1トークンは約4文字、または単語のおよそ4分の3に相当するため、100トークンは約75語です。あくまで大まかな目安です。トークン化の方法や話題、言語によって変わります。
トークナイザーの学習テキストであまり使われていなかった言語の文章に加え、コード、珍しい名前、長い数値などでは、同じ内容でもより多くのトークンが必要になることがよくあります。トークンが増えると、より多くの計算が必要になり、コンテキストウィンドウも多く使われます。コンテキストウィンドウとは、モデルが一度に取り込めるトークンの最大数で、単語ではなくトークン単位で数えます。
珍しくて長い単語をモデルに入力すると、通常はどうなりますか?
「Cat」と、先頭にスペースがある「 cat」は、通常は同じトークンですか?
コンテキストウィンドウはどの単位で測られますか?
おもちゃのコーパス(low ×3, slow ×2, newer ×4, wider ×2)で、最初にマージされるペアはどれか?