LLMとは何か?――「次の単語を予測するだけ」で、なぜ会話・推論・コードまでできるのか
大規模言語モデル(LLM)の仕組みを、トークン化、Embedding、Self-Attention、Transformer、事前学習、Post-training、推論、RAG、ツール利用まで一つの流れとして解説する。
この記事の結論
- LLMは文章を保存して検索する装置ではなく、トークン間の関係を大量のパラメータとして学習したニューラルネットワークである
- 現在の代表的なLLMはTransformerを基盤とし、EmbeddingとSelf-Attentionを何層も通して文脈に応じた内部表現を作る
- 学習では正解との誤差からパラメータを更新し、利用時の推論では学習済みパラメータを使って次のトークンを繰り返し生成する
- LLM単体と、検索・RAG・メモリ・コード実行・外部ツールを組み合わせたAIサービスは区別して考える必要がある
この記事で分かること
- LLMは文章をどのように数値へ変換しているのか
- 「次のトークン予測」だけで、なぜ質問回答・翻訳・要約・コード生成までできるのか
- Embedding、Self-Attention、Transformer、パラメータとは何なのか
- 学習時と、私たちがChatGPTなどを使っているときの「推論」は何が違うのか
- LLMは知識をどこに持っているのか
- なぜモデルを大きくすると能力が変化するのか
- Temperatureやコンテキストウィンドウは何を変えるのか
- RAG、ファインチューニング、ツール利用はそれぞれ何を補うのか
- なぜLLMは流暢に間違えるのか
- LLM単体と、現在のAIサービスは何が違うのか
まず結論――LLMは「巨大な文章データベース」ではない
LLMは Large Language Model(大規模言語モデル) の略です。
大量の文章やコードなどを使って学習し、与えられた文脈に対して「次にどのトークンが続く可能性が高いか」を計算できるニューラルネットワークです。
ここだけ聞くと、単なる高性能な予測変換のように思えます。
しかし実際には、次のトークンを正しく予測するためには、
- 文法
- 単語の意味
- 文脈
- 人物や物事の関係
- 文章の形式
- プログラムの構造
- ある程度の世界知識
- 問題を解くときに有効なパターン
などを内部表現として獲得することが役立ちます。
その結果、十分に大きく学習されたモデルでは、文章生成だけでなく、質問回答、要約、翻訳、分類、コード生成、情報抽出、ある種の推論など、学習時に個別の専用プログラムとして書かれていない多様な処理が可能になります。
LLMは、文章をトークンへ分解し、それを数値表現へ変換し、文脈との関係を計算しながら出力を作ります。
この説明だけを見ると、いかにも「機械的な数値処理」に思えるかもしれません。しかし、人間の脳も外界の情報をそのまま扱っているわけではありません。文字は光として目に入り、音声は空気の振動として耳に入り、それぞれが神経信号へ変換され、脳内で複数段階の処理を受けます。
非常に高い抽象度で見れば、LLMにも人間にも「外部入力を内部表現へ変え、文脈と統合して出力する」という似た形を見いだせます。そのため、「LLMは数値を処理しているだけだから意味を理解していない」「人間とはまったく別物だ」と、この一点だけから言い切ることも適切ではありません。
一方で、両者の学習条件、身体性、記憶、環境との継続的な相互作用には大きな違いがあります。典型的なLLMの基礎学習は主として大量のトークン列から統計的構造を学ぶものであり、LLMに人間と同じ主観的経験や意識があることを示す確立した科学的証拠もありません。
したがって本記事では「LLMは本当に理解しているのか」という結論を先に置きません。まず、内部で何が計算され、どのような表現が形成され、その結果どのような能力が現れるのかを見ていきます。
「理解」「意味」「意識」を人間の脳と比較する問題については、子記事の人間の脳とLLMの「意味」は何が違うのか?で詳しく扱います。
LLMが文章を出すまでを一枚で見る
まず細部に入る前に、全体の流れを見ます。
ユーザーの文章
↓
① トークン化
↓
② Token ID
↓
③ Embedding
↓
④ 位置情報を加える
↓
⑤ Transformer
│
├─ Self-Attention
├─ Feed Forward Network
└─ これを多数の層で繰り返す
↓
⑥ 次トークンの確率分布
↓
⑦ トークンを選択
↓
選んだトークンを入力に追加
↓
再び次トークンを計算
↓
…
↓
回答完成
この一連の処理を理解すると、「LLMが何をしているのか」がかなり見通しやすくなります。
1. 最初の処理――文章を「トークン」に分ける
コンピュータは文章を、そのまま人間のように読んでいるわけではありません。
最初に文章を**トークン(token)**という単位へ分割します。
例えば、
今日はいい天気ですね
という文章があったとしても、必ず、
今日 / は / いい / 天気 / です / ね
と単語単位になるわけではありません。
実際の分割方法はTokenizerによって異なり、単語全体、単語の一部、漢字、ひらがな、記号などが一つのトークンになることがあります。
なぜ文字ではなくトークンなのか
すべてを一文字ずつ扱えば系列が非常に長くなります。
逆に、世界中のすべての単語を一単語=一IDにすると、未知語、活用形、固有名詞などへの対応が難しくなります。
そこで現在の多くのLLMでは、その中間となるようなサブワード単位などを使います。
Token ID
分割したトークンには番号が割り当てられます。
"AI" → 12345
"とは" → 678
"何" → 910
というようなイメージです。
ただし、この番号自体に「意味の近さ」はありません。
「犬」が100番、「猫」が9000番だからといって、数値として9000の方が大きいという意味はありません。
次のEmbeddingで、この単なる番号をモデルが扱える意味表現へ変換します。
2. Embedding――言葉を「意味を扱える数値」に変える
ここでいう「意味を扱える」とは、数値そのものが意味になるということではありません。言語上の関係や文脈をモデルが計算に利用できる数値表現へ変換するという意味です。
Token IDのままでは、ニューラルネットワークは言葉同士の関係を十分に扱えません。
そこで各トークンを、多数の数値からなるベクトルへ変換します。
これを**Embedding(埋め込み表現)**と呼びます。
概念的には、
猫 → [0.21, -0.84, 0.13, 0.72, ...]
犬 → [0.19, -0.79, 0.16, 0.68, ...]
自動車 → [-0.51, 0.22, 0.91, -0.14, ...]
のような形です。
実際の次元数はモデルによって異なり、ここに示した数値は説明用です。
「意味空間」という考え方
学習が進むと、モデル内部では似た使われ方をするものが、ある程度似た表現を持つようになります。
ただし、「Embeddingの1番目の数字が動物度、2番目が大きさ」のように、人間が各次元へ明確な意味を付けられるわけではありません。
意味や特徴は多数の次元へ分散して表現されます。
さらに重要なのは、Transformerを通った後の内部表現は文脈によって変化することです。
例えば「bank」は、
- river bank
- bank account
では意味が異なります。
LLMは単語に固定された辞書的意味だけを持つのではなく、周囲のトークンとの関係を使って、その文脈に応じた表現を作っていきます。
3. 文章には「順番」がある――位置情報
Transformerはトークン同士をまとめて処理できる構造ですが、文章では順序が重要です。
犬が人を噛んだ
と、
人が犬を噛んだ
では、登場する単語が似ていても意味が違います。
そのためモデルには、各トークンが文章中のどの位置にあるのかを扱う仕組みが必要です。
Transformerでは位置エンコーディングや、現在広く使われる相対位置表現など、モデルによって異なる方法で位置関係を扱います。
ここで重要なのは、LLMが**「どのトークンが存在するか」だけでなく、「どの順番・距離・文脈で存在するか」も計算に入れている**という点です。
4. Transformerとは何か
現在の代表的なLLMの多くは、Transformerを基盤としています。
Transformerは2017年の論文 Attention Is All You Need で提示されたニューラルネットワーク構造です。
LLMを理解するうえで最も重要な部分なので、「Transformerという技術を使っています」で終わらせず、中で何をしているのかを見ていきます。
大まかには、Transformerの各層では、
入力された各トークンの表現
↓
Self-Attention
↓
トークン同士の関係を反映
↓
Feed Forward Network
↓
次の層へ
という処理が行われます。
実際にはResidual Connection、正規化なども含まれます。
そして、このブロックを何層も重ねます。
5. Self-Attention――「この言葉は、どの言葉を見るべきか」
Transformerの中心となる仕組みがSelf-Attentionです。
例えば、
太郎は店でリンゴを買った。彼はそれを家で食べた。
という文章を考えます。
「彼」は誰なのか。
「それ」は何なのか。
文章を理解するには、
彼 → 太郎
それ → リンゴ
という離れた位置の関係を考える必要があります。
Self-Attentionでは、各トークンが他のトークンとの関係を計算し、「現在のトークンを処理するために、どのトークンの情報をどれくらい利用するか」を決めます。
Q・K・Vとは
Attentionの説明では、
- Query(Q)
- Key(K)
- Value(V)
という言葉が登場します。
直感的には、
Query : 「私は今、どんな情報を探しているか」
Key : 「私はどんな情報と関係しそうか」
Value : 「実際に渡す情報」
と考えると理解しやすくなります。
各トークンからQ、K、Vを作り、Queryと各Keyの相性を計算します。
概念的には、
Attention(Q,K,V)
↓
QとKの類似度を計算
↓
重要度へ変換
↓
その重要度でVを重み付き合成
となります。
代表的なScaled Dot-Product Attentionは、
Attention(Q,K,V) = softmax(QKᵀ / √dₖ)V
と表されます。
式を暗記する必要はありません。
重要なのは、
「現在のトークンに必要な情報を、文脈中の別のトークンから動的に集める仕組み」
だということです。
Multi-Head Attention
Attentionは一種類の関係だけを見るとは限りません。
複数のAttention Headを使うことで、モデルは異なる関係を並行して扱えるようになります。
ただし、「このHeadは必ず主語担当、このHeadは必ず時制担当」と固定的に理解するのは正確ではありません。実際の内部表現はより複雑です。
6. Feed Forward Network――各トークンの表現をさらに変換する
TransformerはAttentionだけではありません。
Attentionで文脈中の情報を取り込んだ後、各位置の表現は**Feed Forward Network(FFN)**を通ります。
非常に単純化すると、
- Attention:トークン同士で情報を交換する
- FFN:集めた情報を各トークン位置で変換する
という役割分担として見ることができます。
現在のLLMではFFN部分が非常に大きなパラメータ数を持つこともあります。
7. Transformerを何十層も通すと何が起きるのか
一回のAttentionだけで文章全体を「理解」するわけではありません。
Transformerブロックを何層も通るたびに、各トークンの内部表現は更新されます。
イメージとしては、
初期
「彼」=単なるトークン
↓ 数層
「彼」=人を指す可能性が高い
↓ さらに処理
「彼」=この文脈では太郎を指す可能性が高い
↓ さらに処理
文全体の意味や、次に何が来そうかを判断するための表現
のように、文脈を反映した表現へ変化していきます。
もちろん、実際の内部処理がこのような人間向けのラベルに明確に分かれているわけではありません。
ここでは「各層で表現が更新され、より文脈依存になる」という点が重要です。
8. 最後に「次のトークンの確率」を出す
Transformerを通った内部表現から、モデルは語彙中の各トークンについて確率に相当する分布を作ります。
例えば説明用に、
「日本の首都は」
東京 0.82
大阪 0.04
京都 0.03
東京都 0.02
その他 0.09
のような結果になったとします。
実際には語彙全体に対してスコアを計算し、生成方式に応じて次のトークンを選びます。
選んだトークンを文章の末尾へ追加します。
日本の首都は
↓
日本の首都は東京
すると、今度はこの新しい文脈を使って、その次を計算します。
日本の首都は東京
↓
です
さらに、
日本の首都は東京です
↓
。
というように繰り返します。
これが自己回帰的(autoregressive)生成の基本です。
9. では、なぜ「次のトークン予測」だけで賢くなるのか
LLMで最も不思議なのはここです。
次のトークンを当てているだけなら、なぜ質問に答えたり、翻訳したり、プログラムを書いたりできるのでしょうか。
理由の一つは、次のトークンを高い精度で予測すること自体が非常に難しい課題だからです。
例えば、
フランスの首都は__
を当てるには、単語の並びだけでなく「フランス」と「パリ」の関係を学習していることが有利です。
彼は傘を持たずに外へ出た。空から激しく雨が降ってきたので__
なら、文章の因果関係や状況についてのパターンが役立ちます。
コードの続きを予測するなら、構文、変数、関数、APIの使われ方、アルゴリズムのパターンなどを学ぶ必要があります。
つまり、
大量の異なる文章で次トークン予測を成功させようとすると、そのために役立つ言語・概念・関係・手続きの内部表現が学習される
と考えることができます。
ただし、ここから「LLMは人間と同じ世界モデルを持つ」「本当に意味を理解している」と直ちに結論することはできません。
何をどの程度内部表現しているのかは、現在も重要な研究対象です。
10. LLMはどうやって学習するのか
10-1. 事前学習
まず、大量の文章やコードなどを使って予測課題を繰り返します。
例えば、
入力:日本の首都は
正解:東京
に対してモデルが、
大阪 60%
東京 20%
京都 10%
...
と予測したなら、正解から大きく外れています。
そこで**Loss(損失)**を計算します。
Lossは簡単に言えば、
「モデルの予測が正解からどの程度ずれていたか」
を表す値です。
10-2. Backpropagation
Lossが分かったら、その誤差に各パラメータがどのように関係したかを逆向きに計算します。
これが**誤差逆伝播(Backpropagation)**です。
10-3. Optimizerによる更新
勾配を使ってパラメータを少し変更します。
予測
↓
正解と比較
↓
Loss
↓
Backpropagation
↓
パラメータを少し更新
↓
次のデータ
これを膨大な回数繰り返します。
LLMの「学習」とは、基本的にはこのように大量のパラメータを少しずつ調整する工程です。
11. パラメータとは――LLMの「学んだもの」はどこにあるのか
パラメータとは、ニューラルネットワーク内部にある大量の数値です。
学習によってこの数値が調整されます。
よく、
LLMはインターネットを全部記憶している
と説明されることがありますが、通常の検索エンジンや文書データベースのように、Webページを一ページずつ棚へ保存して必要時に検索しているわけではありません。
学習データ中に存在する複雑なパターンが、ネットワーク全体のパラメータへ分散して反映されます。
ただし、「絶対に文章を記憶しない」という意味でもありません。
学習データの重複や特徴によっては、特定の文字列を再現するような**memorization(記憶・暗記)**が起こることもあります。
したがって、
- データベースのように全文をそのまま保存しているわけではない
- しかし学習内容がパラメータへ反映される
- 一部の内容を非常に強く記憶する場合もある
という区別が重要です。
12. 「学習」と、利用時の「推論」は別
AI分野では**推論(inference)**という言葉が二つの意味で混同されやすいので注意が必要です。
一つは、人間が言う「論理的に推論する」という意味。
もう一つは機械学習でいう、
学習済みモデルへ入力を与えて結果を計算する処理
という意味です。
ChatGPTなどへ質問を送り、モデルが回答を生成している処理も、この意味では推論です。
学習時
データ
↓
予測
↓
正解と比較
↓
誤差
↓
パラメータ更新
通常の利用時
ユーザー入力
↓
学習済みパラメータで計算
↓
出力
通常の会話をするたびに、モデル本体のパラメータがその場で再学習されているわけではありません。
会話の前の内容を覚えているように見える場合、多くは過去の会話が現在のコンテキストとしてモデルへ再入力されているためです。
製品によっては、これとは別に保存メモリやユーザー情報を取得してコンテキストへ加える仕組みもあります。
13. 事前学習しただけでは「便利なチャットAI」にはならない
大量データで次トークン予測を学習したモデルをBase Modelとして考えます。
Base Modelは言語のパターンを広く学んでいても、必ずしも、
- 質問へ素直に答える
- 指示された形式を守る
- 危険な要求を適切に扱う
- 分からないときに適切に振る舞う
といった性質を十分に持っているとは限りません。
そこで事前学習後に**Post-training(後学習)**を行います。
Supervised Fine-Tuning
「この指示には、このように答える」という例を使い、指示に従いやすく調整します。
人間やAIからのフィードバック
複数の回答候補のどちらが望ましいかなどの評価を利用して、回答の有用性、安全性、指示追従性などを改善します。
RLHF(Reinforcement Learning from Human Feedback)は代表的な手法の一つです。
現在は人間のフィードバックだけでなくAIによる評価を利用する方法など、さまざまなPost-training手法があります。
したがって、
大量データ
↓
Pre-training
↓
Base Model
↓
Post-training
↓
指示に従いやすいモデル
という流れで考えると分かりやすくなります。
14. Fine-tuningとRAGは何が違うのか
ここは実務で非常に混同されやすい部分です。
Fine-tuning
モデルのパラメータを追加学習によって変更します。
向いている例:
- 特定形式で回答させたい
- 特定タスクへ適応させたい
- 出力スタイルや振る舞いを調整したい
RAG
モデル本体のパラメータを基本的には変更せず、回答時に外部文書を検索して入力へ追加します。
向いている例:
- 社内規程を参照したい
- 最新資料を使いたい
- 大量の製品マニュアルから回答したい
- 根拠となる文書を提示したい
つまり、
Fine-tuning
→ モデル自体を調整する
RAG
→ 必要な資料をその都度モデルへ渡す
という違いです。
「会社の最新マニュアルを覚えさせたい」という目的なら、常にFine-tuningが最適とは限りません。更新頻度や出典提示の必要性によってはRAGの方が適しています。
15. RAGの内部では何が起きているのか
RAGは Retrieval-Augmented Generation の略です。
基本構造は、
質問
↓
検索用の表現を作る
↓
関連文書を検索
↓
関連箇所を取得
↓
質問+取得文書をLLMへ渡す
↓
回答生成
です。
文書を小さな単位へ分割するChunking、文書や質問をベクトル化するEmbedding、近い文書を探すVector Search、検索結果を並べ直すRerankingなどを組み合わせることがあります。
RAGを使えば正しくなる、ではない
RAGにも失敗箇所があります。
- 必要な文書が登録されていない
- Chunkの切り方が悪い
- 検索で必要な箇所を取れない
- 古い文書を取得する
- LLMが取得文書を読み違える
- 出典は正しいが結論が出典と一致しない
したがって、
「出典が付いている」ことと「その出典が回答を裏付けている」ことは別
です。
16. コンテキストウィンドウ――LLMの「作業机」
LLMが一回の処理で参照できるトークン範囲をコンテキストウィンドウと呼びます。
ここには製品設計によって、
- System instruction
- ユーザーの質問
- 過去の会話
- 添付文書
- RAGで取得した文章
- ツールの実行結果
などが含まれる場合があります。
コンテキストウィンドウは、LLMの長期記憶そのものではありません。
イメージとしては作業机に近いものです。
机の上に置かれている情報は参照できますが、机から外れた情報を自動的に永続保存しているわけではありません。
また、長いコンテキストを入力できることと、その全内容を常に完全な精度で利用できることも同義ではありません。
17. Temperatureを変えると何が変わるのか
LLMは次トークンについて確率分布を作ります。
生成時には、この分布からどのようにトークンを選ぶかを調整できます。
代表的な設定の一つがTemperatureです。
一般的には、
- 低いTemperature:確率の高い候補を選びやすく、出力が安定しやすい
- 高いTemperature:低確率の候補も選ばれやすく、多様性が増えやすい
という傾向があります。
ただし、Temperatureを低くしたからといって事実性が保証されるわけではありません。
もともと誤った候補へ高い確率を与えていれば、安定して間違えることもあります。
Top-pなど、他のサンプリング方法と組み合わせる場合もあります。
18. なぜ同じ質問でも回答が変わるのか
生成AIへ同じ質問をしても、回答が毎回完全に一致するとは限りません。
理由には、
- サンプリングのランダム性
- Temperatureなどの生成設定
- 会話コンテキストの違い
- System instructionの違い
- 検索結果の違い
- 使用モデルやサービス側処理の変更
などがあります。
したがって、「同じLLMを使っているサービスなら必ず同じ答えになる」とは限りません。
19. モデルを大きくすると何が変わるのか
LLMの「Large」には、単純なパラメータ数だけでなく、大規模なデータと計算資源を使って学習するという背景があります。
モデル性能は、
- パラメータ数
- 学習データ量
- データ品質
- 学習計算量
- モデル構造
- Post-training
- 推論時の計算方法
など複数要因で決まります。
そのため、
パラメータ数が多いモデル=必ず優秀
ではありません。
同じ規模でも学習方法やデータ、設計によって性能は変わります。
また、モデル規模や学習計算量を増やすにつれて性能が一定の傾向で向上する現象はScaling Lawsとして研究されてきました。
一方で、能力がどのように現れるか、どこまで規模拡大で伸びるかはタスクや評価方法によって異なります。
20. 「推論能力」はどこから来るのか
近年のLLMは、単なる文章補完に見えない複雑な問題解決を行うことがあります。
ただし、「次トークン予測から推論能力が生まれる仕組み」が完全に解明された、と単純に言える状況ではありません。
考える際には、少なくとも次の要素を分ける必要があります。
- 事前学習で獲得した大量のパターン
- Transformerによる文脈処理
- Post-trainingによる問題解決行動の強化
- 推論時により多くの計算を使う手法
- 外部ツールや検索の利用
見た目として同じ「AIが考えて答えた」でも、モデル内部だけで処理したのか、検索したのか、コードを実行したのかでは仕組みが違います。
LLMの能力を理解するときは、モデル単体の能力とシステム全体の能力を分けることが重要です。
21. Dense ModelとMoE
すべてのLLMが同じ内部構造というわけではありません。
Dense Model
各トークンの処理で、基本的に同じモデル内のパラメータ群を使う構造です。
Mixture of Experts(MoE)
複数の「Expert」と呼ばれるネットワークを持ち、入力に応じてその一部を選択して計算する構造です。
MoEでは、総パラメータ数を大きくしながら、各トークンで実際に使う計算量を抑える設計が可能になります。
ここでも「総パラメータ数」と「推論時に有効化されるパラメータ数」は同じとは限りません。
22. 量子化――なぜ巨大なモデルを小さなPCでも動かせるのか
モデルのパラメータは数値として保存されます。
通常より低い精度でパラメータを表現して、必要なメモリ容量や計算負荷を減らす方法を**量子化(Quantization)**と呼びます。
例えば高精度な表現から8bitや4bitなどへ落とすことで、モデルをより少ないVRAM/RAMで動かせる場合があります。
その代わり、方式やモデルによっては性能低下が起こる可能性があります。
ローカルLLMを考えるときは、
- パラメータ数
- 量子化方式
- 必要メモリ
- コンテキスト長
- 推論速度
をセットで見る必要があります。
23. LLMとマルチモーダルモデル
LLMは本来「Language Model」です。
しかし現在のAIでは、文章だけでなく、
- 画像
- 音声
- 動画
- 文書
- その他の構造化情報
を扱えるモデルやシステムが増えています。
これをマルチモーダルと呼びます。
画像を扱う場合でも、最終的に言語モデル部分と接続して回答を生成する構成など、実装方法はさまざまです。
したがって、
生成AI = LLM
ではありません。
また、
マルチモーダルAI = 単純にLLMへ画像ファイルを直接入れているだけ
とも限りません。
モデルや製品によって内部構造は異なります。
24. LLM単体と「ChatGPTのようなサービス」は別物
ここは非常に重要です。
ユーザーが普段触っているAIサービスは、LLM一個だけで構成されているとは限りません。
概念的には、
┌─ Web検索
├─ RAG
├─ ファイル解析
ユーザー → AIサービス ─┼─ コード実行
├─ 画像生成
├─ 外部アプリ
├─ メモリ
└─ LLM
のようなシステムです。
そのため、
「このAIは最新ニュースを知っていた。LLMが最新ニュースまで学習済みなのだ」
とは限りません。
Web検索で取得した情報をLLMへ渡している可能性があります。
同様に、正確な計算結果が出たとしても、LLM自身が暗算したのではなく計算ツールを利用した可能性があります。
25. Tool Use――LLMに「手足」を付ける
LLM単体の基本出力はトークンです。
しかし、モデルが構造化された命令を出し、それを外部システムが実行すれば、
- Webを検索する
- 電卓で計算する
- Pythonを実行する
- ファイルを編集する
- データベースを検索する
- メールを送る
- カレンダーへ予定を入れる
といった処理が可能になります。
ここでは、
LLMが「ツールを使うべき」と判断
↓
ツール呼び出し要求
↓
外部システムが実行
↓
実行結果をLLMへ返す
↓
LLMが結果を読んで次を決める
という循環が起きます。
LLM自身が直接インターネットやOSを魔法のように操作しているわけではありません。
26. AIエージェントとは
AIエージェントには統一された一つの定義だけがあるわけではありませんが、一般には、
目標を受け取り、必要な手順を選び、ツールを利用し、その結果を確認しながら複数段階の処理を進めるシステム
を指すことが多くなっています。
例えば、
「この売上データを分析して報告書を作って」
↓
ファイルを読む
↓
分析方法を決める
↓
コードを実行
↓
結果を確認
↓
グラフを作る
↓
文章を書く
↓
報告書ファイルを作る
という仕事を一連の流れとして実行します。
LLMは判断や言語処理の中心を担えますが、実際のエージェントシステムには、
- 権限管理
- ツール
- 実行環境
- 状態管理
- メモリ
- エラー処理
- 検証
- 人間による承認
なども重要です。
27. なぜLLMはハルシネーションを起こすのか
LLMは非常に自然な文章を作れます。
しかし、
自然な文章であることと、事実であることは別です。
LLMの基本的な生成処理は、現在の文脈から次に適切そうなトークンを生成することです。
「この文章は事実データベースのどのレコードと完全一致するか」を毎回確認してから文章を出しているわけではありません。
そのため、情報が不足していても、
- 存在しない論文
- 架空のURL
- 間違った日付
- 実在しない人物
- 誤った数字
- もっともらしい説明
を生成することがあります。
なぜ流暢なのに間違えるのか
文章の流暢さと事実性は別の能力だからです。
「それらしい文章」を作る能力が非常に高いほど、誤りも自然に見える場合があります。
対策
重要な用途では、
- 一次資料を検索する
- RAGで根拠文書を与える
- 引用箇所と主張を照合する
- 計算は計算ツールへ任せる
- コードは実行して確認する
- 複数の検証工程を入れる
- 人間が最終確認する
など、複数層の対策が必要です。
28. LLMが苦手なこと
モデルや世代によって性能差はありますが、LLMという仕組みを利用する以上、次の点には注意が必要です。
学習していない最新情報
モデル内部の学習済みパラメータだけでは、学習後に起きた出来事を自動的には知りません。
検索など外部情報取得が必要です。
厳密な事実確認
流暢さと正確さは別です。
長い文脈の完全利用
長文を入力できても、すべての条件を常に同じ精度で利用できるとは限りません。
厳密な計算
計算能力は向上していますが、正確性が必須なら計算機やコード実行を利用する方が適切です。
現実世界との直接接続
LLM単体には目も手もブラウザもありません。外部システムとの接続が必要です。
29. オープンモデルとクローズドモデル
「オープンLLM」という言葉にも注意が必要です。
オープンには、
- モデルの重みが公開されている
- ソースコードが公開されている
- 学習方法が公開されている
- 学習データが公開されている
- 商用利用できる
など複数の意味があります。
重みをダウンロードできるからといって、必ずしもすべてがオープンソースというわけではありません。
ローカル実行を考える場合は、ライセンス、必要計算資源、量子化、データの保存先などを確認します。
30. LLMを見るときに「パラメータ数」だけでは不十分
モデルを比較するときは、単一の数字だけで評価しない方がよいでしょう。
見るべき要素には、
- モデル構造
- パラメータ規模
- DenseかMoEか
- 学習データとその品質
- Post-training
- コンテキストウィンドウ
- マルチモーダル対応
- 推論時に使える計算量
- Tool Use
- RAG・検索
- 推論速度
- 必要メモリ
- コスト
- ライセンス
などがあります。
そして実際に利用者が使う場合は、モデル性能だけでなくサービス全体の設計も結果を大きく左右します。
31. ここまでを一枚につなげる
LLMの全体像を、もう一度つなげます。
【学習】
大量の文章・コード
↓
Tokenizer
↓
Transformer
↓
次トークンを予測
↓
正解と比較してLoss計算
↓
Backpropagation
↓
パラメータ更新
↓
膨大な回数繰り返す
↓
Base Model
↓
Post-training
↓
指示に従いやすいLLM
【利用時】
ユーザーの入力
↓
Tokenizer
↓
Embedding+位置情報
↓
Transformer × 多数の層
│
├─ Self-Attention
└─ FFN
↓
次トークンの確率
↓
トークン選択
↓
繰り返して回答
【実際のAIサービス】
┌─ Web検索
├─ RAG
├─ ファイル
ユーザー → システム ─┼─ LLM
├─ コード実行
├─ 外部アプリ
└─ メモリ
この三つを分けて理解すると、
- LLMとは何か
- LLMがどう学習するか
- LLMがどう文章を生成するか
- ChatGPTのようなAIサービスがなぜLLM以上のことをできるのか
が混ざりにくくなります。
よくある質問
LLMは文章を丸暗記しているのですか
単純な全文データベースではありません。学習データ中のパターンはパラメータへ分散して反映されます。一方で、条件によっては特定の文章や情報を強く記憶・再現することもあるため、「何も記憶していない」と言い切るのも正確ではありません。
次のトークンを予測しているだけなのに、本当に文章の意味を理解しているのですか
「理解」をどう定義するかによります。LLM内部には文脈や概念の関係を扱うために有用な表現が形成されますが、それが人間の主観的な理解や意識と同じであることを意味しません。LLMの内部表現と能力をどのように解釈するかは研究上も重要なテーマです。
LLMは会話するたびに賢くなりますか
通常の推論では、会話のたびにモデル本体のパラメータを更新するわけではありません。過去の会話を覚えているように見える場合、会話履歴や別の保存メモリが入力コンテキストへ追加されている場合があります。
RAGを使えばハルシネーションはなくなりますか
なくなりません。検索漏れ、誤った文書取得、古い情報、文書の誤読、出典と結論の不一致などが起こり得ます。
Temperatureを0にすれば正しい答えになりますか
正しさは保証されません。出力のランダム性を抑えることと、モデルが正しい情報を持っていることは別問題です。
パラメータ数が最大のLLMが一番賢いのですか
必ずしもそうではありません。データ、学習量、モデル構造、Post-training、推論方法、評価タスクなどによって性能は変わります。
LLMと生成AIは同じですか
同じではありません。LLMは主に言語を扱うモデルの一種です。生成AIは文章、画像、動画、音声、音楽など新しい内容を生成するAIを広く指します。
ChatGPTのようなサービスそのものがLLMなのですか
サービスとモデルは分けて考える方が正確です。現在のAIサービスは、LLMに検索、RAG、ファイル処理、コード実行、画像生成、メモリ、外部アプリなどを組み合わせている場合があります。
関連する記事
AIとは何か?――機械学習・生成AI・LLMまでを一枚の地図で理解する
AI、機械学習、深層学習、生成AI、LLMの違いと関係を、初めて学ぶ人向けに整理する入口記事。
生成AIサービス一覧――チャット・仕事・画像・動画・音楽を用途別に比較
ChatGPT、Gemini、Claude、Qwenなどの主要生成AIサービスを、用途、無料枠、有料プラン、特徴、注意点で整理する。
人間の脳とLLMの「意味」は何が違うのか?――AIは本当に理解していないのか
LLMは数値を処理するだけだから意味を理解していない――その説明は本当に十分なのか。人間の脳とLLMを、内部表現、学習、身体性、感覚、記憶、記号接地、意識の観点から比較する。