LLM(大規模言語モデル)とは?仕組みをPythonで体験|ChatGPTとの違い・できること・主なモデル一覧
LLM(大規模言語モデル)とは、大量の文章から「次に来る言葉(トークン)」を予測するように学習したAIで、その予測を1語ずつ繰り返して文章を作ります。ChatGPTは、OpenAIのLLMであるGPTシリーズを使った対話アプリで、「ChatGPT=アプリ」「GPT=その中で動くLLM」という関係です。
この記事では、LLMの仕組みを「トークンに分ける→次のトークンを確率で予測する→1つ選んで続ける」という流れで説明し、小さなPythonのコードで実際に動かして確かめます。後半では、LLMでできること・できないこと、2026年10月15日時点の主なモデルを公式情報で整理します。
LLMとは:大量の文章で「次の言葉」を学んだモデル
LLMはLarge Language Modelの略です。「言語モデル」とは、ある言葉の並びのあとにどの言葉が来やすいかを確率で表すモデルのことで、それを非常に大量の文章と大きなニューラルネットワークで作ったものが「大規模」言語モデルです。
LLMの土台になっているのは、2017年の論文Attention Is All You Needで提案されたTransformerというニューラルネットワークの構造です。文中のどの言葉とどの言葉が関係しているかを「注意(Attention)」という計算でとらえるのが特徴で、現在の主なLLMの多くは、この系統の構造をもとにしています。Transformerの中身はTransformerとは?仕組みをわかりやすく解説で詳しく説明しています。
LLMの仕組みを3ステップで理解する
ステップ1:文章をトークンに分ける
LLMは文字をそのまま扱うのではなく、トークンという単位に区切って番号に変えてから計算します。トークンは単語のこともあれば、単語の一部や1文字のこともあります。OpenAIが公開しているトークナイザーのライブラリ tiktoken(0.14.0)で、GPT-4oなどに使われる区切り方(o200k_base)を試した結果です。
import tiktoken
enc = tiktoken.get_encoding("o200k_base")
for text in ["LLMは次の単語を予測します。", "Large language models predict the next token."]:
ids = enc.encode(text)
pieces = [enc.decode([i]) for i in ids]
print(len(text), "文字 →", len(ids), "トークン")
print(pieces)
15 文字 → 12 トークン
['LL', 'M', 'は', '次', 'の', '単', '語', 'を', '予', '測', 'します', '。']
45 文字 → 8 トークン
['Large', ' language', ' models', ' predict', ' the', ' next', ' token', '.']
英語は1単語が1トークンに近いのに対し、この区切り方では日本語は1〜2文字ごとに分かれています。API料金や「一度に読める量(コンテキストウィンドウ)」はトークン数で決まるので、同じ内容でも言語やモデルによって消費量が変わります。区切り方はモデルごとに違い、ここでの数はあくまでo200k_baseでの例です。
ステップ2:次のトークンを確率で予測する
LLMは、それまでの文章を入力として、次に来るトークンそれぞれの確率を計算します。大きなLLMでは膨大な種類のトークン(上のo200k_baseでは約20万種類)について確率を出しますが、考え方は次の小さな例と同じです。4つの短い文だけから「直前の1語のあとに何が来たか」を数える、いちばん小さな言語モデルを作ってみます。
import math
import random
from collections import Counter, defaultdict
corpus = (
"私 は 猫 が 好き です 。 "
"私 は 犬 が 好き です 。 "
"私 は 猫 を 飼って います 。 "
"猫 は 魚 が 好き です 。"
).split()
# 直前の1語ごとに、次に来た語を数える(いちばん小さな「言語モデル」)
counts = defaultdict(Counter)
for prev, nxt in zip(corpus, corpus[1:]):
counts[prev][nxt] += 1
def next_probs(word, temperature=1.0):
c = counts[word]
logits = {w: math.log(n) / temperature for w, n in c.items()}
total = sum(math.exp(v) for v in logits.values())
return {w: math.exp(v) / total for w, v in logits.items()}
for t in [1.0, 0.3]:
probs = next_probs("は", temperature=t)
print(f"「は」の次(temperature={t}):",
{w: round(p, 2) for w, p in sorted(probs.items(), key=lambda x: -x[1])})
# 確率に従って1語ずつ選び、文を作る
random.seed(1)
word, out = "私", ["私"]
while word != "。" and len(out) < 10:
probs = next_probs(word)
word = random.choices(list(probs), weights=list(probs.values()))[0]
out.append(word)
print("生成:", "".join(out))
「は」の次(temperature=1.0): {'猫': 0.5, '犬': 0.25, '魚': 0.25}
「は」の次(temperature=0.3): {'猫': 0.83, '犬': 0.08, '魚': 0.08}
生成: 私は魚が好きです。
「は」のあとには「猫」が2回、「犬」と「魚」が1回ずつ出てきたので、確率は0.5・0.25・0.25になりました。temperature(温度)を小さくすると、もともと確率が高い候補がさらに選ばれやすくなります。多くのLLMのAPIにも同じ名前の設定があり、小さいほど答えが安定し、大きいほど多様になります。
ステップ3:1つ選んで、また予測する(文章の生成)
確率に従って1語を選び、それを文の末尾に足して、また次を予測する。これを繰り返すと文章ができます。上の例では「私は魚が好きです。」という文ができました。学習に使った4文のどこにもこの文はありません。「私は」と「魚が好き」というそれぞれありそうなつながりを組み合わせた結果です。
これがLLMの得意なことと苦手なことの両方を表しています。見たことのない組み合わせで自然な文章を作れる一方、「自然なつながり」と「事実として正しいか」は別物なので、もっともらしい誤り(ハルシネーション)が起こります。原因と見分け方はハルシネーションとは?で解説しています。
実際のLLMは、直前の1語ではなく、それまでの長い文脈全体(現行の主要モデルでは100万トークン前後)を見て予測します。ただし「次のトークンを予測して選ぶ」という基本の動きは同じです。
LLMはどう作られるか:事前学習と追加の調整
| 段階 | やること | 身につくもの |
|---|---|---|
| 事前学習(pre-training) | 大量の文章で、次のトークンの予測をひたすら繰り返す | 文法、言葉の意味、文章に書かれている知識 |
| 指示に従う調整(instruction tuning) | 「質問と良い回答」の例で追加学習する | 質問に答える、指示どおりに書く振る舞い |
| 人のフィードバックによる強化学習(RLHF)など | 人が良し悪しを評価した結果を使って、好ましい回答が出やすくなるよう調整する | 役に立つ・安全な回答の傾向 |
事前学習だけのモデルは「文章の続きを書く」のは得意でも、質問に答えるとは限りません。人の評価を使って指示に従うよう調整する方法は、OpenAIの論文Training language models to follow instructions with human feedback(2022年)で示されたもので、対話型のLLMで広く使われるようになりました。自社データで追加学習する方法はファインチューニングとは?にまとめています。モデルを大きくすれば性能が伸び続けるのかという議論はAIの収穫逓減とは?で扱っています。
ChatGPTとLLMの関係
| 名前 | 種類 | 提供元 |
|---|---|---|
| ChatGPT | 対話アプリ(Web・スマホ・PC) | OpenAI |
| GPT(GPT-6 Astraなど) | ChatGPTやAPIの中で動くLLM | OpenAI |
| Claude | アプリの名前であり、LLMのシリーズ名でもある | Anthropic |
| Gemini | アプリの名前であり、LLMのシリーズ名でもある |
アプリには、LLM本体に加えて、会話の履歴の管理、Web検索、ファイルの読み込み、画像生成などの機能が組み合わされています。「ChatGPTが検索して最新情報を答えた」という場合も、LLMが知識として覚えていたのではなく、アプリが検索結果をLLMに読ませている、という分担です。
主なLLMの現行モデル(2026年10月15日確認)
各社の開発者向け公式ドキュメントで、2026年10月15日に確認した主なモデルです。モデルの入れ替わりは速いので、使う前に必ず公式ページで最新の状況を確認してください。
| 提供元 | モデル | 公式の位置づけ |
|---|---|---|
| Anthropic(Claude) | Claude Fable 5.1 | 高度な推論と長時間のエージェント作業向け |
| Claude Opus 5.5 | 多くの用途で最初に選ぶモデル。長時間のコーディングや知的作業向け | |
| Claude Sonnet 5.5 | 速さと賢さのバランス | |
| Claude Haiku 5.5 | 分類・抽出など大量で応答速度が重要な処理向け | |
| OpenAI(GPT) | GPT-6 Astra | 最も高性能なフラッグシップ。複雑な推論とコーディング向け |
| GPT-6.1 Sol | 性能とコストのバランス | |
| GPT-6 Luna | コスト重視・大量処理向け | |
| Google(Gemini) | Gemini 4 Argon | フラッグシップの推論モデル |
| Gemini 3.8 Flash | Flash系で最も高性能なモデル |
出典:Claude Models overview、OpenAI Models、Gemini API Models。ClaudeとGPT-6 Astraは、いずれも一度に約100万トークンの文脈を扱えると公式ページに記載されています。国内企業のLLMは国産LLM・基盤モデルの開発企業にまとめています。
LLMでできること・苦手なこと
| できること | 具体例 |
|---|---|
| 文章を書く・書き直す | メールの下書き、文体の変更、箇条書きを文章にする |
| 要約・抽出 | 議事録の要約、問い合わせ文から日付や商品名を取り出す |
| 翻訳 | 日英の翻訳、専門用語をやさしい言葉に言い換える |
| 分類 | 問い合わせを「請求」「不具合」「その他」に振り分ける |
| プログラムを書く・読む | コードの生成、エラーの原因の説明、テストの作成 |
| 道具を使って作業する | 検索や社内文書を参照して答える、複数の手順をこなす(AIエージェント) |
苦手なのは、正確さが保証されないことです。上で見たとおり、LLMは「ありそうな続き」を作るので、存在しない出典や数字をもっともらしく書くことがあります。また、学習データには締め切り(知識のカットオフ)があり、それ以降の出来事は検索などで外から与えない限り知りません。計算や件数の集計も、プログラムに任せたほうが確実です。
こうした弱点を補うために、社内文書を検索して読ませる方法(RAG)や、外部のツールを呼び出させる方法が使われます。仕組みはベクトルデータベースとは?やAIエージェントとは?で説明しています。LLMを予測の用途に特化させた例として、英国のスタートアップManticも紹介しています。
LLMを使うときのコツ
- 目的・読み手・形式を書く:「誰向けに」「何字で」「箇条書きで」など、出力の条件を具体的に伝えると、次のトークンの予測がその方向に絞られます。
- 材料を渡す:要約や回答の元になる文章を一緒に貼ると、記憶に頼った誤りが減ります。
- 事実は一次情報で確かめる:数字・固有名詞・出典は、公式サイトなどで必ず確認します。
- 個人情報や機密を入れる前に規約を確認する:入力したデータがどう扱われるかはサービスやプランによって違います。
PythonからLLMのAPIを呼び出す方法はPythonでAIを作る方法で紹介しています。
よくある質問
Q. LLMとChatGPTの違いは何ですか?
LLMは文章を予測・生成するAIモデルそのもので、ChatGPTはOpenAIのLLM(GPTシリーズ)を使った対話アプリです。アプリには会話の管理や検索、ファイルの読み込みなどの機能が加わっています。
Q. LLMはどうやって文章を作っているのですか?
文章をトークンに区切り、それまでの文脈から次に来るトークンの確率を計算し、1つ選んで文末に足す、という処理を繰り返しています。土台にはTransformerというニューラルネットワークの構造が使われています。
Q. LLMでできることは何ですか?
文章の作成や書き直し、要約、翻訳、分類、プログラムの作成やエラーの説明などです。検索や外部ツールと組み合わせると、最新情報を調べたり複数の手順をこなしたりすることもできます。
Q. LLMが間違ったことを答えるのはなぜですか?
LLMは事実を調べて答えているのではなく、もっともらしい続きを確率で作っているためです。自然な文章でも内容が正しいとは限らないので、数字や出典は公式サイトなどの一次情報で確認してください。
あわせて読みたい
土台になる仕組みは機械学習とは?仕組み・種類・できることを簡単に解説|Pythonで動く例つき、業務での使われ方はAIエージェントとは?で整理しています。






