Next Token Predictionとは言語モデルのタスクのことです。具体的には、与えられた単語の列から次の単語を予想するタスク表します。

トークンの種類とそれぞれの特徴

トークンとは機械学習における文章の分割の最小単位です。例えば、 I love youという文であれば “I” “love” “you”というように分割できます。分割単位は必ずしも単語単位とは限らないため、いくつか紹介していきます。

単語トークン化

単語トークン化は文章を単語で区切る方法です。先ほどの例で挙げた、 I love youを[ “I” ,”love” ,”you”]というように単語ごとに分割する方法です。単語トークン化は意味的関係を保持した状態で処理を行えるという利点がありますが、単語の種類は膨大にあるため、語彙サイズ、つまりモデルが扱うトークンの種類が膨大になるという欠点があります。

文字トークン化

文字トークン化は文章を文字ごとに区切る方法です。 I love you を文字トークン化すると [“I”,”l”,”o”,”v”,”e”,”y”,”o”,”u”]となります。文字トークン化の利点は未知の単語に対応できる可能性があることです。単語トークン化とは異なり、文字トークン化は語彙サイズが文字単位なので、未知の単語に対しても文字列の組み合わせによって表現可能です。欠点は、文脈を理解できないこと、シーケンスが大きくなることです。シーケンスは今回の例では、単語トークン化が3つなのに対して、文字トークン化は8つになっています。

サブワードトークン化

サブワードトークン化は、文章をサブワード単位に分解する方法です。I am unbelievably happyをサブワードトークン化すると、[“I”, ” “, “am”, ” “, “un”, “believ”, “ably”, ” “, “happy”, “.”]となります。サブワードトークン化はよく使われる手法で、GPTなどの最新のモデルもこのトークン化を採用しています。サブワードトークン化は語彙サイズが適切で未知単語にも対応できます。欠点としては前処理が複雑で、サブワードトークン化することが難しいことが挙げられます。

Next Token Predictionとは

Next Token Predictionとは与えられたトークン列から次のトークンを予想するタスクのことです。これらは主に言語生成モデルの学習のために使われるタスクです。モデルは前トークンから次の単語が来る確率を語彙リストの単語に対して計算します。モデルの出力としては、語彙リストの中で最も確率が高いものが選らばれます。下記の例では最も確率の高いsingingがモデルの出力となります。

やってみよう

実際のコードについて解説します。下記はNext Token Predictionのデモコードになります。

from transformers import GPT2Tokenizer, GPT2LMHeadModel
import torch

# モデルとトークナイザーのロード
tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2LMHeadModel.from_pretrained('gpt2')

# テキストの入力
input_text = "The cat is sitting on the"

# トークン化
input_ids = tokenizer.encode(input_text, return_tensors='pt')

# モデルで次のトークンを予測
with torch.no_grad():
    outputs = model(input_ids)
    next_token_logits = outputs.logits[:, -1, :]

# 最も確率の高いトークンを取得
predicted_token_id = torch.argmax(next_token_logits, dim=-1).item()
predicted_token = tokenizer.decode(predicted_token_id)

print(f"Input: {input_text}")
print(f"Next predicted token: {predicted_token}")

コードでは、GPT2のモデルをダウンロードし、モデルに”The cat is sitting on the”という入力を与えることで、それに続くトークンを予想させています。結果としては、”floor”という出力が戻ってきました。場所を表しているため、悪くない結果であると思います。

まとめ

今回はLLMの予想タスクであるNext Token Predictionについて解説しました。自身でLLMモデルを作成したり、使いたいモデルの性能をテストする際にぜひ活用してみてください。

\ シェア /

E資格スピードパッケージ2023#2修了者合格率100%達成

zero to one E資格 jdla

zero to oneの「E資格」向け認定プログラム

日本ディープラーニング協会の実施するE資格の受験ならzero to oneの「E資格」向け認定プログラム (税込165,000円) をおすすめします。当講座は、東京大学大学院工学系研究科の松尾豊教授と東北大学大学院情報科学研究科の岡谷貴之教授が監修する実践的なプログラムとなっています。
厚生労働省の教育訓練給付制度対象のE資格認定プログラムの中では最安値※となり、実質負担額49,500円~(支給割合70%の場合)で受講可能です。※2023年弊社調べ zero to one E資格 jdla

人工知能基礎講座を提供中

人工知能の第一人者である東京大学の松尾豊教授が監修した人工知能基礎講座を受講してみませんか? 人工知能の歴史から自然言語処理、機械学習、深層学習といった最先端のトピックやAIに関わる法律問題まで網羅しているので全てのビジネスパーソン・AIの初学者におすすめです。

サンプル動画

人工知能基礎講座はこちら↓ zero to one G検定 人工知能基礎 jdla

AI初学者・ビジネスパーソン向けのG検定対策講座

G検定受験前にトレーニングしたい方向けの問題集「G検定実践トレーニング」も提供中です。 zero to one E資格 jdla