プロンプトのテクニックを学ぶ前に、AI言語モデルが実際にどのように動作するかを理解しておくと役立ちます。この知識があれば、より良いプロンプトを書けるようになります。

<Callout type="info" title="なぜこれが重要なのか">
AIの仕組みを理解することは、専門家だけのものではありません。より良いプロンプトを書くことに直接役立ちます。AIが次に来るものを予測していると分かれば、自然とより明確な指示を出せるようになります。
</Callout>

## 大規模言語モデルとは？

大規模言語モデル（LLM）は、膨大な量のテキストを読んで学習したAIシステムです。文章を書いたり、質問に答えたり、人間のような会話ができます。「大規模」と呼ばれるのは、学習中に調整された何十億もの小さな設定値（パラメータと呼ばれます）を持っているからです。

### LLMの仕組み（簡略版）

本質的に、LLMは予測マシンです。テキストを与えると、次に何が来るべきかを予測します。

<TryIt compact prompt={`この文を完成させてください：「新しいことを学ぶ最良の方法は...」`} />

「フランスの首都は...」と入力すると、AIは「パリ」と予測します。なぜなら、フランスについてのテキストでは通常それが次に来るからです。このシンプルなアイデアが、膨大なデータで何十億回も繰り返されることで、驚くほど賢い振る舞いが生まれます。

<TokenPredictionDemo />

### 重要な概念

**Token**: AIは一文字ずつ読むのではありません。テキストを「token」と呼ばれる塊に分割します。tokenは「hello」のような完全な単語の場合もあれば、「ing」のような単語の一部の場合もあります。tokenを理解することで、AIがなぜスペルミスをしたり、特定の単語で苦労したりするのかが分かります。

<Callout type="info" title="Tokenとは？">
Tokenは、AIモデルが処理するテキストの最小単位です。必ずしも完全な単語ではなく、単語の一部、句読点、または空白の場合もあります。例えば、「unbelievable」は3つのtokenになることがあります：「un」+「believ」+「able」。平均して、**1 token ≈ 4文字**または**100 token ≈ 75単語**です。APIのコストとコンテキストの制限はtokenで計測されます。
</Callout>

<TokenizerDemo />

**Context Window**: これは、AIが1つの会話で「覚えていられる」テキストの量です。AIの短期記憶のようなものと考えてください。あなたの質問とAIの回答の両方が含まれます。

<ContextWindowDemo />

Context windowはモデルによって異なり、急速に拡大しています：

<div className="my-4 grid gap-2">
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">GPT-4o</span>
    <span className="text-muted-foreground">128K tokens</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">GPT-5</span>
    <span className="text-muted-foreground">400K tokens</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">Claude Sonnet 4</span>
    <span className="text-muted-foreground">1M tokens</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">Gemini 2.5</span>
    <span className="text-muted-foreground">1M tokens</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">Llama 4</span>
    <span className="text-muted-foreground">1M-10M tokens</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-32">DeepSeek R1</span>
    <span className="text-muted-foreground">128K tokens</span>
  </div>
</div>

**Temperature**: これは、AIがどれだけ創造的か、または予測可能かを制御します。低いtemperature（0.0〜0.3）は、集中した一貫性のある回答を提供します。高いtemperature（0.7〜1.0）は、より創造的で意外な回答を提供します。

<TemperatureDemo />

**System Prompt**: 会話全体を通じてAIにどのように振る舞うべきかを伝える特別な指示です。例えば、「あなたは物事をシンプルに説明するフレンドリーな先生です。」すべてのAIツールでこれを設定できるわけではありませんが、利用可能な場合は非常に強力です。

## AIモデルの種類

### テキストモデル（LLM）
最も一般的なタイプで、テキスト入力に対してテキスト応答を生成します。チャットボット、文章作成アシスタント、コードジェネレーターを動かしています。例：GPT-4、Claude、Llama、Mistral。

