4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LLMのアルゴリズムを理解する

Last updated at Posted at 2025-07-15

はじめに

はじめまして、Orbitics株式会社データサイエンス部の上野です。
近年、ChatGPTやGeminiといった大規模言語モデル(LLM)が目覚ましい進化を遂げ、私たちの生活やビジネスに大きな影響を与えています。しかし、これらの革新的なAIがどのようにして人間のような自然な文章を生成しているのか、その裏側のアルゴリズムを深く理解している方は少ないかもしれません。

本記事では、LLMの核となる「次のトークン予測」の仕組みと、それを支える「Transformerモデル」について、機械学習の観点から分かりやすく解説します。

「トークン」とは?

本記事で頻繁に登場する「トークン」とは、LLMがテキストを処理する際の最小単位です。単語や記号、またはそれらの一部がトークンとして扱われます。

例えば、「こんにちは、世界!」という文章は、以下のようにトークン化されることがあります。

  • こんにち
  • 世界
  • !」

※なお、本記事における「トークン」を使った例については、一般的なLLMのトークン化の厳密な定義とは一部異なる場合があります。

1. LLMは「次のトークン予測」の繰り返し

私たちが日常的に利用しているLLMは、学習済みの機械学習モデル(Transformerモデル)を用いて、「次のトークンを予測する」プロセスを繰り返し行うことで文章を作成しています。

例えば、図1に示すように「パエリアのレシピを教えて。」というプロンプトに対してLLMが応答する際、以下のようなステップを踏みます:

  1. プロンプトに続く「パエリア」というトークンを予測します。
  2. 「パエリア」に続く「の」というトークンを予測します。
  3. 「レシピ」というトークンを予測し、これを繰り返して回答の文章を生成していきます。

この「次のトークンを予測する」タスクは、Deep Learningに基づく「多値分類」として扱われます。LLMの語彙辞書にある全てのトークンが目的変数となり、各トークンの出現確率を予測モデルが算出します。
image.png
図1:LLMにおける文章作成のプロセス

トークンの選択方法

LLM(大規模言語モデル)が次のトークンを予測する際、その確率分布に基づいて実際にどのトークンを選択するかは、生成されるテキストの品質と特性を大きく左右します。GeminiやChatGPTのような最新のLLMでは、これらの戦略を「Temperature(温度)」というパラメータと組み合わせることで、自然で質の高い文章生成を実現しています。

主要なトークン選択方法

LLMが次のトークンを選ぶための主な戦略は以下の通りです。

1. 最大確率選択 (Greedy Search)

最も単純な方法で、常に予測された確率が最も高いトークンを選択します。

  • 特徴: 一貫性のある出力を生成し、再現性が高いです。しかし、多様性に欠け、不自然な繰り返しや局所的な最適解に陥る可能性があります。
2. サンプリング (Sampling)

確率分布に基づいてランダムにトークンを選択する方法です。

  • 特徴: 最大確率選択よりも多様なテキストが生成されますが、ランダム性が高すぎるため、文脈にそぐわないトークンが選ばれるリスクもあります。
3. Top-kサンプリング (Top-k Sampling)

予測確率が高い順に上位 k 個のトークンに選択肢を絞り込み、その中から確率に基づいてランダムに1つを選びます。

  • 特徴: k の値を調整することで、出力の多様性をコントロールできます。k が小さいほど予測可能で一貫性のあるテキストに、k が大きいほど多様で創造的なテキストになります。
4. Top-pサンプリング (Nucleus Sampling)

現在、多くのLLMで広く採用されている高度なサンプリング方法です。予測確率が高いトークンから順に累積確率を計算し、その累積が特定のしきい値 p を超えるまでのトークン群を選択肢とします。その選択肢の中から、元の確率に基づいてランダムに1つを選びます。

  • 特徴: pの値を調整することで、柔軟に多様性と一貫性のバランスを取ることができます。例えば p=0.9 に設定すると、全体の確率の90%を占めるトークンのみが選択肢となり、極端に確率の低いトークンが選ばれるのを防ぎつつ、適切な多様性を確保できます。

GeminiやChatGPTにおけるトークン選択

GeminiやChatGPTでは、主にTop-pサンプリングと「Temperature(温度)」パラメータを組み合わせて利用されています。

Temperatureは確率分布の「鋭さ」を調整し、生成されるテキストのランダム性や創造性をコントロールする役割を担います。

  • Temperatureが高い場合: 確率分布が「平坦」になり、確率の低いトークンも選ばれやすくなるため、より多様で創造的なテキストが生成されやすくなります。
  • Temperatureが低い場合: 確率分布が「鋭く」なり、確率の高いトークンが選ばれやすくなるため、より一貫性があり予測可能なテキストが生成されやすくなります。

これらの手法を組み合わせることで、ユーザーの要求に応じて、事実に基づいた正確な回答から、物語や詩のような創造的な文章まで、幅広い種類の自然なテキストを生成できるようになっています。

特徴量としての「文脈ベクトル」

LLMが次のトークンを予測する際に用いる特徴量には、プロンプトのトークンと既に生成が完了したトークンが使われています。これらのトークンはそのままでは機械学習モデルで扱えないため、数値に変換する「定量化」が行われます。

具体的には、各トークンが「文脈ベクトル(Context Vector)」としてベクトル化されます。文脈ベクトルは、トークン単体の意味だけでなく、他のトークンとの関係性を含んだ意味を表現するものです。例えば、図2に示すように「パエリア」という単語であっても、「レシピ」や「教えて」といった他の単語との関係性を付加することで、その情報の解像度が高まります。

この文脈ベクトルは、LLMのトークン上限数によって最大数が制約されており、上限を超えた場合は古いトークンから切り捨てられます。
image.png
図2:文脈ベクトルのイメージ

