前言#
良い検索エンジンの使い方が検索効率を大幅に向上させるように、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 テンプレートを使用するのと同じように、構造化プロンプトの質を大幅に向上させることができます。
私の一つのテンプレートは:
####**背景**
タスクの背景を説明する
####**目標タスク**
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 は、さまざまな分野やタスクに対するプロンプト作成のテクニックを学び、新しいニーズに簡単に適応できます。
まとめ#
上記の内容から、ChatGPT と効率的にコミュニケーションを取るための三つのレベルが見えてきます:
- 基本原則の理解:これは ChatGPT を使用するための基礎であり、明確さと GPT に深く考えさせることを強調しています。生き生きとした比喩を通じて、これらの原則をよりよく理解し、適用することができます。
- 構造化プロンプトのテクニックの習得:このレベルでは、背景、目標、戦略、制限条件などのフレームワークを利用して、GPT が複雑な問題を効果的に解決するように導く方法を学びます。
- GPT を利用してプロンプト作成を支援する:これは ChatGPT とのインタラクションの高いレベルを表し、高品質なプロンプトを自動生成する目標を達成し、繰り返しの作業を減らします。
この三つのレベルを段階的に深めることで、ChatGPT とのより効率的で豊かな協力関係を築き、その巨大な潜在能力を最大限に引き出し、より多くの価値を創造することができます。
参考#
[https://guangzhengli.com/blog/zh/gpt-embeddings/]
https://mp.weixin.qq.com/s/HH2JthU7pmiSjbHsJKpy7w algorithm of thoughts
https://twitter.com/bindureddy/status/1700715030046802148 思维树