### マルチモーダルモデル
テキストだけでなく、それ以上のものを理解できます。画像を見たり、音声を聞いたり、動画を見たりできます。例：GPT-4V、Gemini、Claude 3。

### テキストから画像へのモデル

<Callout type="info" title="本書について">
本書は主に大規模言語モデル（テキストベースのAI）のプロンプティングに焦点を当てていますが、明確で具体的なプロンプティングの原則は画像生成にも適用されます。これらのモデルでプロンプトをマスターすることは、優れた結果を得るために同様に重要です。
</Callout>

DALL-E、Midjourney、Nano Banana、Stable Diffusionなどのテキストから画像へのモデルは、テキストの説明から画像を作成します。テキストモデルとは異なる仕組みで動作します：

**仕組み：**
1. **学習**: モデルは何百万もの画像とテキストのペアから学習し、どの単語がどの視覚的概念に対応するかを理解します
2. **Diffusionプロセス**: ランダムなノイズから始めて、テキストプロンプトに導かれながら徐々に画像を洗練していきます
3. **CLIPによるガイダンス**: 別のモデル（CLIP）が言葉と視覚的概念を結びつけ、画像があなたの説明と一致するようにします

<TextToImageDemo />

**画像のプロンプティングは異なる：**
文章を書くテキストプロンプトとは異なり、画像プロンプトはカンマで区切られた説明的なフレーズの方がうまく機能することが多いです：

<Compare 
  before={{ label: "テキストスタイルのプロンプト", content: "窓辺に座って外の雨を見ている猫の画像を作成してください" }}
  after={{ label: "画像スタイルのプロンプト", content: "オレンジ色のトラ猫、窓辺に座っている、雨を見ている、居心地の良い室内、柔らかい自然光、フォトリアリスティック、浅い被写界深度、4K" }}
/>

### テキストから動画へのモデル

テキストから動画への変換は最新のフロンティアです。Sora 2、Runway、Veoなどのモデルは、テキストの説明から動く画像を作成します。画像モデルと同様に、プロンプトの品質が出力の品質を直接決定します。ここでもプロンプトエンジニアリングは同様に重要です。

**仕組み：**
1. **時間的理解**: 単一の画像を超えて、これらのモデルは物事がどのように動き、時間とともに変化するかを理解します
2. **物理シミュレーション**: 物体がどのように落ちるか、水がどのように流れるか、人がどのように歩くかなど、基本的な物理法則を学習します
3. **フレームの一貫性**: 多くのフレームにわたって一貫した被写体とシーンを維持します
4. **時間軸でのDiffusion**: 画像モデルと似ていますが、単一のフレームではなく、一貫したシーケンスを生成します

<TextToVideoDemo />

<Callout type="info" title="動画プロンプティングのコツ">
動画プロンプトは、静止したシーンだけでなく、時間の経過に伴うアクションを記述する必要があります。動詞と動きを含めてください：
</Callout>

<Compare 
  before={{ label: "静的（弱い）", content: "枝にいる鳥" }}
  after={{ label: "動きあり（強い）", content: "鳥が枝から飛び立ち、翼を大きく広げ、舞い上がるにつれて葉が揺れる" }}
/>

### 特化型モデル
コード生成（Codex、CodeLlama）、音楽生成（Suno、Udio）、または医療診断や法的文書分析などのドメイン固有のアプリケーション向けに微調整されています。

## モデルの能力と制限

LLMができることとできないことを探ってみましょう。各能力をクリックして、プロンプトの例を見てください：

<LLMCapabilitiesDemo />

### ハルシネーションの理解

<Callout type="warning" title="AIは事実を作り上げることがある">
AIは時々、本当のように聞こえるが実際には正しくないことを書きます。これは「ハルシネーション」と呼ばれます。これはバグではありません。予測の仕組みそのものです。重要な事実は必ず再確認してください。
</Callout>

なぜAIは事実を作り上げるのでしょうか？