2. TransformerモデルとSelf-Attention機構

GeminiやChatGPTなどのLLMは、Deep Learningに基づく「Transformerモデル」を採用しています。このTransformerモデルは、2017年に発表された画期的な論文「Attention Is All You Need」[1]で提案されました。Transformerモデルの核となるのが「Self-Attention機構」と呼ばれる手法です。

Self-Attention機構による文脈ベクトルの定量化

文脈ベクトルは、各トークンの「意味ベクトル(Vベクトル)」の線形結合として表現されます。このとき、それぞれの意味ベクトルに掛けられる係数($\alpha$)や意味ベクトル自体は、Self-Attention機構を通して定量化されます。

Self-Attention機構は、各トークンが他のトークンとの関係性に基づいて、どのように重み付けするかを学習する仕組みです。その計算は以下のステップで行われます:

  • 前提条件
    • 添字 i: 現在注目しているトークンの位置
    • 添字 j: 比較対象となるシーケンス内の全てのトークン(Key)の位置
    • 添字 N: シーケンス内の全トークン数
  1. 入力埋め込み: まず、各トークンはそれぞれ「入力埋め込みベクトル」$x_i$に変換されます。

  2. Q, K, Vベクトルの生成: 入力埋め込みベクトル$x_i$から、Query (Q)、Key (K)、Value (V) の3種類のベクトルが生成されます。

    • Query ($Q_i = x_i W_Q$): 「今注目しているトークンが、他のどのトークンと関連性が高いか?」を問いかけるためのベクトルです。他のトークンのKeyと照合されます。
    • Key ($K_i = x_i W_K$): 「このトークンが持っている情報は何で、どのように関連付けられるか?」を示すベクトルです。他のトークンのQueryと比較されます。
    • Value ($V_i = x_i W_V$): 「この単語が持つ具体的な情報内容」を示すベクトルです。アテンションの重みに従って、Valueが重み付けされて結合され、文脈ベクトルを形成します。
      これらの重み付けパラメータ$W_Q, W_K, W_V$は、Deep Learningの学習時に最適化され、定義されています。
  3. アテンションスコアの計算: 各Queryベクトル $Q_i$ と、シーケンス内の全てのKeyベクトル $K_j$ の内積を計算し、アテンションスコアを得ます。このスコアはKeyベクトルの次元の平方根$d_k$でスケーリングされます。
    $score_{ij}= Q_i \cdot K_j$
    $scaledscore_{ij}= \frac{Q_i \cdot K_j}{\sqrt{d_k}}$

  4. アテンション重みの正規化: スケーリングされたスコアはSoftmax関数によって正規化され、「アテンション重み」に変換されます。
    $$\alpha_{ij}=\text{softmax}(scaledscore_{ij})=\frac{\exp(scaledscore_{ij})}{\sum_{j=1}^K \exp(scaledscore_{ij})}$$

  5. 文脈ベクトルの生成: アテンション重みを用いて、Valueベクトルを重み付けして合計することで、最終的な文脈ベクトルが生成されます。
    $\text{文脈ベクトル}_i=\sum_{j=1}^N \alpha_{ij} V_j$

このSelf-Attention機構によって、トークン間の長距離依存関係を捉えることが可能になります。

Transformerモデルの主な特徴

図3に示すように、TransformerモデルはSelf-Attention機構を多層に重ねることで、入力シーケンス内の各トークンが他の全てのトークンとの関係性を考慮しながら表現を学習します。これにより、文脈をより深く理解し、関連性の高い情報を効果的に抽出できます。
image.png
図3:「Attention Is All You Need」からの引用[1]

Transformerモデルの主な特徴は以下の通りです。

  • Self-Attention機構の活用: 文脈を深く理解し、関連性の高い情報を効率的に抽出できます。

  • 並列処理能力: 再帰的な構造(RNN)を持たないため、シーケンスの各要素を同時に処理することが可能です。これにより、GPUなどの並列計算デバイスを効率的に利用でき、LLMのような大規模なモデルの学習時間を大幅に短縮することを可能にしました。

  • 長距離依存関係の学習: Self-Attention機構は、シーケンス内の距離に関わらず、任意の2つのトークン間の関係性を直接計算できます。これは、RNNが抱える勾配消失問題により、文章が長くなるにつれて遠く離れたトークン間の関係性を学習しにくいという課題を克服します。結果として、Self-Attention機構はより複雑な文脈や長い文章の深い理解を可能にします。図4に示すように、複数のセンテンスからなる文章を例に出すと、RNNでは複数回出てくる「桃太郎」を異なる人物として認識する一方で、Transformerでは同一人物として認識できるというイメージです。
    image.png
    図4:RNNとTransformerの比較

  • エンコーダ・デコーダ構造: Transformerは一般的にエンコーダとデコーダから構成され、機械翻訳のようなシーケンス・トゥ・シーケンスのタスクに強力な性能を発揮します。

  • 位置エンコーディング(Positional Encoding): トークンの順序情報はSelf-Attention機構だけでは捉えられないため、各トークンの位置情報を数値ベクトルとして入力埋め込みに加えることで、モデルに順序を認識させます。

まとめ

LLMは「次のトークンを予測する」というシンプルなタスクを、高度なTransformerモデルとSelf-Attention機構を用いて繰り返し実行することで、人間のような自然な文章生成を実現しています。本記事で解説したアルゴリズムの基礎を理解することで、LLMの可能性と限界をより深く認識し、その活用をさらに進めることができるでしょう。

参考文献

  • [1] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin. "Attention Is All You Need". Advances in Neural Information Processing Systems 30 (NeurIPS 2017), 2017. https://arxiv.org/abs/1706.03762
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?