先日iOS版のChatGPTがリリースされた。これまでのWebブラウザ版だけでなく、スマホアプリでもChatGPTが使えるようになった。早速試してみたらLINEと同じくらい気軽に使いやすいUIでレスポンスもサクサクだったので、今後もっと流行ってもおかしくはない感じだった。
ということで今回は、ChatGPTの回答精度を最大化する具体的な方法を初心者にも分かるように僕の独断と偏見で紹介する。
ChatGPTの特徴
ChatGPTは、アメリカの大手企業「OpenAI」が作った人工知能(AI)の一つ。人間の言葉を理解し、それに対する答えを返すことができる。Siriやアレクサの最強版みたいな感じで、AIブームの火付け役だ。
使い方としては、難しい用語を分かりやすく説明することはもちろん、ビジネスやメールの文章を作ったり、文字数を指定して要約もできる。使い方次第ではプログラミングでアプリを作ったり、Webデザインを手伝ってもらうこともできる。なんて万能のAI秘書。もはやドラえもん。
ビルゲイツ「AIはGUI以来の革命的な進歩」
Windowsを開発したビル・ゲイツですら「AIはGUI以来の革命的な進歩」と言っているくらいだから、この分野においては権威主義にならざるを得ない。
■Microsoft創業者のビル・ゲイツが「AIはGUI以来の革命的な進歩」だと語る
https://gigazine.net/news/20230322-bill-gates-ai-age/
当たり前だけど、AI(というかコンピュータ)は半導体がなければ機能しない。最近、世界トップの半導体メーカーNVIDIAの株価が急騰している事実もあって、これから疑う余地なくAIの時代が訪れると僕は確信しているところ。
癖がスゴイ
ChatGPTはLINEと同じような感覚で使うだけでも便利さを感じられるけれど、相手はAIだから会話の仕方に少し癖がある。逆に言えば、AIの癖を見抜いて質問するコツを知っておくだけで回答の精度がめちゃくちゃ高まる。ということでそのコツを紹介する。
プロンプトを制するものは、ChatGPTを制す
どんなに高度なAIでも、質問の仕方や表現によっては自分が期待した回答が得られないことがある。これに対処するための鍵となるのが、ChatGPTに適切な質問を提供する「プロンプト」だ。プロンプトは「質問や要求の形を整えるための手掛かり」を指す。
上記の例で言えば、左が悪いプロンプト、右が良いプロンプトだ。「有効活用方法」「箇条書き」「5つ」など細かい要求ができており、AIへの指示が明確になっている。
実際、世界中にはAIから最適な回答を引き出すためのプロンプトエンジニアという職業が存在している。企業の業績に大きな影響を及ぼすほど、プロンプトの重要性が増している証拠だ。
基本公式
2022年11月にChatGPTがリリースされて以来、僕は世界中から無限に吹き出すChatGPT関連のネット記事やTwitter、YouTube動画などを検索してはプロンプトの最適な使い方を毎日調べまくっている。
そんな星の数ほどある情報を整理した結果、ChatGPTの回答精度を劇的に高めるためには、だいたい以下3つの要素に集約されることに気がついた。
- 目的:何が知りたいのか、何を達成したいのかなどを明確に書くこと
- 詳細:答えに必要な情報を過不足なく書き出すこと
- 調整:どのように答えを出してほしいかを具体的に指示すること
どの情報を見ても、上記3つの要素とその組み合わせ次第で回答の精度が大きく変化する。
つまり、ChatGPTの回答精度を劇的に高める基本公式はこうなる。
精度の高いAIの回答 = 目的 × 詳細 × 調整
プロンプトに書くべきことは「①自分の解決したいゴールを明確に書く」「②具体的な条件をすべて書き出す」「③求める回答の形式を調整」。この組み合わせはずいぶんシンプルだけれど、かなり強力。
もちろん、すべてのプロンプトがこの3つの要素を必要とするわけではない。状況や情報の必要性によって、どの要素を強調するかが変わることもある。とはいえ、この3つの要素はほとんどのケースで有効で、微調整するだけで質の高い回答を得ることができるので頭の片隅に入れておくのを強くオススメする。
一般ユーザーは知らなくても問題はないけど、知っておくと良いかもしれない話。
ChatGPTとの会話では、文字数に比例して「トークン(通信使容量)」も比例して消費されていく。トークンを消費しすぎて利用上限に達すると「ChatGPTが一定時間使えなくなる」などのペナルティが発生する。
トークンの計算は複雑だから、とりあえず以下のコツを覚えておくといい。
- プロンプトはできるだけ短くする(トークン節約)
- 敬語は不要(丁寧さは関係がないから)
- 極端に強い命令口調はNG(余計な説教が始まる)
ざっくり言うと、「〇〇という用語について教えてください」「〇〇を教えろ」ではなく、「〇〇について教えて」でいい。これでトークンを節約しつつ最小限の労力で最大の結果を得られる。
長くなってしまった。以下、具体例で説明する。
効果的な使い方
以下、無料版(GPT-3.5)と有料版(GPT-4)のどちらでも使える方法。
Gigazinの記事にChatGPTを作ったOpenAI社の公式の戦略があったので共有しておく。
OpenAIが提唱する戦略は以下の6つです。
「ChatGPT」に使われる言語モデル「GPT」からうまく答えを引き出すためのOpenAI公式ガイド – Gigazin
・明確な指示を書く
・参考テキストを提供する
・複雑なタスクをよりシンプルなサブタスクに分割する
・GPTに考える時間を与える
・外部ツールを利用する
・パフォーマンステストを実施する
正直、ポイントは下記とあまり変わらないのでこのまま進める。
1. 目的:何が知りたいのか、何を達成したいのかなどを明確に書くこと
- 知りたい内容を書く
- 複雑な情報を分かりやすくしてもらう
- 知識の活用の仕方を教えてもらう
- 複雑なテキストを要約してもらう
- 比較/対照をしてもらう
- 文章を書いてもらう
遠距離恋愛の課題とそれを克服するための具体的な戦略を教えて
恋愛について教えて
1984年のApple Macintoshのマーケティング戦略について教えて
Appleについて教えて
2. 詳細:答えに必要な情報を全部書き出す
- 自分の役職を書く(役職に合わせて出力が調整される)
- ChatGPTに役職・設定を指定する(検討する範囲を大幅に絞れる)
- 解決させたい文章やコードを書く
私は日本の中学生です。
第二次世界大戦中のノルマンディー上陸作戦の日時、場所、参加国、結果について教えて
第二次世界大戦について教えて
あなたは優秀な日本の高校の教師です。
量子コンピューターの基本的な概念と通常のコンピューターとの主な違いを教えて
量子コンピュータについて教えて
あなたはプロのピザ職人です。
低予算でニューヨークスタイルのピザを作るための具体的なレシピを教えて
ピザのレシピを教えて
3. 調整:AIにどのように答えを出してほしいかを具体的に指示する
- 解決手順を段階的に
- 小学生 / 中学生が理解できるように
- 具体例を挙げて
- 箇条書き
- テーブル
- 比較
- 10個の例を
- このトピックから80%を理解するのに役立つ、最も重要な20%を特定して
科学者が未知の惑星を探索するためにどのような装置を設計するべきか、小学生でもわかるように段階的に教えて
未知の惑星に必要な装置を教えて
エコノミストとして、ベーシックインカムの導入は経済にどのような影響を与えると考えるか、箇条書きで教えて
ベーシックインカムは経済にどのような影響を与えるか?
夏目漱石の『吾輩は猫である』における主要なキャラクターとその役割を400字以内に要約して
夏目漱石の『吾輩は猫である』について教えて
その他
何にでも対応できる汎用型
あなたは優秀な信頼性あるプロの【ここにChatGPTに与える役職】です。
以下の入力文について、以下の制約条件を基にして、アドバイスを出力して下さい。
----
制約条件1:【ここに条件を書く】
制約条件2:【ここに条件を書く】
制約条件3:【ここに条件を書く】
----
入力文:
【ここに入力文を書く】
あなたは優秀な信頼性あるプロのスポーツトレーナーです。
以下の入力文について、以下の制約条件を基にして、アドバイスを出力して下さい。
—-
制約条件1:科学的根拠があること
制約条件2:出典を明示すること
制約条件3:重要キーワードをもれなく含むこと
制約条件4:中学生が理解できる出力であること
制約条件5:具体例を示すこと
—-
入力文:
私は週3回スポーツジムで筋トレしています。
身長は183cmで体重は70kgです。
今から6ヶ月に、プロのフィジーク選手のような筋肉量が多く体脂肪の少ない身体になるのが理想です。
上記を踏まえて、最高の仕上がりになるような筋トレと食事のメニューのスケジュールを教えてください。
プログラミングに使える質問方法
英語のほうが精度が少し高まるので、頑張って英語で質問すると良さげ。
コードに問題がないかチェックする方法
Please check for potential issues in the following code:
日本語訳:以下のコードに潜在的な問題がないかを確認してください:
コードに問題がないかチェックする方法
Please review the clarity of the names of variables, functions and classes in the following code and write down the revised code:
日本語訳:以下のコードの変数名、関数名、クラス名の明確さを確認し、修正したコードを書き留めてください:
よくある質問
参考資料
■Microsoft創業者のビル・ゲイツが「AIはGUI以来の革命的な進歩」だと語る
https://gigazine.net/news/20230322-bill-gates-ai-age/
■ChatGPTで圧倒的に回答精度を高めやすいよう開発したプロンプト(入力文)ひな形を無償公開
https://prtimes.jp/main/html/rd/p/000000455.000025058.html
■ChatGPT API で区切り線を表現する最適な文字列を見つけた件
https://zenn.dev/zawawahoge/articles/4519112f1ad5ed
■ChatGPT iOSアプリ:使い方、特徴、最大限に活用するためのプロンプト5選
https://chatgpt-lab.com/n/n9cf6ca1a04c8
■「ChatGPT」に使われる言語モデル「GPT」からうまく答えを引き出すためのOpenAI公式ガイドhttps://gigazine.net/news/20230606-openai-gpt-best-practices/
コメント