LESSON 25分

ストーリー

佐藤先輩
生成AIの概要はわかった? じゃあ次は、中身の話をしよう

中島先輩がホワイトボードにペンを走らせる。

佐藤先輩
AIに”こういうコード書いて”って頼むと、なぜか結構まともな答えが返ってくる。でもたまにとんでもない嘘をつく。なんでだと思う?
佐藤先輩
えっと… AIが賢いから? でも嘘をつくのは… バグ?
佐藤先輩
ハハ、そうじゃない。LLMの仕組みを知れば、なぜ正しい答えを出せるのか、なぜ間違えるのかが理解できる。道具の仕組みを知ってるかどうかで、使い方が全然変わるからね

LLM(Large Language Model)とは

基本的な考え方

LLM = 大規模言語モデル は、「次に来る可能性が最も高い単語(トークン)を予測する」仕組みです。

graph TD
    A["入力: 「今日の天気は」"] --> B["LLMの内部処理<br/>次に来る確率の高い単語を計算"]
    B --> C["候補:<br/>「晴れ」35% / 「曇り」25%<br/>「雨」20% / 「良い」15% / その他 5%"]
    C --> D["出力: 「晴れ」<br/>(最も確率が高いものを選択)"]

    classDef process fill:#cce5ff,stroke:#004085,color:#000
    classDef result fill:#d4edda,stroke:#28a745,color:#000
    class B,C process
    class D result

この「次のトークンを予測する」処理を繰り返すことで、文章全体が生成されます。

トークンとは

LLMが処理する最小単位を「トークン」と呼びます。

英語の場合:
"Hello, world!" → ["Hello", ",", " world", "!"]  (4トークン)

日本語の場合:
"こんにちは世界" → ["こん", "にち", "は", "世界"]  (4トークン)

コードの場合:
"console.log('hi')" → ["console", ".", "log", "('", "hi", "')"]  (6トークン)

トークン数は、AIサービスの利用料金やコンテキストウィンドウ(一度に処理できる量)に直結する重要な概念です。

モデルコンテキストウィンドウ目安
GPT-4o128Kトークン約300ページの書籍相当
Claude 3.5 Sonnet200Kトークン約500ページの書籍相当
GPT-4o mini128Kトークン約300ページの書籍相当

Transformerアーキテクチャ

革命を起こした仕組み

2017年に発表された「Attention Is All You Need」という論文が、現在のLLMの基盤です。

Transformerの核心: Attention(注意)メカニズム

入力: 「プログラマーが書いたコードを実行した」

Attentionが学ぶこと:
  「実行した」の主語は? → 「プログラマー」に高い注意
  「実行した」の目的語は? → 「コード」に高い注意
  「書いた」のは誰? → 「プログラマー」に高い注意

要するに、文中の各単語が他のどの単語と関連しているかを自動的に学習する仕組みです。

学習の流れ

LLMは以下のステップで作られます:

graph TD
    S1["Step 1: 事前学習<br/>(Pre-training)<br/>大量テキストを学習<br/>次の単語予測を何兆回も繰り返す<br/>汎用的な知識を獲得"]
    S2["Step 2: ファインチューニング<br/>(Fine-tuning)<br/>特定タスクに適したデータで追加学習<br/>例: コード生成、対話、翻訳"]
    S3["Step 3: RLHF<br/>(人間のフィードバックによる強化学習)<br/>人間が良い/悪い回答を評価<br/>人間の好みに合った回答を生成"]

    S1 --> S2 --> S3

    classDef step1 fill:#cce5ff,stroke:#004085,color:#000
    classDef step2 fill:#fff3cd,stroke:#856404,color:#000
    classDef step3 fill:#d4edda,stroke:#28a745,color:#000
    class S1 step1
    class S2 step2
    class S3 step3

パラメータとモデルサイズ

パラメータとは

LLMの「パラメータ」は、学習によって調整される数値(重み)の数です。人間の脳の「シナプスの強さ」に例えられます。

モデルパラメータ数特徴
GPT-215億初期の大規模モデル
GPT-31750億大規模化の転換点
GPT-4非公開(推定1兆以上)マルチモーダル対応
Claude 3.5 Sonnet非公開高いコード生成能力
Llama 3 (70B)700億オープンソース

パラメータが多いほど多くの知識を保持できますが、計算コストも増加します。


温度(Temperature)パラメータ

出力のランダム性を制御する

多くのAIサービスでは「Temperature」というパラメータを設定できます。

Temperature = 0(低い)
  → 最も確率の高い単語を常に選択
  → 同じ質問には同じ回答
  → 正確性重視のタスクに向く

Temperature = 0.7(中程度)
  → ある程度のランダム性を持たせる
  → 自然な文章生成に向く

Temperature = 1.0以上(高い)
  → ランダム性が高い
  → 創造的なタスクに向く
  → ただし、意味不明な出力になるリスクも

エンジニアとしての使い分け:

タスク推奨Temperature理由
コード生成0 〜 0.3正確性が最重要
テストケース生成0.3 〜 0.5多様なケースが欲しい
アイデア出し0.7 〜 1.0創造性を重視
ドキュメント作成0.3 〜 0.5自然さと正確さのバランス

なぜAIは「嘘」をつくのか(ハルシネーション)

ハルシネーションの仕組み

LLMが事実と異なる情報を自信たっぷりに出力することを「ハルシネーション(幻覚)」と呼びます。

なぜ起こるのか:

LLMは「もっともらしい次の単語」を生成しているだけ
  → 事実を"理解"しているのではなく、パターンを再現している
  → 学習データにない情報は「それっぽく」作ってしまう

例:
  質問: 「JavaScriptのsortByメソッドについて教えてください」

  AI回答: 「Array.prototype.sortByは、指定したキーで配列を
          ソートする便利なメソッドです。使い方は...」

  事実: JavaScriptにsortByというメソッドは存在しない。
        AIは「ありそうな」メソッドとして説明を生成してしまった。

ハルシネーションが起きやすいケース

ケース対策
存在しないAPIの説明架空のメソッド名を生成公式ドキュメントで確認
古い情報廃止されたライブラリを推奨バージョンを確認
数値・統計正確でない数値を提示一次ソースを確認
URL存在しないURLを生成リンク先を必ず確認

エンジニアとしての心得

AIの出力に対する鉄則:

1. 「信頼するが、検証する」(Trust but verify)
2. コードは必ず動かして確認する
3. APIやライブラリは公式ドキュメントと照合する
4. AIの回答が「正しそう」というだけで採用しない

まとめ

ポイント内容
LLMの原理「次のトークンを予測する」を繰り返して文章を生成
TransformerAttentionメカニズムで文脈を理解
学習プロセス事前学習 → ファインチューニング → RLHF
Temperature出力のランダム性を制御するパラメータ
ハルシネーションもっともらしい嘘。必ず検証が必要

チェックリスト

  • LLMが「次のトークン予測」で動いていることを理解した
  • トークンの概念とコンテキストウィンドウを理解した
  • Temperatureの役割と使い分けを理解した
  • ハルシネーションの原因と対策を理解した

次のステップへ

LLMの仕組みがわかったところで、次は主要なAIサービス(ChatGPT、Claude、Copilotなど)を比較します。

それぞれの特徴と得意分野を理解して、場面に応じた使い分けができるようになりましょう。


推定読了時間: 25分