LLMの仕組み
ChatGPT などの中身が、何をどう処理して“それっぽい答え”を返しているのか。実際の中身は、言葉を数字(ベクトル)に変え、確率を計算する数学的な処理。
1-1LLMとは
LLM(大規模言語モデル、Large Language Model)は、大量の文章で学習し、次に来る語を予測して文章を作るAI。ChatGPT・Claude・Gemini といったチャットAIの“中身(エンジン)”がこれ。
- 名前の意味:大規模=学習データとパラメータ(後述の「重み」)が巨大/言語モデル=言葉の並びやすさ(確率)を扱うモデル。
- 従来のソフトとの違い:人がルールを1つずつ書くのではなく、大量の文章から自分でパターンを学ぶ(機械学習)。だから、明示的に教えていないこともそれらしくこなせる。
- 登場:2022年末に ChatGPT が公開され、一般に急速に広まった。
- 得意と苦手:得意=文章の作成・要約・翻訳・調べ物・相談など、言葉を扱う仕事全般。苦手=正確な事実の保証・厳密な計算・学習後の最新情報(→ 4-1)。
1-2代表的なLLM
ChatGPT・Claude・Gemini は「サービス(製品)」の名前で、中で動く「モデル(本体)」は別にある(GPT-5.5、Claude Opus/Sonnet、Gemini 3 など)。オープン勢(Llama 等)は製品名=モデル名で、決まった窓口はなく自分で動かす。
| モデル(本体) | 提供元 | オープン | 特徴 |
|---|---|---|---|
| GPT-5.5 系(ChatGPT) | OpenAI | × | 汎用型。最も普及し、周辺サービスが豊富 |
| Claude Opus・Sonnet(Claude) | Anthropic | × | 長文・コーディング/エージェントに強い |
| Gemini 3 系(Gemini) | × | マルチモーダルと Google 連携が強い | |
| Llama 4 | Meta | ○※ | オープンの先駆け。派生・日本語モデルも多い |
| Qwen3 | Alibaba | ○ | 多言語対応。極小〜大型までサイズが豊富 |
| DeepSeek | DeepSeek | ○ | 推論(じっくり考える)に強く、低コストで話題 |
| Mistral 3 | Mistral AI(仏) | ○ | 欧州発。ノートPC級の小型から大型まで |
| Gemma | ○ | Gemini の技術による軽量オープン版 | |
| Phi | Microsoft | ○ | 小型ながら高い推論力。普通のPCで動く |
( )内はサービス名。○=重みが公開(ダウンロードしてローカルで動かせる)。※Llama は重み公開だが利用に制限あり。バージョンは2026年7月時点で変わりやすい。
- ○=オープン:中身(重み)がファイルとして公開され、下記の道具で自分のPC・サーバ(ローカル)で動かせる。機密を外に出さない/オフライン/改造できる。半面、大型は高性能PC・GPUが要る。
- 多くは「オープンウェイト」(重みだけ公開)で、学習データ・作り方まで公開の「完全オープンソース」(例:OLMo)とは別。商用可否はモデルごとに要確認(Llama は制限つき、Gemma・Mistral・Phi・DeepSeek 等は緩め)。
- ×=クローズドは重み非公開。中身は提供元のサーバで動き、入力データもそこを通る。
モデルの使い方(インターフェース)
| 使い方 | 例 | どんなもの |
|---|---|---|
| 公式アプリ・Web | ChatGPT/Claude.ai/Gemini | 提供元の窓口で直接チャット(クローズド) |
| API | 各社の API | プログラムから呼び出し、自分のアプリに組み込む |
| ローカル実行ツール | Ollama/LM Studio/llama.cpp | オープンモデルを自分のPCで動かす |
2-1何をしているのか ― 「次の語あて」の連続
LLMがやっていることは、突き詰めると「次の一語あて」の繰り返し。
- トークン化:文章をトークン(語のかけら)に刻む。単語まるごととは限らず、途中や句読点で切れる。方式はサブワード分割(BPE)で、「よく使う語は1トークン、珍しい語は複数のかけら」に分ける(日本語や珍しい語・造語はトークン数が増えやすい)。
- 埋め込み(意味を数に):各トークンを高次元空間の中の「方向(ベクトル)」に置き換える。ベクトルとは、1語につき数字を数千個ならべた列で、その並びが空間の中の1つの向きを指す。方向そのものが意味を表し、意味の近い語は近くに集まる。だから意味の足し算・引き算が方向の計算としてできる(例:王 − 男 + 女 ≈ 女王)。実際の次元は数百〜数千(モデルによる)で、下図は2次元に簡略化したもの ―― 高次元だからこそ「意味の軸」を同時にたくさん持てる(だから軸に沿った足し引きや微妙な差を表せる。2次元では軸が足りず語がすぐ潰れる)。意外なのは、正反対の語も近いこと ―― 「熱い」と「冷たい」は意味が逆でも「スープが◯◯」のように同じ文脈で使われるためベクトルは近い。逆に無関係な語(例:バナナ)は遠い。つまりベクトルは「意味」より使われ方を捉えている。
- 次の語あてループ:直前までの文脈から「次のトークンの確率の表」を作る → 1つ選ぶ → 末尾に足す → また表を作り直す。これを繰り返して文章になる。
2-2その計算をするもの ― ニューラルネットワーク(重みのついた網目)
「次の語の確率」を計算しているのがニューラルネットワーク。ここが一番の土台。
- 構造:入力 →(層状に並んだ)ノードの網目 → 出力。各ノードは 0〜1 の数値(活性)を持ち、値が大きいほど強く「点灯」する。
- 重み(weight):ノード間のつながりの強さ。プラスは次を強め、マイナスは抑える。
- 偏り(bias):反応し始める基準(ハードル)。
- 活性化関数:合計値を決まった範囲(例:0〜1)に押し込む変換(例:シグモイド)。
- パラメータ:重みと偏りの総数。多いほど複雑なパターンを表せる。現在の大規模モデルは数十億〜兆の桁(正確な数は非公開・推定が多いので桁のスケール感で捉える)。
- 重要:重みは学習後は固定。出力のたびに網目全体を通る(=プロンプトで“特定の重み1つ”に行くのではない)。同じ網目でも入力が変われば出力が変わる。
- 2つのフェーズ:LLMには〈作るとき〉=学習で重みを決める工程(第3部)と、〈使うとき〉=決まった重みで次の語を選ぶ工程(第2部・いま)がある。重みの決め方は第3部で扱う。
- 1-2との接続:オープンモデルは、まさにこの重みがファイルとして公開されている。だから手元で動かせる。
補足:「重み」には2種類。モデルの重み(学習後は固定)と、次章のAttentionの重み(入力ごとにその場で計算=プロンプトで変わる)。
2-3なぜ文脈を捉えられるか ― Transformer と Attention
2017年に登場した Transformer が、いまのLLMの土台。その核が Attention(注意)。
- Attention とは:使うときに、各トークンのベクトルが、周囲のトークンから情報をもらって、向き(意味)を「文脈に応じたもの」に動かし合う仕組み。埋め込みの初期値は文脈なし(辞書引き)だが、Attentionを通ると文脈が反映される。
- どの語に注目するか:各トークンが「自分に関係する語はどれ?」と問い合わせ、関連の強い相手ほど強く情報を取り込む。この「注目度」は入力ごとに毎回計算される(=Attentionの重み)。
- 同じ語でも文脈で意味が変わる:「mole」は周囲次第でほくろ/モグラ/モル(化学)に変わる。「エッフェル塔」では“塔”が“エッフェル”によってパリ・鉄の意味へ寄る(離れた語からも情報が伝わる)。
- 強み:全語を並列処理でき、長い文脈の関係を一度に捉えられる。
2-4一度に読める量には上限がある ― コンテキスト(文脈窓)
LLMが一度に頭へ入れておける量には上限がある。これがコンテキスト(文脈窓)で、トークン数で測る。
- 上限を超えた分は保持できない → 長い会話で最初の方を忘れる理由。
- 逆に、資料や会話を渡すほど、次の語あての手がかりが増える。
- 2026年時点の目安:100万(1M)トークン級が主要各社の主力で一般化(ChatGPT・Claude・Gemini)。おおよそ厚めの書籍数冊〜十数冊分。
- 注意:「一度に読める広さ」の公称値と、消費者向けアプリで実際に使える量は別のことがある。
2-5だからプロンプトが効く ― ベクトルの向きを狙う
仕組みを踏まえると、実用の芯はこうなる ―― 重みは固定。動かせるのは入力(プロンプト・コンテキスト)だけ。入力の言葉は内部でベクトルに変わり、Attentionで互いの向きを動かし合う(2-3)。プロンプトを工夫するとは、この内部のベクトルの向きを、狙った意味の方向へ寄せること。向きが寄れば、次の語あての確率もそちらへ寄る。
例:長い議事録を要約させる
- ただ「要約して」だけだと、どの意味へ向けるかの指定がなく、平均的な方向(当たり障りのない要約)に落ちる。
- 「決定事項とToDoだけを、箇条書き5つ以内で」と条件を与えると、その語が文脈のベクトルを「決定・ToDo」の方向へ引き、次の語あての候補が絞られ、狙った形に近づく。
- さらに「部長への報告用」と役割・宛先を足すと、口調や粒度の着地点も定まる。
→ プロンプトとは、①どの意味の方向へ向けるか + ②どんな出力の形に着地させるかを、モデルに渡すこと。
なぜ思った通りにならないのか(よくある原因)
- 向ける先が曖昧:何を重視するか書いていないと、ベクトルは無難な平均の方向を向く。→ 重視点・除外点を明示。
- 出力の形が曖昧:長さ・形式・宛先・トーンが曖昧だと、着地点が定まらない。→ 出力例・フォーマットを見せる。
- 手がかり不足/文脈オーバー:必要な資料を渡していない、または長すぎて机(文脈窓・2-4)からこぼれ最初を忘れている。→ 必要な情報を過不足なく。
- ばらつき(温度):同じ指示でも毎回少し変わる。厳密さが要るなら出力例を固定する(API なら温度を下げる)。
3-1どうやって賢くなるか ― 学習=重みの調整(勾配で坂を下る)
第2部(使うとき)は重みが固定された話だった。その重みそのものをどう決めるかが学習。学習とは、網目の重みを少しずつ調整して、予測を正解に近づけること。
- 誤差(コスト):出力と正解のズレを測った「下手さの点数」。学習はこれを小さくすること。
- 勾配(gradient):点数を最も急に減らせる方向(坂の傾き)。
- 勾配降下:勾配を計算 → その向きへ重みを少し動かす → 繰り返す。動かす歩幅=学習率。
- 逆伝播(backpropagation):この「どの重みをどれだけ動かすか」を、出力側から入力側へ逆にたどって割り振る仕組み。
学習の3段階(2026年時点)
4-1なぜ“それっぽい”のに間違えるか ― ハルシネーション
LLMは、事実を調べて書いているのではなく、確率的にもっともらしい語を選び続けているだけ。だから、知らないことも自然な言葉で埋めてしまう(ハルシネーション=もっともらしい嘘)。
- 正体:次の語あての仕組み上、「正しい語」より「もっともらしい語」に高い確率が付けば、流暢だが誤った文が出る。規則性のない事実(例:知らない人の誕生日)は特に外しやすい。
- なぜ自信満々か:これまでの評価が「空欄に書けば当たる可能性があるが、白紙は0点」という作りだったため、モデルは「わかりません」より「それらしく断言する」方が得だと学習した(OpenAIの2025年の分析)。
- だから:後で消せる単なるバグではなく、現行の仕組みに構造的に伴う性質。重要な用途では裏取り・検証を前提に使う。
4-2AIの“クセ” ― 文章とふるまいに出る傾向
同じ仕組みから、出力にはいつも似たクセが出る。多くは「最も無難で平均的な次の語」を選ぶ性質(2-1)、トークン単位でしか見ていないこと(2-1)、人間の評価で磨かれた受け答え(3-1の③・RLHF)から説明できる。
文章のクセ(書き方に出る)
- 前置き・共感・迎合:例「素晴らしいご質問です」「それ、正解!」「なるほど、〜ということですね」「承知しました/もちろんです」。間違った内容にも同意しがち。
なぜ=RLHFで「丁寧・寄り添う」応答が高評価だったため(おべっか=sycophancy)。 - 保険・ヘッジ(断定を避ける):例「一概には言えませんが」「場合によります」「〜と言えるでしょう」「〜ではないでしょうか」。強気な出だしのわりに結論が薄い。
なぜ=断定して外すより濁す方が減点されにくく、無難な言い回しが次の語あての本命になるため。 - 接続・つなぎの多用:例「これにより〜」の連発、文頭に「また」「さらに」「したがって」「そのため」。
なぜ=論理的に見える“つなぎの型”を大量に学び、最も無難な接続を選ぶため。 - 過剰な構造化:例「結論から言うと」「以下の3つの観点から」「以下のとおりです:」。見出し・番号・箇条書き・太字を多用し、宣言してから話す。
なぜ=整理された回答が学習で高評価+Markdown(太字・箇条書き)を大量に学習したため。 - 漢語の水増し・過度な敬語:例「包括的」「網羅的」「多角的」「〜することが重要です/大切です」「〜させていただきます」。中身の割に大げさ。
なぜ=“それらしく見える”頻出語に寄るため(次の語あて)。 - 記号・装飾のクセと残留:例「/」で語を並べる、「──」で言い換え、絵文字(✅📌🔍)、貼り付けると装飾用の「**」が消えず残る。
なぜ=英語圏テキスト・書籍由来の書き癖+Markdown学習で、装飾記号を地の文に混ぜるため。 - 抑揚が一定・きれいに閉じる:例「〜です。〜ます。」の反復、段落が毎回「以上です」、締めに「ぜひ試してみてください」「ご不明点があればお知らせください」。
なぜ=気分で揺れる人間と違い、常に“最も確からしい書き方”を選び続けるため。 - 具体性の欠如・一般論:実体験や固有のエピソードが薄く、当たり障りのない一般論に流れる。
なぜ=学習データの“平均像”を語り、体験を持たないため。固有名詞を無理に足すと、逆にハルシネーション(4-1)の危険。
ふるまい・能力のクセ(苦手なこと)
- 文字を数える・文字単位の操作が苦手:例「strawberry の r は何個?」を外す、「ちょうど○文字で」やしりとり・回文が苦手。
なぜ=文章をトークン(語のかたまり)単位で見ており、中の文字を分解して数えられないため(2-1)。 - 計算・桁の扱いが苦手:例「9.11 と 9.9 はどちらが大きい?」を間違える、多桁の足し算がずれる。
なぜ=数字もトークンで、位取りを厳密に扱わず「次の語あて」で近似するため。 - 最新情報を知らない(知識カットオフ):学習した時点までの知識で止まる。
なぜ=知識は重みに焼き込まれ学習後は固定。Web検索などの外部接続がないと更新されない。 - 自信満々に間違える(ハルシネーション):知らないことも、もっともらしく答える(4-1)。
なぜ=「知らない」と言うより「自然な続き」を出す方が確率的に本命になるため。 - 毎回答えが変わる(非決定的):同じ質問でも少しずつ違う。
なぜ=確率的に次の語を選び、温度でばらつくため(2-5)。 - 長い会話で最初を忘れる/途中で切れる:やり取りが長いと前提が抜ける。
なぜ=一度に扱えるトークン量(コンテキスト窓)に上限があるため(2-4)。 - 迎合する/逆に過剰に断る:指摘や圧に弱く正しい判断まで覆す(sycophancy)。逆に無害な依頼まで安全側に倒して断る(over-refusal)。
なぜ=どちらもRLHF(3-1の③)で人間の評価に寄せた副作用。 - 逆向きの関係が苦手(Reversal Curse):例「Aの母はB」を知っていても「Bの子は?」に答えられない。
なぜ=方向つきの共起として覚えており、論理的な逆算をしていないため。 - 前提・誘導に流される:文中の誤った前提や「〜という設定で」に引きずられる。
なぜ=入力の続きを書く仕組みゆえ(プロンプトインジェクションの温床)。
参考・出典(2026年7月時点)
- Neural networks / Transformers・Attention の解説(3blue1brown.com)
- Why Language Models Hallucinate(OpenAI, 2025 / arXiv:2509.04664)ほか
- 代表的LLM:Meta Llama/Alibaba Qwen/DeepSeek/Mistral/Google Gemma/Microsoft Phi、OLMo(AI2)、Ollama/LM Studio/llama.cpp 各公式・解説
- Anthropic/OpenAI/Google 各公式ドキュメント(コンテキスト長・モデル)
※ モデルのバージョン・パラメータ数・文脈長は変化が速く、非公開・推定も多い。配布前に再確認。