はじめに
この記事は、以下のような方を対象にしています。
-
ChatGPTやClaudeを使っているが、裏側の仕組みはよく知らない - 「LLMって何?」と聞かれたときにうまく説明できない
- エンジニアとしてAI関連の基礎知識を押さえておきたい
この記事を読むと、以下が分かるようになります。
-
LLMの基本的な仕組み - なぜコードや文章を生成できるのか
-
LLMの今後の課題
LLMとは
LLM(Large Language Model)とは、大量のテキストデータを学習した、次に来るトークンを予測する非常に大規模な確率モデルのことです。
トークンとは
LLM が扱う最小単位は「単語」ではなく「トークン」です。
トークンは単語よりも細かい単位で、たとえば「プログラミング」は複数のトークンに分割されます。
トークンの例(日本語の場合):
「今日はいい天気ですね」→ 今日 / は / いい / 天気 / です / ね
※ 実際の分割はモデルにより異なります
「次のトークンを予測する」とは
LLM は、与えられた文脈(プロンプト)に対して「次に来るトークンの確率分布」を計算し、そこから1つずつ選んで文章を生成します。
※ 図中の確率値はイメージです。実際の値はモデルや文脈により変動します。
LLMの仕組み
スケーリング則
LLM の性能を決める3つの要素を「スケーリング則」と呼びます。
| 要素 | 説明 | 例 |
|---|---|---|
| データ量 | 学習に使うテキストの総量 | ウェブ、書籍、論文、コード |
| 計算量 | 学習に使う計算リソース | GPU × 学習時間 |
| パラメータ量 | モデル内部の調整可能な数値の数 | GPT-3: 1750億個 / GPT-4以降: 非公開 |
アーキテクチャを変えなくても、これらの規模を大きくすることで回答の精度が上がることが発見されました。
この発見が、昨今の LLM 競争の出発点になっています。
なぜコードも生成できるのか
現在、LLM は人間が一生をかけて学習する量の数千倍のデータで学習しています。
コードについても、文章と同じようにトークン単位で予測できるため、生成が可能です。
GitHub をはじめとするコードデータも学習に含まれており、質の良いコード予測ができます。
ただし、あくまで1トークンずつ確率的に生成を繰り返す仕組みです。
そのため、ハルシネーションが起きることがあります。
ハルシネーションに注意: LLM は確率的にトークンを生成するため、事実と異なる内容をもっともらしく出力することがあります。特にコード生成では、存在しないAPIや非推奨の関数を提案する場合があるため、必ず動作確認を行いましょう。
LLMの今後の課題
近年、質の良い学習データを一通り使い切りつつあり、スケーリング則だけでは性能向上が難しくなってきています。
そのため、各社は推論時により多くの計算を行う手法を導入するようになりました(ChatGPT や Claude にあるThinking機能です)。
たとえば Claude のThinking機能は、回答前にモデルが内部で複数の推論ステップを踏むことで、複雑な問題への正答率を高めます。
学習データの量でカバーできない部分を、回答生成時の推論プロセスで補う方向へ移っています。
また、次世代モデルの開発には莫大なコストがかかります。
データセンターの電力消費が国家レベルに達しつつあり、GPU は NVIDIA 一強で供給が追いついていないなどの課題もあります。
エンジニア視点: LLM APIを触ってみる
LLM を実際に触る最も手軽な方法が API 呼び出しです。
Anthropic API の最小コード例を載せておきます。
# pip install anthropic が必要です
from anthropic import Anthropic
client = Anthropic()
message = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[
{"role": "user", "content": "LLMとは何ですか?"}
]
)
print(message.content[0].text)
API を使う際は、入力・出力ともに「トークン数」で課金されます。
長いプロンプトや長い応答ほどコストがかかるため、本番運用ではトークン数の見積もりが重要です。
まとめ
-
LLMは「次のトークンを予測する」確率モデルである - 性能はスケーリング則(データ量・計算量・パラメータ量)で決まる
- コード生成も文章と同じトークン予測の仕組みで実現されている
- ハルシネーション(事実と異なる生成)は確率モデルの構造的な課題
- 今後はスケーリングだけでなく、推論時計算の強化が主流になりつつある