ChatGPT を活用する(プロンプト初心者から上級者へ)#
前言##
良い検索エンジンを使うテクニックが検索効率を大幅に向上させるように、ChatGPT とのコミュニケーションにおける柔軟なテクニックは、AI を使用する能力を大幅に強化することができます。
私はこれらのテクニックの学習を三つの段階に分けています:
-
基本原則を学ぶ
-
プロンプトの構造化された書き方を学ぶ
-
GPT にプロンプト作成を手伝わせる方法を探る
以下で、これら三つの段階について説明します。
基本原則##
基本原則は二つあります:1. できるだけ明確に 2. できるだけ GPT に多く考えさせる
明確に##
GPT の本質は確率推論を行うことであり、得られる情報が多ければ多いほど正確になります。極端な例として、あなたが ChatGPT に「一」と言った場合、GPT は困惑します。あなたが何を表現したいのか理解できず、推論のしようがないからです。
例えば、あなたが本格的な四川料理の麻婆豆腐の作り方を知りたいとします。以前、Google で「麻婆豆腐」と検索すると、検索エンジンはキーワードに基づいて多くのレシピサイトを表示します。あなたは最初のページに出てくるいくつかの結果をクリックするだけで、簡単に作り方を見つけることができます。
しかし、チャットボットに直接「麻婆豆腐」と言った場合、正確にあなたのニーズを理解できないかもしれません。チャットボットは実際の作り方とは無関係な回答をする可能性があります。逆に、あなたが詳細に説明した場合:「本格的な四川料理の麻婆豆腐のレシピを提供してください。必要な材料、手順、コツなどの情報を含め、各手順の後に説明を加え、最後にこの料理の味の特徴をまとめてください」と言えば、チャットボットはあなたのニーズを正確に理解し、具体的で有用なレシピを提供することができます。
これは、チャットボットを使用する際には、単なるキーワードではなく、明確で具体的な説明が必要であり、高品質な回答を得るためにはそれが重要であることを示しています。これは検索エンジンの使用とは大きく異なります。明確な表現は、チャットボットがニーズをより良く理解するのを助け、より良い応答を得ることができます。出力の質の下限を保証しつつ、出力の質の上限を向上させることができます!
これは従来の Google などの検索エンジンの使用経験とは全く異なります。
GPT に多く考えさせる##
GPT に多く考えさせるとは、GPT に推論をさせることであり、直接的な回答を避けることです。
プロンプトに段階的推論の要求を追加することで、言語モデルはより多くの時間を論理的思考に費やし、出力結果もより信頼性が高く正確になります。OpenAI の公式の例を挙げると、あなたが GPT にある学生の答えが正しいかどうかを判断するプロンプトを与えた場合、複雑な計算問題とその答えに直面すると、GPT は誤った答えを出す可能性が高いです。なぜなら、GPT は人間のようにまず推論を行ってから答えを出すのではなく、すぐに判断を下すからです。短時間の判断では正しい答えを出すことができません(人間が短時間で複雑な数学を計算できないのと同じです)。このようなプロンプトに変更します:まず自分で問題を解決し、その後自分の解決策と学生の解決策を比較し、学生の解決策が正しいかどうかを評価します。自分が問題を解決する前に、学生の解決策が正しいかどうかを確定しないでください。プロンプトに明確な指示と条件を与えることで、GPT モデルはより多くの時間をかけて答えを導き出し、より正確な結果を得ることができます。
もう一つの効果的な方法は、GPT モデルに複雑なタスクをいくつかの簡単なサブタスクに分解し、それを一つずつ完了させるように導くことです。
このタスク分解の方法は、まず大きくて複雑なタスクをいくつかの小さくて管理しやすいサブタスクに分けることを含みます。次に、私たちはそれぞれのサブタスクの推論プロセスに GPT モデルを集中させるように指導します。すべてのサブタスクが完了した後、それぞれの部分の結果を統合して、包括的な最終結果を形成します。この方法の利点は、GPT モデルが各サブタスクを処理する際により集中できるようになり、出力の正確性と質を効果的に向上させることができる点です。
即用のパフォーマンス向上プロンプト##
以下の文は、任意の対話の最後に追加することで、GPT の回答を一定程度向上させることができます。
PS (Plan and Solve): まず問題を理解し、解決策を考えましょう。それから、計画を実行し、問題を段階的に解決しましょう。(問題を理解し、解決策を考え、その後計画に従って問題を段階的に解決しましょう。)
PS+ (Plan and Solve): まず問題を理解し、関連する変数とそれに対応する数値を抽出し、計画を立てましょう。それから、計画を実行し、中間変数を計算し(正確な数値計算と常識に注意)、問題を段階的に解決し、答えを示しましょう。(問題を理解し、関連する変数と数値を抽出し、計画を立て、その後計画を実行し、中間変数を計算し、問題を段階的に解決して答えを示しましょう。)
APE (Automatic Prompt Engineer): 一歩一歩解決して、正しい答えを確実に得ましょう。(一歩ずつ問題を解決して、正しい答えを確実に得ましょう。)
OPRO (Optimization by PROmpting): 深呼吸して、この問題を段階的に解決しましょう。(深呼吸して、問題を段階的に解決しましょう。)
少しの算術と論理的アプローチが、私たちがこの問題の解決策に迅速に到達するのを助けます。(少しの算術と論理的思考が、この問題の解決策に迅速に到達するのを助けます。)
私たちの数値的な命令と明確な思考を組み合わせて、迅速かつ正確に答えを解読しましょう。(私たちの数値的な命令と明確な思考を組み合わせて、迅速かつ正確に答えを解読しましょう。)
構造化プロンプト##
ChatGPT により複雑なタスクを実行させたい場合、より複雑なプロンプトが必要です。では、複雑なプロンプトをどのように書くのでしょうか。以下の構造化プロンプトのテクニックを使用できます。
構造化とは何でしょうか?日常の読書や執筆を例にとってみましょう。私たちが読む書籍には、さまざまなタイトル、サブタイトル、段落、文などの文法要素が使用されています。私たち自身の執筆過程でも、内容を章や段落に分けて考えを表現します。簡単に言えば、構造化プロンプトの概念は、執筆プロセスに似ています:それは構造を通じて私たちの考えを明確かつ整理された形で表現するのを助けます。
私たちが日常生活でさまざまな執筆テンプレートを使用して読みやすさや表現を助けるように、古代の八股文、現代の履歴書テンプレート、学生の実験報告書テンプレート、論文テンプレートなど、これらの構造テンプレートは、私たちが組織的に内容を提示するのを助けます。同様に、構造化プロンプトを作成する際にも、さまざまな優れたテンプレートを利用することで、執筆プロセスをより簡単にし、内容の効果と効率を向上させることができます。したがって、自分に合ったテンプレートを選択または作成することは、PPT テンプレートを使用するのと同じように、構造化プロンプトの質を大幅に向上させることができます。
私のテンプレートの一つは:
Explain
####** 背景 ** タスクの背景を説明 ####** 目標タスク **GPT に最終目標を伝える ####** 実現戦略 **GPT に上記の目標を段階的に実現する方法を伝える ####** 出力例 ** 出力の例を示す ####** 制限点と重要事項 **GPT に制限点や重要な事項を伝える
実現戦略の部分では、AOT 構造を使用できます:
AoT(AOT algorithm of thoughts)は、アルゴリズム思考を模倣します。以下のいくつかのワークフローを通じてタスクを実現します。
-
問題を定義する:AoT はまず問題を明確にします。
-
情報を収集する:AoT は LLM に必要な情報を取得するよう促します。
-
情報を分析する:LLM は収集した情報を分析します。
-
仮説を立てる:初期の解決策を提案します。
-
仮説をテストする:LLM は仮説を反論し、潜在的な結果を想定します。
-
結論を出す:LLM は完全な解決策を提供します。
上記の原理に基づいて、以下の書籍リストのフィルタリングの例を見てみましょう:
書籍リストのクラスタリング
#### 背景
私の手元には、多様な種類の書籍を含む豊富な書籍リストがあります。
#### 目標タスク
書籍の内容と特徴に基づいて、それらを分類してください。分類は 5 つを超えないようにし、分類が正確であることを確認してください。
#### 実現戦略
深呼吸して、一歩一歩考えましょう:
-
-
可能な書籍の種類を特定し、書名に基づいて初歩的に分類します。
-
各書籍について、関連する概要や内容情報を収集します。
-
収集した情報に基づいて書籍をさらに分類します。
-
各分類の書籍が類似のテーマや内容を持っているか評価します。
-
もしある分類の書籍が十分に類似していない場合、さらなる細分化や分類の調整を検討します。
-
最後に、各分類の書籍がすべて類似していることを確認し、関連するキーワードを付けます。
-
#### 制限点と重要事項
-
分類が事実に基づいていること、つまり実際の書籍の内容に基づいていることを確認してください。
-
各分類にキーワードを提供し、その特徴を理解するのを助けます。
-
5 つを超えない分類を確保してください。
#### 書籍リストは以下の通り
書籍リストのフィルタリング
####背景
私はいくつかの書籍の詳細情報を探しており、選ぶかどうかを決めるために役立てたいと考えています。
####目標タスク
以下の書籍についての概要を提供してください。これにより、各書籍の内容と特徴を理解し、決定を下すのに役立ちます。
####実現戦略
深呼吸して、一歩一歩考えましょう:
-
-
提供された書籍リストに対して、まず書籍の完全なタイトルと著者を特定します。
-
各書籍の詳細な概要を検索し、収集します。
-
収集した概要を簡略化し、概要が明確で情報が完全であることを確認します。
-
概要の情報に基づいて、書籍を初歩的に評価します。受け手、スタイル、テーマなどを含みます。
-
すべての情報を統合した後、書籍リストの順序に従ってユーザーに提供します。
-
例
書名:《XXXX》,著者:"AAAA":
-
-
概要:この書は......
-
評価:歴史小説を好む読者に適しており、スタイルは描写的で、テーマは......
-
####制限点と重要事項
-
提供された情報は事実に基づいている必要があります。
-
もし特定の書籍の具体的な内容が不明な場合は、知らないと直接述べる必要があります。
-
できるだけ完全で簡潔な概要を提供してください。
#### 書籍リストは以下の通り
構造化プロンプトにはまだ多くの内容が探求できる余地があります。興味のある方は、即刻李繼剛をフォローするか、LangGPT を参考にしてください。
GPT にプロンプト作成を手伝わせる##
真の変化は、あなたが GPT にプロンプトの書き方を教え、それによって GPT がこのタスクを手伝うことができるようになることです。
あなたは上記のすべてのテクニックを GPT に教え、GPT をプロンプト作成の専門家にすることができます。このモードでは、あなたはプロンプトの初稿を提供するだけで、GPT はそれを自動的に最適化することができます。これは、簡単な初期入力を通じて、GPT が学んだテクニックを活用し、プロンプトの質を洗練し向上させることを意味します。
具体的には、この方法がもたらす利点は以下の通りです:
-
プロンプトの質を向上させる:慎重に訓練された GPT は、ベストプラクティスに基づいてプロンプトを作成し、その構造を完全にし、GPT モデルの潜在能力を最大限に引き出します。
-
労力と時間を節約する:この方法により、本来煩雑なプロンプト作成プロセスが自動化され、ユーザーはプロンプトのフレームワークをゼロから考える必要がなくなり、時間と労力を大幅に節約できます。
-
反復と最適化が容易になる:GPT の助けを借りて、ユーザーはプロンプトのバージョンを迅速に反復し、最適化し、効果を評価し、最適なテンプレートを選択することで、簡単に最適化を実現できます。
-
広範な適応性:GPT は、さまざまな分野やタスクに対するプロンプト作成のテクニックを学び、新しいニーズに簡単に適応できます。
まとめ##
上記の内容から、ChatGPT と効率的にコミュニケーションを取るための三つのレベルが見えてきます:
-
基本原則を理解する:これは ChatGPT を使用するための基礎であり、明確さと GPT に深く考えさせることを強調しています。生き生きとした比喩を通じて、私たちはこれらの原則をよりよく理解し、適用することができます。
-
構造化プロンプトのテクニックを習得する:このレベルでは、背景、目標、戦略、制限条件などのフレームワークを利用して、GPT に効果的に複雑な問題を解決させる方法を学びます。
-
GPT を利用してプロンプト作成を支援する:これは ChatGPT とのインタラクションの高いレベルを表し、高品質なプロンプトを自動生成する目標を達成し、繰り返しの作業を減らします。
これら三つのレベルを段階的に深めることで、私たちは ChatGPT とのより効率的で豊かな協力関係を築き、その巨大な潜在能力を最大限に引き出し、より多くの価値を創造することができます。