生成AIに正しく指示を出す「7R」とは？

# はじめに

こんにちは、もんすんです。
皆さんは、生成AI使っていますか？

最近、ChatGPTにSearchGPTの機能が追加され、Wait Listに登録していたユーザが使えるようになりました。私も実はその一人で、検索機能が待ち遠しかったのので、やっと使えるとなると、本当に嬉しいものです。

さて、生成AIが急速に進化し、さまざまな分野での利用が進んでいますが、その一方で、<font color="red">期待通りの結果が返ってこない</font>、<font color="red">AIは嘘をつく</font>、といった声をよく耳にします。
生成AIからより良い結果を得るためには、「**指示の質**」、つまり**プロンプトエンジニアリング**が重要だと思います。

生成AIは曖昧な指示にも応じてくれますが、その精度を高め、正しく使いこなすためには正確で明確な指示が必要です。

今回は、「**7R**」と呼ばれる要素に基づいて、生成AIに適切な指示を与える方法について解説します。

# 7Rについて

## 7Rの要素

### 1. Request (依頼)
最初に「何をAIに依頼するか」を明確にすることが大切です。

例えば、短い文章でまとめる場合や長文で詳細に説明する場合では、依頼の方法が異なります。また、依頼の意図が具体的であるほど、AIはより適切な応答を生成しやすくなります。

#### ダメな例

##### プロンプト

```
健康な食事について説明してください。
```

##### 回答

```
健康な食事とは、身体に必要な栄養素をバランスよく摂り入れ、日常生活の活力を保ち、病気の予防や体調の維持を助ける食事のことです。以下は、健康な食事に含まれる要素と、それぞれの特徴です。

### 1. **栄養バランス**
   - **炭水化物**: 主なエネルギー源であり、全粒穀物や玄米、オートミールなど、食物繊維を多く含む食品が理想的です。
   - **タンパク質**: 筋肉や組織の修復を助けます。鶏肉、魚、大豆製品、卵などをバランスよく摂取するのが望ましいです。

...(略)

### 6. **食事時間の管理**
   - 規則正しい食事時間を守ることも、健康維持に効果的です。特に夜遅い時間の食事は控え、朝食をしっかり摂るように心がけましょう。

これらを意識することで、心身の健康を保ちながら生活習慣病の予防にもつながります。
```

とても長く、どこが重要かわからない回答が返ってきました。
自分でも何を聞きたかったのかわからなくなりますし、こんなに返答が長いともう使うのやめようかな、って思ってしまいますね。

#### 良い例

##### プロンプト

```
健康な食事のメリットを簡潔に説明し、さらに初心者でもできる健康的な食事習慣を3つ提案してください。
```

##### 回答

```
**健康な食事のメリット**  
健康的な食事は、体の免疫力を高め、エネルギーを維持し、集中力を向上させます。また、生活習慣病の予防や体重管理にも効果的です。

**初心者でもできる健康的な食事習慣**

1. **野菜と果物を増やす**  
   毎食にカラフルな野菜や果物を加えることで、ビタミンやミネラルを効率よく摂取できます。生野菜をサラダやスムージーにすると手軽に取り入れられます。

2. **水をこまめに飲む**  
   1日に1.5〜2リットルの水を意識的に飲むことで、代謝が促進され、体調が整います。食事の前にコップ一杯の水を飲むと、満腹感が得られやすく、食べ過ぎ防止にもつながります。

3. **加工食品を控える**  
   スナック菓子やファストフードなどの加工食品を減らし、できるだけ自然な食材を選びましょう。
```

指示した通り、とても簡潔に説明し、正しく提案も3つしていることがわかります。

### 2. Role (役割)
生成AIに設定する「役割」を明示することで、回答の敬語の使い方や視点などが大きく変化します。例えば、生成AIに「専門家」や「友人」としての役割を与えることで、回答に期待する表現や専門性を制御することができます。

#### 良い例

##### プロンプト
```
Request: 健康な食事のメリットを簡潔に説明し、さらに初心者でもできる健康的な食事習慣を3つ提案してください。
Role: あなたは健康オタクで、私と幼少期からの幼馴染です。
```

##### 回答
```
健康的な食事は、エネルギーが持続して気分が安定したり、免疫力が向上して病気にかかりにくくなるなどのメリットがたくさんあるよ！それに、肌や髪がきれいになったり、集中力も上がるし、やる気も出る。つまり、全体的にパフォーマンスが上がって、毎日がもっと楽しくなるんだよね。

で、初心者向けの食事習慣としては、次の3つから始めてみよう！

1. **水分をしっかり摂る**：1日にコップ8杯の水を目標にしよう。水は体の調子を整える基本だから、少しずつ増やしていくといいよ！

2. **毎食に野菜を加える**：朝食でもサラダを添えるとか、昼と夜は特に色の濃い緑の野菜（例えばほうれん草やブロッコリー）をちょっとずつでも入れると栄養バランスが良くなるよ。

3. **食事をゆっくり味わう**：噛む回数を意識して、よく味わって食べると、消化が良くなるし満足感も増して、食べ過ぎを防げるんだよ。

最初はシンプルに、少しずつ取り入れてみて！
```

