対話型AIのプロンプトを作る時は「プログラミング的思考」を取り入れると良い理由

対話型AIの回答を最適化するプロンプト。プロンプトを作る際には、「プログラミング的思考」を取り入れると良い理由を解説します。

公開日: 2023.6.7

プログラミング的思考とは?

プログラミング的思考とは、問題を分解し、抽象化し、手段を持って課題を解決することです。

プログラミング的思考の定義と基本的な考え方の紹介

プログラミング的思考では、課題にいきなり取り組むのではなく、いくつかの段階を取ります。

  1. 問題を分割して小さなステップに分ける
  2. それぞれの解決手段を考える
  3. トライしてみて間違ったところがあれば改善する

この手順を踏むことが、実は対話型AIのプロンプトを作る上でも非常に重要になるのです。

例えば、「Chat GPTに関する解説サイトを作る」という課題があったとして、プログラミング的思考では、

  1. どこで運営するのか => サーバーを選ぶ
  2. どうやってサイトを構築するのか? => フレームワークなどを調査する
  3. 記事は何を書けばいいのか? => ニーズを調査をする

といった、中規模の課題から初めて、それぞれの中の小さな課題を抽出し、解決策を考えます。

同じように、プロンプトを作る際も、大枠の問題を考え小さな課題を見つけて、絞り込みをしていくことで、より最適な回答を得ることができる可能性が高まります。

「プログラミング的思考」のプロンプト作成への適用方法

対話型AIに最適な回答をさせるためには、AIに対して「何を求めているのか」を適切に伝える必要があります。

現在の対話型AIは非常に高性能なため、適当に指示を出してもそれなりの答えを返してくれますが、より精度を高めたいのであれば、「プログラミング的思考」でプロンプトを作成するのがベストです。

問いを明確にする

先程のプログラミング的思考の中の「(1) 問題を分割して小さなステップに分ける」にあたる部分です。

質問者は「何が問題で」「何が欲しいのか」を頭の中で概ね理解していますが、AIは入力されたテキストから求められているであろう回答を「推論」するしかありません。

そのため、しっかりと何が問題なのかを明確にするのが大事です。

例えば、「今日の夕飯のレシピを考えて欲しい」とざっくりとした質問をした場合、条件や背景がわからない状況で回答を推論します。

しかし、実際には料理をする際は、

  1. 夕飯までの時間はどれくらいなのか
  2. 何人で食べるのか
  3. 食材は何があるのか、買い物にはいけるのか?
  4. レシピの名前だけが欲しいのか?作り方も必要なのか
  5. 何品必要なのか?
  6. 健康にどれくらい配慮したら良いのか?
  7. どれくらいお腹が空いているのか?

など、様々な課題があります。こうした細かい課題を明確にすることで、より求める回答を得られるようになるわけです。

ロジカルなアプローチ

プログラミング的思考では、小さな単位の課題に対して解決策を模索します。

同様に、プロンプトを作る際も、小さな単位の課題に対して解決策のヒントを与えることによって、対話型AIが生成する回答がより精度の高いものになります。

例えば、「ただし、手元にある食材だけで(買い物には行かないで良いという解決策)」や「おかずは3品で(調理時間を減らす)」など、具体的かつ自分の置かれている問題の小さな解決策になる条件を追加すると、より自分が求めている回答に近づきます。

テストと反復(トライ&エラー)

プログラミング的思考ではテストと反復が非常に重要です。

そのため、対話型AIからより精度の高い回答を得たいのであれば、「一度や二度、良い回答が得られなかったからと言って見切りをつけない」というのが大事です。なぜなら、プロンプトの書き方や条件の指定などによって、対話型AIの回答は大きく変わることもあるからです。

対話型AIが理解しやすい質問・条件は、内容のジャンルや質問によって異なりますが、トライ&エラーを繰り返すことで、より自分好味のプロンプトの雛形が出来てきます。

対話型AIは「まだ」万能でないことを理解しておこう

「人間を超える」などと騒がれているAIですが、まだまだ発展途上で、正しくプロンプトを組んで質問をしても正しい答えが得られないことがあります。これは、そもそも学習データ自体にある程度の偏り(ソースとするデータの言語など)がある以上、仕方のないことです。

現段階では、プログラミング的思考でAIが理解できるプロンプトを組んで、自分なりに正しい回答を得やすいジャンルや作業の「肌感覚」を得ながら、利用するのがベストです。

新着記事