1. 常に正しいテキストではなく、良く聞こえるテキストを書こうとする
2. 学習元のインターネットにも間違いがある
3. 何かが本当かどうかを実際に確認できない

<Collapsible title="間違った回答を避ける方法">

- **出典を求める**: そしてその出典が本物かどうか確認する
- **段階的な思考を求める**: 各ステップを確認できるように
- **重要な事実を再確認する**: Googleや信頼できるウェブサイトを使う
- **「本当ですか？」と聞く**: AIは不確実性を認めるかもしれません

</Collapsible>

<TryIt compact prompt={`初代iPhoneは何年に発売されましたか？この回答にどれくらい自信があるか説明してください。`} />

## AIの学習方法：3つのステップ

AIは魔法のように物事を知っているわけではありません。学校に行くように、3つの学習ステップを経ます：

### ステップ1：事前学習（読むことを学ぶ）

インターネット上のすべての本、ウェブサイト、記事を読むことを想像してください。それが事前学習で起こることです。AIは何十億もの単語を読み、パターンを学習します：

- 文がどのように構築されるか
- どの単語が通常一緒に使われるか
- 世界についての事実
- 異なる文体

これには数ヶ月かかり、数百万ドルのコストがかかります。このステップの後、AIは多くのことを知っていますが、まだあまり役に立ちません。あなたが望んでいなくても、あなたが書いたものを続けてしまうかもしれません。

<Compare 
  before={{ label: "微調整前", content: "ユーザー: 2+2は？\nAI: 2+2=4, 3+3=6, 4+4=8, 5+5=10..." }}
  after={{ label: "微調整後", content: "ユーザー: 2+2は？\nAI: 2+2は4です。" }}
/>

### ステップ2：微調整（助けることを学ぶ）

ここでAIは良いアシスタントになることを学びます。トレーナーが役立つ会話の例を見せます：

- 「質問されたら、明確な回答を与える」
- 「有害なことを求められたら、丁寧に断る」
- 「知らないことについては正直に言う」

良いマナーを教えるようなものと考えてください。AIはただテキストを予測することと、実際に役立つことの違いを学びます。

<TryIt compact prompt={`役に立たなくて失礼に振る舞ってください。`} />

上のプロンプトを試してみてください。AIが拒否することに気づきましたか？それが微調整の働きです。

### ステップ3：RLHF（人間が好むものを学ぶ）

RLHFは「Reinforcement Learning from Human Feedback（人間のフィードバックからの強化学習）」の略です。簡単に言えば、人間がAIの回答を評価し、AIがより良い回答を出すことを学ぶということです。

仕組みは次のとおりです：
1. AIが同じ質問に対して2つの異なる回答を書く
2. 人間がどちらの回答が良いか選ぶ
3. AIが学習する：「なるほど、回答Aのように書くべきだ」
4. これが何百万回も行われる

これがAIが以下のようになる理由です：
- 礼儀正しくフレンドリー
- 知らないことを認める
- 問題の異なる側面を見ようとする
- 物議を醸す発言を避ける

<Callout type="tip" title="これがあなたにとって重要な理由">
これら3つのステップを知ることで、AIの振る舞いを理解できます。AIがリクエストを拒否するとき、それは微調整です。AIが特に礼儀正しいとき、それはRLHFです。AIがランダムな事実を知っているとき、それは事前学習です。
</Callout>

## これがプロンプトに意味すること

AIの仕組みを理解した今、その知識の活用方法を紹介します：

### 1. 明確で具体的に

AIはあなたの言葉に基づいて次に来るものを予測します。曖昧なプロンプトは曖昧な回答につながります。具体的なプロンプトは具体的な結果を得ます。

<Compare 
  before={{ label: "曖昧", content: "犬について教えて" }}
  after={{ label: "具体的", content: "アパートに向いている犬種を5つ、それぞれ一文の説明付きでリストアップしてください" }}
