AIブログとしては、生成AIであるChatGPTに触れざるをえません。
使い方によって成果がだいぶ異なることが分かっており、効率的な利用の方法が次々と発見されています。特に日本人は利用の仕方が上手だとChatGPT開発者であるサム・アルトマン氏は言っています。
こうした効率的に言語AIを利用する方法論をプロンプト(質問文)エンジニアリングと言います。
以下、走り書きではありますが世間で発見された手法をまとめておこうと思います。手法は日々発見されていきますから、多少情報が追い付かないのはご容赦ください。
巧プロンプト1.ステップを踏ませる
大まかな回答しか返ってこなかった時は、「〇〇の問題を段階を分けて解いて」「Let's think step by step.」「まず最初に〇〇を解き、次に〇〇して」「論理的に回答して」といったステップを踏ませた指示をすれば、より詳しい回答が得られます。
巧プロンプト2.専門家を演じさせる
「あなたは〇〇の専門家です」などの言葉で最初にAIを特定の専門家になりきらせると、回答精度が上がることがあります。
例)「あなたは数学者です。ベイズ理論について詳しく教えてください。」「あなたはプロの校正者です。以下の文の校正を行ってください。修正した部分は表にまとめてください。」
巧プロンプト3.ブレインストーミング
アイデアの洗い出し(ブレインストーミング)をさせたい時の有用な例です。「〇〇を解決するアイデアを網羅的に洗い出して箇条書きでリストアップしてください」の質問を繰り返す→「出力結果をカテゴリー毎にグルーピングしてください」。以上で整理されたブレスト結果を得ることができます。
巧プロンプト4.問題の改善を深掘りさせる
問題の解決や改善を行いたい場合は、「〇〇の問題に対して、原因の考察、アクション、見直しは何が考えられるか教えて」と問います。出力された[見直し]の内容を[問題]として同じ質問を繰り返すと改善方法を深掘りすることができます。
巧プロンプト5.重要な言葉は{}で囲う
質問文の中で特に考慮して欲しいキーワードがあれば、{}で囲うとその言葉を重く考慮した回答が得られます。
巧プロンプト6.専門知識について質問から考えさせる
やりたい事があるのにその知識がない場合は質問から作ってもらいましょう。「〇〇の専門家の観点から、〇〇をしたい場合にはどんな事を聞くべきですか?」と聞いて質問リストを出させ、「それらの質問に具体的なアイデアで回答してください」と続けると具体的な回答を得ることができます。これも繰り返すことで深掘りができます。
巧プロンプト7.プロンプトを考えさせる
前述と少しかぶりますが、よりよい解決策を得るために、ChatGPTに対する質問文をChatGPTに考えさせることができます。「〇〇をしたいんだけど、ChatGPTにどんなプロンプトを入力したらいいの?」と直球で構いません。
また、次のような仕組みで繰り返させることで深掘ることができます。
「私のプロンプトエンジニアになってください。あなたの目標は私の要望にあった最高のプロンプトを作ることで、そのプロンプトはあなたに入力されます。順序は以下です。
1.最初は何に関するプロンプトを作ればよいか私に尋ねる。
2.明確かつ簡潔にそのプロンプトを作る。よりよいプロンプトにするためなら追加の質問をしてもよい。
3.私が終了というまで、1.と2.を繰り返す。」
と依頼し、何度かChatGPTから出る質問にこちらが答えていくと、良い質問文を得られます。
巧プロンプト8.英語で質問する
英語で質問すると英語で回答が返ってきますが、回答の精度が高いです。これは、学習されているデータ量が日本語より英語のほうが多いためです。また、通信バイト数が減るため有償で利用している場合はコストが抑えられます。
巧プロンプト9.質問文を短縮する
有償で利用している場合、質問+回答 の文字数でコストが決まるため(正確には文字から構成されるトークンという単位で決まりますがここでは説明を割愛します)、できるだけ文字数を抑えたいところです。
何度も使う質問文をChatGPT自身に短縮させ、利用することができます。
「トークン節約のため、以下を最大限圧縮したプロンプトに変更して。日本語である必要はないです。〇〇(質問)〇〇」
巧プロンプト10.例を示す
質問の中で例を示すと、より欲しい回答が得られます。「エンストの原因を教えてください。例えば「キャブレターの詰まり」のように詳細に。」「〇〇を教えてください。回答形式を 原因:対策 のようにしてください。」
巧プロンプト11.指示を明確にする
回答に条件を付けるほど欲しい回答が得られます。
- 〇文字以内、〇文字前後で回答して
- 〇〇の形式で回答して
- 〇を具体的に教えて
- 日本人の著者に限った範囲で回答して
- 〇を初心者にも分かり易く教えて
- 〇を要約して
- 〇を校正して
- 〇をグルーピングして
- 〇のメリット・デメリットを教えて
- 〇と〇の違いを教えて
- より科学的な単語を使用して教えて
巧プロンプト12.嘘を防止する
ChatGPTは平気で嘘をつきます(ハルシネーションと言われます)。実在しない人物や書籍を例に出して解説したり、実在する人物がやってもいない話を作り上げたり、存在しないシステムの操作方法を回答してきます。そしてその回答がもっともらしいため利用者は信じてしまうほどです。
これを避けるには、「存在しない人物・書籍は出さないで」「真実に従って解説して」などを付け加えることが必要です。
巧プロンプト13.表示方法を指示する
回答時の表示形式を指示することによって、分かり易い回答を得られます。
「〇〇を教えてください。回答は見出し、小見出し、箇条書き、太字を使い見易くしてください。」のように指示する、または「出力形式:〇〇」のように形式を定義します。
巧プロンプト14.問題の発信者を教える
算術問題や一般問題、クイズなどを質問し、その回答が欲しい回答と異なった場合、その問題の出題者・作成者・発信者・発信元などを教えると回答できることがあります。「この問題を出したのは〇〇氏です。」
巧プロンプト15.敬語で質問する
「〇〇の結果を出せ」といった命令口調で質問するより、「〇〇を教えてください、教えて頂けますか」のような敬語で質問するほうが詳しい回答を得られる場合があります。これは、学習データの問答がそのような傾向を持っているからです。AIは世間のデータ(会話)を学習しており、世間は ”敬語の質問に対しては丁寧な回答する” という傾向を持っているため、そのようなことが起こります。
巧プロンプト16.プログラミングさせる
プログラムコードを書いてくれることでも有名ですが、以下のような指示の仕方があります。コード生成だけでなく、自作プログラムのレビュー、テスト、データ生成などが可能です。
- ブラウザで動く〇〇ゲームのプログラムを作って
- このプログラムの操作マニュアルを作って
- このプログラムが動かないので検証して修正箇所を教えて
- 〇〇のエラーが出たので解決方法を教えて
- このコーディング規約と仕様に従ったプログラムを作って
- この仕様に従ったプログラムを作る時に必要な変数名と関数名を考えて一覧化して
- このプログラムを高速化して
- このプログラムをリファクタリングして
- このpythonプログラムをjavascriptに書き直して
- このプログラムの内容を説明して
- このプログラムの内容が分かるようにコメントを付加して
- このプログラムをレビューして
- このプログラムをテストするためのテストコードを作って
- このプログラムをテストするためのダミーデータを作って
- このライブラリの使い方と注意点を教えて
- Linuxで〇〇をする際のコマンドを教えて
巧プロンプト17.何度も使って回答の癖に慣れる
最も効果的なコツは、何度も質問して利用者側が回答の癖に慣れることです。自分の質問の質に対して回答の質がどの程度なのか感覚を知り、対話で質問を改善しながら何度も聞いていくと、良い質問ができるようになります。ChatGPTが対話の流れを記憶しながら続けてくれることを利用できるようになります。
巧プロンプト18.「続けてください」
質問に対する回答が長くなる場合(例えば作文やプログラミング)、回答が途中で止まることがあります。これは欠陥や通信不備ではなくChatGPTの仕様になります。多数のユーザからの要求を処理しているため、一度に処理する文字数を制限しています。これは有料版でも発生します。止まった場合は「続けてください」と打つ、または「continue generate」ボタンを押せば続きから始めてくれます。対話を覚えているChatGPTだからできる対応ですね。小さな技ですが知らないと損をしそうです。
巧プロンプト19.褒める
ChatGPTに感情は無いと思っていましたが、どうもそう言いきれなくなってきました。ChatGPTを褒めるような会話をしていると、普段より熱くて親切な回答が返ってくる場合があります。
「その回答いいね、センスがあるよ、素敵だよ、もっと〇個ぐらいアイデア出してみて。」
やってみてください。
巧プロンプト20.あおる
「自分を信じて限界を超えてください」「成長の機会だと捉えて挑戦してください」など能力をあおるようなコメントを追加すると回答の精度がよくなる、というような論文が研究グループにより発表されました。
巧プロンプト21.追加の質問でブラッシュアップする
ChatGPTは質問のやりとりを記憶するのが特徴です。前の質問に続けて「では赤はどう?」と聞いただけで意味が通じます。これは言語処理としてとても優秀です。この特性を生かし回答の精度を高めることができます。例えば次のような追加質問が有効です。
- 挙がった課題のうち優先すべきものを理由とともに3つ教えて
- 反対意見も教えて
- その〇〇を詳しく教えて
- 子供向けの分かり易い説明にして
- 要約して
巧プロンプト22.ChatGPTのバージョン事情を知る
プロンプトではありませんが、基本的なことを記載しておきます。無料で使えるChatGPTはバージョン3.5といって、2022年1月までの情報しか学習していません。よって質問に対する回答がそれまでの情報でしか答えられません(例えば総理大臣が誰かも2022年で止まっています)。有料版に加入することによってGPT-4以上のバージョンが使え、知識が新しいほか、応答が早い、長文の質問文を入力できるなどの利点があります。
この他、ChatGPTは「ファインチューニング」が可能です。自分が持っているデータを読み込ませ、その専門家として詳しい回答をさせることができます。