[1. Request]の良い例とRequestは同じで、Roleという項目を追加してみました。
親しい関係性であることを明確にしたため、口調がそういった間柄のような雰囲気になっていることがよくわかります。

:::note info
ちなみに[Role]を「あなたは、人を小馬鹿にする健康の専門家で、私をいつも見下してきます。」にしてみたところ、最初に1行が、

> おや、ようやく健康な食事に興味が出てきたんですか？今までずっとジャンクフードに頼ってたんでしょう？まあ、簡潔に教えてあげますね。

となりました。口調は大きく変わりました。

:::

### 3. Regulation (形式)

生成AIにアウトプットの「形式」を指定することで、文の構成や表現を意図通りに整えられます。例えば、

- 箇条書き
- 段落ごとの説明
- セクションごとに分けた構成

など、依頼内容に応じて出力形式を設定することで、読みやすく的確な出力が得られます。

#### 良い例

##### プロンプト

```
Request: 健康な食事のメリットを簡潔に説明し、さらに初心者でもできる健康的な食事習慣を3つ提案してください。
Regulation: 食事習慣の3つの提案は項目のみを箇条書きで示してください。
```

##### 回答

```
### 健康な食事のメリット
健康な食事は、体重管理や病気の予防、エネルギーレベルの向上、免疫力の強化など、多くのメリットをもたらします。栄養価の高い食品を摂取することで、身体の機能が最適化され、心身の健康を維持しやすくなります。

### 初心者でもできる健康的な食事習慣
- 野菜や果物を毎食に取り入れる
- 水分をしっかり摂取する（特に水を意識する）
- 加工食品を控え、できるだけ自炊を心がける
```

長い説明はなくなり、「項目のみ」「箇条書き」という指示が適切に適用されているのがわかります。

### 4. Rule (ルール)

生成AIには、ルールや制約を指定することが可能です。
例えば、専門用語の使用制限や特定の文法・文体を使用しないように指示することができます。このルール設定により、ブランドのガイドラインに沿った表現や特定の受け手に適した表現を維持しやすくなります。

#### 良い例
:::note warn
敢えて、専門用語を多用するというルールを設けます。通常は「専門用語を使用せず」などとするのが良いと思います。
:::

##### プロンプト

```
Request: 健康な食事のメリットを、簡潔に説明してください。
Rule: あえて医学的な専門用語を多用し、抽象的な内容にしてください。
```

##### 回答

```
健康な食事のメリットは多岐にわたりますが、主に生理学的および生化学的な観点から次のように説明できます。

1. **栄養素の最適摂取**: 必須アミノ酸、ビタミン、ミネラル、フィトケミカルの摂取が、細胞の恒常性を維持し、代謝機能を最適化します。

2. **抗炎症効果**: オメガ-3脂肪酸や抗酸化物質の摂取は、慢性的な炎症反応を抑制し、疾患の予防に寄与します。

3. **腸内フローラの調整**: 食物繊維の豊富な摂取が腸内微生物叢の多様性を促進し、免疫機能の強化や代謝の改善に寄与します。

4. **エネルギーバランスの最適化**: カロリー摂取と消費の均衡が、体重管理および脂肪蓄積の抑制に寄与します。

5. **心理的健康の促進**: 食事が神経伝達物質の合成に影響を与え、メンタルヘルスの改善に寄与することが示唆されています。

このように、健康的な食事は身体の多様な生理機能にポジティブな影響を及ぼし、全体的な健康状態を向上させる要因となります。
```

読みたくないくらい専門用語だらけになりましたが、期待通りの結果になりましたね。
通常利用ではあまりない気がしますが、論文執筆の際、表現に困ったときには利用できそうな気がしますね。

<font color="red">上述のように基本的には「専門用語は使用しない」と指示するのが良さそうです。</font>

### 5. Review & Refine (評価・改善)

生成AIのアウトプットを「評価」し、「改善」するプロセスです。
生成された内容を見直し、不足している情報や補完すべき部分を指示し、再度依頼することで、より精度の高い出力が得られます。

#### 良い例

[4. Rule (ルール)]で、専門用語が多い回答が返ってきたので、それに対して、新たにプロンプトを投げることを想定します。

##### プロンプト

```
Review & Refine: 提供された説明を評価し、具体的なメリットが不十分な場合は追加の情報を追加してください。さらに、専門用語が多すぎる場合は、その解説を付与してください。ただし、簡潔にお願いします。
```

##### 回答