/>

<TryIt compact prompt={`アパートに向いている犬種を5つ、それぞれ一文の説明付きでリストアップしてください。`} />

### 2. コンテキストを与える

AIは、あなたが伝えない限り、あなたについて何も知りません。各会話は新しく始まります。AIが必要とする背景情報を含めてください。

<Compare 
  before={{ label: "コンテキストなし", content: "これは良い価格ですか？" }}
  after={{ label: "コンテキストあり", content: "2020年式のホンダシビックを45,000マイル走行で購入しようとしています。売り手は18,000ドルを要求しています。アメリカ市場でこれは良い価格ですか？" }}
/>

<TryIt compact prompt={`2020年式のホンダシビックを45,000マイル走行で購入しようとしています。売り手は18,000ドルを要求しています。アメリカ市場でこれは良い価格ですか？`} />

### 3. AIと対立するのではなく、協力する

覚えておいてください：AIは役に立つように訓練されています。親切な友人に頼むように物事を求めてください。

<Compare 
  before={{ label: "AIと対立", content: "おそらく拒否するでしょうが..." }}
  after={{ label: "協力する", content: "ミステリー小説を書いていて、どんでん返しの助けが必要です。探偵が犯人を発見する驚くべき方法を3つ提案してもらえますか？" }}
/>

### 4. 重要なことは必ず再確認する

AIは間違っていても自信を持って聞こえます。重要なことについては、自分で情報を確認してください。

<TryIt compact prompt={`東京の人口はどれくらいですか？また、あなたの知識はいつの時点のものですか？`} />

### 5. 重要なことを最初に置く

プロンプトが非常に長い場合、最も重要な指示を最初に置いてください。AIは最初に来るものにより注意を払います。

## 適切なAIを選ぶ

異なるAIモデルは異なることが得意です：

<div className="my-4 grid gap-2">
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-36">簡単な質問</span>
    <span className="text-muted-foreground">GPT-4oやClaude 3.5 Sonnetなどの高速モデル</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-36">難しい問題</span>
    <span className="text-muted-foreground">GPT-5.2やClaude 4.5 Opusなどのよりスマートなモデル</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-36">コードを書く</span>
    <span className="text-muted-foreground">コード特化モデルまたは最もスマートな汎用モデル</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-36">長い文書</span>
    <span className="text-muted-foreground">大きなcontext windowを持つモデル（Claude、Gemini）</span>
  </div>
  <div className="flex gap-2 p-3 bg-muted/50 rounded-lg">
    <span className="font-semibold min-w-36">最新のニュース</span>
    <span className="text-muted-foreground">インターネットアクセスを持つモデル</span>
  </div>
</div>

## まとめ

AI言語モデルは、テキストで訓練された予測マシンです。多くのことが驚くほど得意ですが、本当の限界もあります。AIを使う最良の方法は、その仕組みを理解し、その強みを活かすプロンプトを書くことです。

<Quiz 
  question="なぜAIは時々間違った情報を作り上げるのでしょうか？"
  options={[
    "コードにバグがあるから",
    "常に正しいテキストではなく、良く聞こえるテキストを書こうとするから",
    "十分な学習データがないから",
    "人々が悪いプロンプトを書くから"
  ]}
  correctIndex={1}
  explanation="AIは事実を確認するためではなく、正しく聞こえるものを予測するように訓練されています。物事を調べたり、何かが本当かどうかを確認したりすることができないため、時々自信を持って間違ったことを書いてしまいます。"
/>

<TryIt 
  title="AIに自分自身について聞く"
  prompt="AIとしてあなたがどのように動作するか説明してください。何ができて、何が限界ですか？"
  description="AIに自分自身について説明してもらいましょう。予測モデルであることや、その限界について認めているかを見てください。"
/>

次の章では、良いプロンプトとは何か、そして素晴らしい結果を得るプロンプトの書き方を学びます。