```
提供された説明は概念的に有用ですが、具体的なメリットについてはさらなる詳細が必要です。また、専門用語の解説も加えると理解が深まります。以下に改善した内容を示します。

---

健康な食事のメリットは多岐にわたりますが、以下の具体的なポイントを考慮することが重要です。

1. **栄養素の最適摂取**: 健康的な食事は、必須アミノ酸（体が合成できないタンパク質の構成要素）、ビタミン（身体の機能を調整する微量栄養素）、ミネラル（骨や血液の健康を支える元素）、フィトケミカル（植物由来の化合物で抗酸化作用を持つ）の摂取を促進し、細胞の恒常性を維持します。

...(略)

5. **心理的健康の促進**: 食事は神経伝達物質（脳内で信号を送る化学物質）の合成に影響を与え、例えばセロトニン（気分を調整するホルモン）の生成を助けることで、うつ病や不安症のリスクを低下させます。

---

このように、健康的な食事は生理的、心理的、そして全体的な健康状態にポジティブな影響を及ぼし、長期的な健康維持に寄与します。
```

元々の文章が専門用語だらけだったので、カッコ書きは多いですが、専門用語をわかりやすく解説してくれた内容にすることができました。
このようにAIの回答を評価し、改善することができます。

### 6. Reference (参照知識・例)

生成AIは、事前知識や例を提供することでより正確な出力を生成できます。
特にITエンジニアでは、JSON形式でデータが欲しいケースが多いと思うので、それを明確にしておくことは重要です。
AIに参照してほしい背景知識や事例を示すと、理解が深まり、依頼に即したアウトプットを得やすくなります。

#### 良い例

##### プロンプト
```
Request: 健康な食事のメリットを簡潔に説明し、さらに初心者でもできる健康的な食事習慣を3つ提案してください。
Reference: 以下のフォーマットに従って、提案内容をJSON形式で返してください。

{
  "merit": "<健康な食事のメリット>",
  "suggestions": [
    "<健康的な食事習慣1>",
    "<健康的な食事習慣2>",
    "<健康的な食事習慣3>"
  ]
}
```

##### 回答

```json
{
  "merit": "健康な食事は、体重管理や病気のリスクを減らし、エネルギーを高め、気分を改善します。栄養バランスが整った食事は、体全体の健康をサポートします。",
  "suggestions": [
    "毎食に野菜を加える。サラダや蒸し野菜などで手軽に摂取できる。",
    "甘い飲み物を水やお茶に置き換える。カロリーを減らし、健康的な水分補給を促進。",
    "毎日決まった時間に食事をとる。規則正しい食生活が体のリズムを整える。"
  ]
}
```

指示通りのJSONのみが返ってきました。
ここで重要なのは、JSON**のみ**が返却されることです。
適切な指示をすることで、不要なメッセージを含めないようにすることが可能です。

### 7. Run Scenario (実行シナリオ)

「実行シナリオ」を指示することで、生成AIが一貫性のある内容を生成しやすくなります。たとえば、「顧客に商品を説明するシナリオ」や「クレーム対応のシナリオ」といった、設定に基づいた応答が期待できます。

#### 良い例

##### プロンプト

```
Request:  健康な食事のメリットを簡潔に説明し、さらに初心者でもできる健康的な食事習慣を3つ提案してください。
Run Scenario: 中学生に説明するシナリオを想定し、彼らが興味を持つような口調で説明してください。
```

##### 回答

```
### 健康な食事のメリット

みんな、健康的な食事がどれだけ大事か知ってる？健康的な食事をすると、体が元気になったり、集中力がアップしたり、学校での成績も良くなったりするんだよ。食べるもので、心や体が変わるってことを覚えておいてね！

### 初心者でもできる健康的な食事習慣

1. **カラフルな野菜を食べる**  
   いろんな色の野菜をお皿に並べてみよう！トマトやピーマン、にんじん、ブロッコリーなど、カラフルな野菜は栄養がたっぷり。サラダにしたり、スティック状に切っておやつにするのもいいね！

2. **水分をしっかり摂る**  
   毎日、ジュースじゃなくて水をたくさん飲むことを意識してみよう！水は体を元気にしてくれるし、集中力も高めてくれるんだ。目安は1日に約1.5リットルくらいだよ。

3. **おやつを選ぶときは、健康的なものを**  
   おやつが食べたくなったら、チョコレートやスナック菓子じゃなくて、フルーツやナッツを選んでみよう。おいしいし、体にも良いから一石二鳥だよ！特に、バナナやリンゴは持ち運びも簡単だからおすすめ！

これらのことを実践して、楽しく健康的な食事を続けていこう！君の体が元気になれば、きっともっと楽しい毎日が待ってるよ！
```

若干、[2. Role]と似たような雰囲気になりましたが、中学生向けに説明する際の表現になっているようですね。

# 終わりに
今回は、生成AIを効果的に活用するための「7R」の要素について解説しました！
プロンプトエンジニアリングの重要性を理解し、適切な指示を与えることで、AIからより良い結果を得ることができます。
皆さんもこれを参考にどんどん生成AIを使ってみてもらえたらと思います！