|
出典: Big Fishのデータライフ
OpenAIは最近、「GPTベストプラクティス」をリリースしました。これには、6つの領域にわたる17の最適化戦略が含まれています。公式ドキュメントでは、個々のニーズに合った手法を見つけるための実験を推奨しています。私はドキュメントを翻訳し、すべての例を実行しましたが、すべて問題なく動作しました。これらの例を学習することで、ChatGPTでコンテキストアウェアな質問をする能力が間違いなく向上するでしょう。
I. 明確な指示を与える 説明が明確でない場合、GPTはあなたの意図を理解できない可能性があります。簡潔な回答が必要な場合は、GPTに簡潔な回答を提供するよう依頼してください。より専門的な回答が必要な場合は、専門家としての回答を提供するよう依頼してください。出力形式を特定の形式で指定する場合は、形式を指定するか、例を挙げてください。リクエストが具体的であればあるほど、期待通りの回答が得られる可能性が高くなります。
1. より適切な回答を得るために、質問にさらに詳しい情報を含めてください。
関連性の高い回答を得るには、リクエストに重要な詳細やコンテキストが含まれていることを確認してください。そうしないと、モデルがあなたの意図を推測することになります。
例1:
さらに悪いことに、Excel で数字を追加するにはどうすればいいでしょうか? より良い例: Excel でドル金額の行を合計するにはどうすればよいでしょうか。ワークシート内のすべての行を自動的に合計し、右側の「合計」という列にすべての合計を表示したいと考えています。
例2:
さらに悪い例: フィボナッチ数列を計算するコードを書く。 より良い例:フィボナッチ数列を計算する効率的なTypeScript関数を記述します。コードに、各部分の機能と、この構文が使用される理由を説明する詳細なコメントを追加します。
例3:
さらに悪い例: 会議の議事録を要約します。 より良い方法:議事録を1段落にまとめます。次に、発言者とその要点をMarkdown形式でリストアップします。最後に、発言者が提案した次のステップやアクションがあれば、それをリストアップします。
2. モデルは指定された文字を使用する必要があります。 このコンテキストにおいて、ChatGPTは会話中に質問に答えるために特定のペルソナを採用するようモデルに指示します。システムメッセージは、モデルが応答で使用するペルソナを指定するために使用されます。システムメッセージは、ChatGPTモデルが応答を導くために生成する追加情報です。システムメッセージには、モデルが生成する回答に影響を与える指示、ヒント、または特定のコンテキスト情報を含めることができます。システムメッセージを通じて、モデルに特定の役割、トーン、または行動を使用して質問に答えるように指示することで、よりターゲットを絞った対話効果を実現できます。 例:
(1)システムメッセージを設定する
私が何かを書くのに助けを求めると、あなたは各段落に少なくとも 1 つのジョークまたは気の利いたコメントを含む文書で返信します。
(2)ユーザー入力
スチールボルトのサプライヤーに、商品を期日通りに、そして短期間で納品してくれたことへの感謝の気持ちを伝える感謝状を書きます。おかげで重要な注文を履行することができました。
(3)ChatGPT返信
スチールボルトサプライヤー様 皆様のスピードに対する敬意を知っているので、この手紙をできるだけ早く書いています。皆様の配達スピードはボルトを回すよりも速く、本当に素晴らしいです。私たちの感謝の気持ちは、皆様のボルトのように、揺るぎなく、揺るぎないものです。 心より感謝申し上げます。貴社の素晴らしいサービスのおかげで、私たち全員が大きなプレッシャーを感じております。企業の成功は、ボルトがトルクに反応するのと同じように、圧力への対応力にかかっている場合があります。貴社のような迅速な対応と迅速な納品をしてくれるサプライヤーに出会えたことを、大変幸運に思います。 貴社の迅速な納品能力は、ボルトのように、当社の成功に大きく貢献しています。重要な注文を非常に短期間で完了できたことは、まるで鉄のボルトを正しい位置にねじ込んだかのような感覚でした。確かに、この例えは少し「きつい」ように聞こえるかもしれませんが、まさに今、私たちが感じていることです。 私たちのチームは精巧な機械のようなものです。しかし、その機械を構成するすべての部品は、適切なボルトでしっかりと固定されている必要があります。皆様の迅速かつ時間通りの納品は、まさにそのボルトのように、機械のスムーズな稼働を支えています。皆様はまさに私たちの「ボルトメッセンジャー」であり、緊急に必要なボルトを迅速かつ正確に届けてくれます。 最後に、ボルトに対する私たちの期待を全く新しいレベルに引き上げてくださったことをお伝えしたいと思います。納期厳守で期待を上回るだけでなく、納品された製品の品質も非常に高く、まさに「ボルトサプライズ」でした!この緊密なパートナーシップが、私たちのボルトのように強く揺るぎないものとして、これからも続いていくことを願っています。 まさに「締結」を全く新しい次元へと引き上げていただき、深く感謝申し上げます。今後も「ファストボルト」サービスをぜひご提供いただき、今後のプロジェクトでもぜひご一緒させていただければ幸いです。 心より感謝申し上げます。 あなたの名前 [貴社名]
3. 入力の異なる部分を明確に示すためにセパレーターを使用します。
三重引用符、XMLタグ、セクション見出しなどの区切り文字を使用すると、処理内容に応じてテキストの異なる部分を識別しやすくなります。単純なタスクであれば、区切り文字を使用しても出力品質に影響はないかもしれません。しかし、タスクが複雑になるほど、タスクの詳細に関する曖昧さを排除することがより重要になります。
例:
(1)システムメッセージを設定する
論文要旨とタイトル案をお送りします。タイトルは、読者に論文のテーマを十分理解させるだけでなく、読者の目を引くものでなければなりません。タイトルがこれらの基準を満たしていない場合は、5つの代替案が提案されます。
(2)ユーザー入力
概要:データプラットフォームの核となる考え方は、企業内外の多様なデータを一元化されたプラットフォームに統合することです。データの統合と標準化により、データサイロが解消され、高品質で一貫性のあるデータを実現します。同時に、データプラットフォームはサービス指向のアプローチを通じて、APIの形で様々な部門にデータリソースを提供し、ビジネスシナリオに迅速かつ柔軟に適用できるようにします。この一元管理とサービス指向のデータアーキテクチャにより、企業はデータの価値を最大限に高めることができます。 タイトル: データプラットフォーム
(3)ChatGPT返信
提案タイトル: データ プラットフォーム: エンタープライズ データ統合とサービス指向アーキテクチャの実現 データプラットフォーム: データサイロを解決するための重要なアーキテクチャ データプラットフォーム: 高品質で一貫性のあるデータプラットフォームの構築 データプラットフォーム:企業のデータ駆動型意思決定を支援するシステム データプラットフォーム: データリソースの価値を最大化するための鍵
4. タスクを完了するために必要な手順を指定します。
一部のタスクは、一連のステップとして指定するのが最適です。ステップを明示的に記述することで、モデルがそれらのステップに従いやすくなります。
例: (1)システムメッセージを設定する
ユーザー入力に応答するには、次の手順に従います。 ステップ1 - ユーザーは三重引用符で囲まれたテキストを提供します。このテキストを一文で要約し、「Summary:」という接頭辞を追加します。 ステップ 2 - ステップ 1 の要約をスペイン語に翻訳し、接頭辞「translation:」を追加します。
(2)ユーザー入力
「息子は今年大学受験をします。父親として、良い成績を収めてくれるよう祈りながら、毎日不安でいっぱいです。」
(3)ChatGPT返信
概要: 父親として、私は息子の大学入試について不安を感じ、息子が良い成績を収めることを毎日祈っていました。 翻訳: コモパドレ、私のシエントアンシオーソポルエル試験、大学への入学、あなたの通常のプエダデセンペニャールセゾ。 5. 例を挙げる
一般的なガイドラインはすべてのタスクに当てはまりますが、具体的な例を挙げる方が簡単な場合もあります。例えば、明確に説明するのが難しい文学的なスタイルをモデルに再現させたい場合、例が必要になります。
例:
(1)システムメッセージを設定する
一貫したスタイルで答える
(2)ユーザー入力
忍耐を教えてください
(3)ChatGPT返信
最も深い谷を刻んだ川は穏やかな泉から流れ出ます。最も偉大な交響曲は一つの音符から生まれます。最も精巧なタペストリーは一本の糸から始まります。
(4)ユーザー入力
海について教えてください
(5) ChatGPTの返信
海は地球の表面積の70%以上を覆う広大な塩水域です。小さなプランクトンから大型のクジラまで、無数の海洋生物が生息し、地球の気候を調節する上で重要な役割を果たしています。海の力は、畏敬の念を抱かせると同時に危険な、波、潮汐、海流に表れています。その深海はほとんど未踏のままであり、私たちを魅了し、虜にする謎が秘められています。海は、自然の驚くべき多様性と力、そしてそれを守り、維持する私たちの責任を改めて思い起こさせてくれます。
6. 必要な出力長を指定する
モデルに、指定した目標長さの出力を生成するよう指示できます。目標出力の長さは、単語数、文数、段落数、箇条書き数などに基づいて指定できます。ただし、単に特定の単語数を生成するようモデルに指示するだけでは、高い精度が得られない可能性があることに注意してください。モデルは、特定の数の段落または箇条書きを生成する方がより信頼性が高くなります。
例:
(1)ユーザー入力
三重引用符で囲んだテキストを 25 語で要約してください。 アポロ計画(アポロミッションとも呼ばれる)は、NASAが実施した3番目の有人宇宙飛行計画であり、1968年から1972年にかけて人類初の月面着陸の準備と成功に寄与しました。当初は、ドワイト・D・アイゼンハワー大統領時代の1960年、アメリカ人初の宇宙飛行士を宇宙に送り込んだ1人乗りのマーキュリー計画に続く3人乗り宇宙船として構想されました。アポロ計画は後に、ジョン・F・ケネディ大統領が1961年5月25日の議会演説で述べた「人間を月に送り込み、安全に地球に帰還させる」という国家目標の一部となりました。この目標は、ケネディ大統領が1960年代に設定したものでした。これは、アポロ計画を支援するために宇宙飛行能力を拡張した1961年のジェミニ計画に続く、3番目の有人宇宙飛行計画でした。 ケネディの目標は、アポロ11号のミッションで達成されました。ニール・アームストロングとバズ・オルドリンの宇宙飛行士は、1969年7月20日にアポロ月着陸船(LM)で月面に着陸し、月面を歩きました。一方、マイケル・コリンズは司令・機械船(CSM)で月周回軌道に留まりました。3人は7月24日、太平洋上に無事着陸しました。その後の5回のアポロ計画でも宇宙飛行士が月へ送られ、最後のアポロ17号は1972年12月のものでした。これら6回の宇宙飛行で、12人が月面を歩きました。
(2)ChatGPT返信
アポロ計画はNASAによる3番目の有人宇宙飛行計画であり、人類の月面着陸に成功しました。1968年から1972年にかけて6回の宇宙飛行が行われ、12人が月面を歩きました。
II. 参考テキストを提供する GPTユーザーは、特に難解なトピックや参考文献、URLについて質問された場合、自信満々に虚偽の回答を捏造することがあります。ノートを揃えることで学生が試験で良い成績を取れるように、GPTユーザーに参考文献を提供することで、虚偽の回答を減らすことができます。
1. モデルに参照テキストを使用して回答するよう指示します。
現在のクエリに関連する信頼できる情報をモデルに提供できる場合は、提供された情報を使用して回答を書き込むようにモデルに指示できます。
例:
(1)システムメッセージを設定する
質問に答えるには、三重引用符で区切られた文章を使用してください。文章の中に答えが見つからない場合は、「答えが見つかりません」と書いてください。
(2)ユーザー入力
アポロ計画(アポロミッションとも呼ばれる)は、NASAが実施した3番目の有人宇宙飛行計画であり、1968年から1972年にかけて人類初の月面着陸の準備と成功に寄与しました。当初は、1960年、ドワイト・D・アイゼンハワー大統領時代に、アメリカ人初の宇宙飛行士を送った1人乗りのマーキュリー計画に続く3人乗り宇宙船として構想されました。アポロ計画はその後、1960年代にジョン・F・ケネディ大統領が1961年5月25日の議会演説で述べた「人類を月に送り込み、安全に地球に帰還させる」という国家目標の達成に向けて進められました。これは、アポロ計画を支援するために宇宙飛行能力を拡張した1961年のジェミニ計画に続く、3番目の有人宇宙飛行計画でした。 「質問:アポロ計画は、これまで何回、米国の有人宇宙飛行計画としてみなされてきたか?」
(3)ChatGPT返信
アポロ計画はアメリカ合衆国の3番目の有人宇宙飛行計画でした。
2. 指標モデルは参照テキストからの参照を使用して回答します。
入力に関連情報が既に含まれている場合は、提供された文書内の段落を参照することで、モデルに回答に引用を追加するよう直接指示できます。出力における引用は、提供された文書内の文字列マッチングを用いてプログラム的に検証できます。
例:
(1)システム情報を設定する
三重引用符で区切られた文書と質問が提出されます。提出された文書のみを用いて質問に答え、質問への回答に使用した文書から段落を引用してください。文書に質問への回答に必要な情報が含まれていない場合は、「情報不足」と記入してください。質問への回答が提供されている場合は、必ずそれを引用してください。関連する段落を引用するには、次の形式({"citation": …})を使用してください。
(2)ユーザー入力
蒸気機関は、蒸気を作動流体として利用する熱力学エンジンです。蒸気機関は、蒸気圧によって発生する力を利用して、シリンダー内のピストンを往復運動させます。この推力は、コネクティングロッドとクランクシャフトを介して回転力に変換され、仕事を行います。「蒸気機関」という用語は、一般的に、前述の往復機関のみを指し、蒸気タービンには適用されません。蒸気機関は、作動流体と燃焼生成物が分離された外燃機関です。このプロセスを分析するために使用される理想的な熱力学サイクルは、ランキンサイクルと呼ばれます。一般的な用法では、「蒸気機関」という用語は、鉄道蒸気機関車やポータブルエンジンなどの完全な蒸気駆動システム(ボイラーなどを含む)を指す場合もあれば、ビームエンジンや定置型蒸気機関などのピストンまたはタービンのみを指す場合もあります。 蒸気動力装置は空気圧ポンプとともに紀元後1世紀には知られており、16世紀には他の用途の記録がいくつか残っているが、ジェロニモ・デ・アヤンス・イ・ボーモントが鉱山の排水用として初の蒸気動力送水ポンプを発明し特許を取得したのは1606年のことだった。トーマス・セイヴァリは、蒸気圧を利用して水に直接作用する蒸気ポンプで、初めて市販された蒸気動力装置の発明者と考えられている。トーマス・ニューコメンは1712年に、機械に連続的に動力を伝達できる初の商業的に成功したエンジンを開発。ジェームズ・ワットは1764年に廃蒸気を別の容器に移して凝結させることで大幅な改良を行い、燃料消費量あたりの出力を大幅に向上させた。19世紀までには、産業革命期には定置式蒸気エンジンが工場の動力源となった。蒸気エンジンは外輪船の帆に取って代わり、蒸気機関車は鉄道を走るようになった。 20世紀初頭までは、往復ピストン式の蒸気機関が主要な動力源でしたが、電気モーターと内燃機関の設計の進歩により、商業用途では徐々に置き換えられていきました。蒸気タービンは、低コスト、高速、高効率という特徴から、発電において往復機関に取って代わりました。 https://en.wikipedia.org/wiki/Steam_engine より抜粋 質問: 最初に商業的に成功した蒸気機関は何でしたか?
(3)ChatGPT返信
トーマス・ニューコメンは 1712 年に、機械に連続的に動力を伝達できる最初の商業的に成功したエンジンを開発しました。
3. 複雑なタスクをより単純なサブタスクに分割します。
1. 意図分類を使用して、ユーザーのクエリに最も関連性の高い指示を識別します。
様々な状況に対応するために多数の独立した命令を必要とするタスクの場合、まずクエリの種類を分類し、その分類に基づいて必要な命令を決定することが効果的です。これは、固定カテゴリを定義し、特定のカテゴリ内のタスクにハードコードされた命令を関連付けることで実現できます。このプロセスは、タスクを一連のステージに分割する際にも再帰的に適用できます。このアプローチの利点は、各クエリにはタスクの次のステージを実行するために必要な命令のみが含まれるため、単一のクエリでタスク全体を実行する場合と比較してエラー率が低下することです。また、ヒントが大きいほど実行コストが高くなるため、コストも削減されます。
例:
(1)システム情報を設定する
カスタマーサービスからのお問い合わせを受け取ります。各お問い合わせは、プライマリカテゴリとセカンダリカテゴリに分類されます。出力は、プライマリカテゴリとセカンダリカテゴリをキーとするJSON形式で提供されます。 主なカテゴリ: 請求、テクニカル サポート、アカウント管理、一般的な問い合わせ。 請求 - セカンダリカテゴリ: テクニカルサポート - セカンダリカテゴリ: アカウント管理 - セカンダリカテゴリ: 一般検索 - 二次カテゴリ: テクニカルサポートやトラブルシューティングが必要なカスタマーサービスからのお問い合わせを受け付けます。以下の方法でユーザーをサポートいたします。 -- モデルが MTD-327J の場合、赤いボタンを 5 秒間押し続け、その後 5 分間待つことをお勧めします。 その後、再度接続をテストします。 -- モデルが MTD-327S の場合、プラグを抜いて再度挿入し、5 分間待ってから... することをお勧めします。 接続をテストします。 (2)ユーザー入力
仕事に戻るにはインターネットが必要です。
(3)ChatGPTの返信:
{「メイン カテゴリ」:「テクニカル サポート」、「セカンダリ カテゴリ」:「トラブルシューティング」} (4)ユーザー入力
トラブルシューティング方法
(5) ChatGPTの返信:
インターネット接続の問題が発生した場合は、次のトラブルシューティング手順に従ってください。 接続ケーブルを確認してください:ルーターに接続するすべてのケーブルが正しく接続されていることを確認してください。ケーブルがしっかりと差し込まれていること、損傷がないこと、緩んでいないことを確認してください。ケーブルは時間の経過とともに緩むことがあります。 ルーター モデル: より具体的なアドバイスやガイダンスを提供できるよう、使用しているルーターのモデルをお知らせください。 ……
2. 長い会話を必要とする会話型アプリケーションの場合は、以前の会話を要約またはフィルタリングします。
GPTのコンテキスト長は固定されているため、ユーザーとアシスタント間の会話(対話全体がコンテキストウィンドウ内に含まれる場合)は、無期限に継続することはできません。この問題にはいくつかの回避策があり、その1つは、対話内の以前のラウンドを要約することです。入力サイズが所定の閾値長に達すると、対話の一部を要約するクエリがトリガーされ、以前の会話の要約がシステムメッセージの一部として含まれる場合があります。あるいは、対話全体を通して、以前の会話をバックグラウンドで非同期的に要約することもできます。
もう 1 つの解決策は、現在のクエリに最も関連性の高い会話の前の部分を動的に選択することです。
3. 長い文書をセクションごとに要約し、完全な要約を再帰的に構築します。
書籍のような非常に長い文書を要約するには、一連のクエリを使用して文書の各部分を要約することができます。これらの部分的な要約を連結することで、要約の要約を生成できます。このプロセスは、文書全体を要約するまで再帰的に実行できます。ある点を要約する際に、前の部分の情報がなければ後の部分を理解することができない場合は、前のテキストの要約をそのまま含めることが有効な手法です。OpenAIは以前、GPT-3のバリエーションを用いて、この手法が書籍を要約する上で有効かどうかを調査しました。
IV. GPTに「考える」時間を与える
1. 結論を急ぐ前に、モデルに独自の解決策を開発するように指示します。
場合によっては、単に結果を与えるのではなく、具体的な推論プロセスを提供するようモデルに明示的に指示する方が、モデルに直接答えを与えるよりも良い結果が得られることがあります。例えば、生徒の数学の問題を解く能力を評価するモデルが必要だとします。この問題を解決する最も明白な方法は、生徒の答えが正しいかどうかをモデルに尋ねることです。
例1:
(1)システム情報を設定する
生徒の答えが正しいかどうかを判断する
(2)ユーザー入力
問題の説明: 太陽光発電システムを構築しており、財務面での支援が必要です。 初年度の総運用コストと平方フィートの数にはどのような関係がありますか? 生徒の解答: x を平方フィート単位の設置サイズとします。 1. 土地コスト: 100倍 2. ソーラーパネルのコスト: 250倍 3. 維持費: 100,000 + 100x 合計コスト: 100x + 250x + 100,000 + 100x = 450x + 100,000
(3)ChatGPT返信 生徒の答えは正解です。 しかし、この生徒の解答は実際には間違っています!モデルがこれに気付くように、まずはモデル自身に解答を生成させるように促すことができます。 例2:
(1)システム情報を設定する
まず、自分なりの問題解決方法を考え出してください。そして、自分の解決策と生徒の解決策を比較し、生徒の解決策が正しいかどうかを評価してください。生徒の解決策が正しいかどうかは、自分で問題を解くまでは判断しないでください。
(2)ユーザー入力
問題の説明: 太陽光発電システムを構築しており、財務面での支援が必要です。 初年度の総運用コストと平方フィートの数にはどのような関係がありますか? 生徒の解答: x を平方フィート単位の設置サイズとします。 1. 土地コスト: 100倍 2. ソーラーパネルのコスト: 250倍 3. 維持費: 100,000 + 100x 合計コスト: 100x + 250x + 100,000 + 100x = 450x + 100,000
(3)ChatGPT返信
x を平方フィートで表した設置寸法とします。 1. 土地コスト: 100倍 2. ソーラーパネルのコスト: 250倍 3. 維持費: 100,000 + 10倍 合計費用: 100倍 + 250倍 + 100,000 + 10倍 = 360倍 + 100,000 学生の答えは不正解です。維持費の計算で10倍ではなく100倍と間違えていました。正しい初年度の総費用は360倍 + 100,000です。 2. 内部の独白や一連のクエリを使用して、モデルの推論プロセスを隠します。
上記の戦略は、モデルが問題に答える前に、その問題について詳細に推論することが重要である場合があることを示唆しています。アプリケーションによっては、モデルが最終的な答えに到達するために使用する推論プロセスをユーザーと共有することが適切ではない場合があります。例えば、個別指導アプリケーションでは、生徒が自分で答えを導き出すように促したい場合がありますが、生徒の解答に至るモデルの推論プロセスは生徒に公開される可能性があります。
内的独白は、このような状況を緩和するために使用できる戦略です。内的独白の背後にある考え方は、モデルに、ユーザーから隠すべき出力の一部を構造化された形式に変換し、解析できるようにすることです。その後、出力が解析され、その一部だけがユーザーに表示されます。
例1:
(1)システム情報を設定する
ユーザーのクエリに回答するには、次の手順に従ってください。 ステップ1 - まず、問題に対する独自の解答を見つけましょう。生徒の解答は間違っている可能性があるため、そのままにしないでください。このステップで行ったすべての作業は、三重引用符(""")で囲んでください。 ステップ2 - 自分の解答と生徒の解答を比較し、生徒の解答が正しいかどうかを評価します。このステップで行ったすべての作業を三重引用符(""")で囲みます。 ステップ3 - 生徒が間違えた場合、答えを教えずにどのようなヒントを与えるかを検討します。このステップで行った作業はすべて三重引用符(""")で囲みます。 ステップ4 - 生徒が間違えた場合は、前のステップのヒント(引用符の外)を生徒に示してください。「ステップ4 - …」ではなく、「ヒント:」と書いてください。
(2)ユーザー入力
問題文:箱の中に赤いボールが4個、青いボールが6個入っています。箱から2個のボールを元の状態に戻さずに取り出します。取り出したボールのうち1個が赤いボールで、もう1個が青いボールである確率は? 生徒の解答: (4/10) * (6/9) = 24/90 = 4/15
(3)ChatGPT返信
ステップ1 - まず、問題に対する独自の解答を見つけましょう。生徒の解答は間違っている可能性があるため、そのままにしないでください。このステップで行ったすべての作業は、三重引用符(""")で囲んでください。 箱の中には赤いボールが4個、青いボールが6個、合計10個のボールが入っています。赤いボールと青いボールを1個ずつ取り出すと、順番は2通りあります。赤いボール、青いボールの順、または青いボール、赤いボールの順です。 最初に赤いボール(4 個のうち 1 個)を引き、次に青いボール(6 個のうち 1 個)を引くと、この状況の確率は (4/10) * (6/9) になります。 最初に青いボール(6 個のうち 1 個)を引き、次に赤いボール(4 個のうち 1 個)を引くと、この状況の確率は (6/10) * (4/9) になります。 どちらのシナリオも起こり得るので、それぞれの確率を足し合わせる必要があります: (4/10) * (6/9) + (6/10) * (4/9) = 24/90 + 24/90 = 48/90 = 8/15 ステップ2 - 自分の解答と生徒の解答を比較し、生徒の解答が正しいかどうかを評価します。このステップで行ったすべての作業を三重引用符(""")で囲みます。 生徒の解答では、1つのシナリオ(最初に赤いボール、次に青いボールを引く)の確率のみを計算し、もう1つのシナリオ(最初に青いボール、次に赤いボールを引く)の確率を計算しておらず、2つのシナリオの確率を合計しています。したがって、生徒の解答は誤りです。 ステップ3 - 生徒が間違えた場合、答えを教えずにどのようなヒントを与えるかを検討します。このステップで行った作業はすべて三重引用符(""")で囲みます。 ヒントを与える際に、生徒にボールを引く順番を2通り考えさせることができます(例えば、赤いボールを先に引いてから青いボールを引く、あるいは青いボールを先に引いてから赤いボールを引く)。そして、この2つのシナリオの確率を足し合わせます。 ステップ4 - 生徒が間違えた場合は、前のステップのヒント(引用符の外)を生徒に示してください。「ステップ4 - …」ではなく、「ヒント:」と書いてください。 ヒント:この問題では、箱から赤いボールを先に取り出し、次に青いボールを取り出すという可能性を考えました。しかし、青いボールを先に取り出し、次に赤いボールを取り出すという別の可能性もあります。この2つのシナリオの確率を計算し、それらを足し合わせる必要があります。
3. モデルが以前に渡されたコンテンツを見逃したかどうかを問い合わせます。
特定の質問に関連するソースからの抜粋をリストアップするモデルを使用するとします。各抜粋をリストアップした後、モデルは次の抜粋の書き込みを開始するか、停止するかを判断する必要があります。ソースドキュメントが大きい場合、モデルは途中で停止し、関連する抜粋をすべてリストアップできないことがよくあります。このような場合、後続のクエリヒントを使用して、以前のパスで見逃した抜粋をモデルが見つけられるようにすることで、パフォーマンスを向上させることができます。
例1:
(1)システム情報を設定する
三重引用符で区切られた文書を受け取ります。課題は、「人工知能の歴史における主要なパラダイムシフトは何ですか?」という質問に関連する抜粋を選択することです。 抽出結果には、説明に必要なすべての関連コンテキストが含まれていることを確認してください。つまり、重要なコンテキストが欠落した小さなスニペットを抽出しないでください。出力は、以下に示すようにJSON形式で提供してください。 [{"抽出する":"..."}、 ... {"抽出する":"..."}]
(2)ユーザー入力
「」 人工知能(AI)とは、人間や他の動物ではなく、機械によって発揮される知能、つまり情報を知覚、統合、推論する能力です。AIを実現するタスクの例としては、音声認識、コンピュータービジョン、(自然)言語間の翻訳、その他の入力マッピングなどが挙げられます。 人工知能の応用には、高度なウェブ検索エンジン(Google検索など)、推奨システム(YouTube、Amazon、Netflixで使用)、人間の音声理解(SiriやAlexaなど)、自動運転車(Waymoなど)、生成または創造ツール(ChatGPTやAIアート)、自動意思決定、戦略ゲームシステムにおけるハイレベルな競争(チェスや囲碁など)などがある。[1] 機械の能力が向上するにつれて、「知能」を必要とすると考えられていたタスクがAIの定義から外れることが多くなり、これはAI効果と呼ばれる現象です。[2] 例えば、光学式文字認識は人工知能の定義から外され、ありふれた技術となることがよくあります。[3] 人工知能という学問分野は1956年に創設され、それ以来、幾度かの楽観的な波[4][5]、失望と資金枯渇(「AIの冬」として知られる)[6][7]、そして新たなアプローチ、成功、そして新たな資金の投入を経験してきました。[5][8] 人工知能研究では、脳のシミュレーション、人間の問題解決のシミュレーション、形式論理、大規模知識データベース、動物行動の模倣など、様々なアプローチが試みられ、そして放棄されてきました。21世紀の最初の数十年間は、高度な数学的・統計的機械学習がこの分野を席巻し、この技術は産業界と学界の多くの困難な問題の解決に非常に効果的であることが証明されました。[8][9] 人工知能研究の各サブフィールドは、特定の目標と特定のツールの使用に重点を置いています。人工知能研究の伝統的な目標には、推論、知識表現、計画、学習、自然言語処理、知覚、そして物体の移動と操作能力が含まれます。[a] 汎用知能(任意の問題を解決する能力)は、この分野における長期的な研究目標の一つです。[10] これらの問題に対処するために、人工知能研究者は、探索、数理最適化、形式論理、人工ニューラルネットワーク、統計学、確率論、経済学に基づく手法など、幅広い問題解決手法を採用・統合してきました。人工知能は、コンピュータサイエンス、心理学、言語学、哲学など、多くの分野にも影響を与えています。 该领域建立在这样的假设之上,即人类智能“可以被如此精确地描述,以至于可以制造一台机器来模拟它”。[b]这引发了关于思维的哲学争论以及创造具有类人能力的人造生物的伦理后果智力; 自古以来,神话、小说和哲学就曾探讨过这些问题。[12] 此后,计算机科学家和哲学家提出,如果人工智能的理性能力没有被引导到有益的目标,人工智能可能会成为人类生存的风险。[c] 人工智能一词也因过度夸大人工智能的真正技术能力而受到批评。[13][14] ][15]“”“
(3)ChatGPT回复
[ {"摘录":"人工智能(AI) 是智能——感知、综合和推断信息——由机器展示,而不是人类或其他动物展示的智能。完成此操作的示例任务包括语音识别、计算机视觉、(自然)语言之间的翻译以及其他输入映射。"}, {"摘录":"人工智能作为一门学科成立于1956 年,在此后的几年里,它经历了数次乐观浪潮,[4][5] 随后是失望和资金流失(被称为“AI 寒冬”),[6 ][7] 随后是新方法、成功和新的资金。[5][8] 人工智能研究尝试并放弃了许多不同的方法,包括模拟大脑、模拟人类问题解决、形式逻辑、大型知识数据库和模仿动物行为。在21 世纪的头几十年,高度数学和统计的机器学习在该领域占据主导地位,而且这种技术已被证明非常成功,有助于解决整个工业界和学术界的许多具有挑战性的问题。"}, {"摘录":"人工智能研究的各个子领域都以特定目标和特定工具的使用为中心。人工智能研究的传统目标包括推理、知识表示、规划、学习、自然语言处理、感知以及移动和操纵物体的能力。[a] 通用智能(解决任意问题的能力)是该领域的长期研究目标之一- 长期目标。[10] 为了解决这些问题,人工智能研究人员采用并整合了广泛的问题解决技术,包括搜索和数学优化、形式逻辑、人工神经网络以及基于统计学、概率论和经济学的方法。人工智能还借鉴了计算机科学、心理学、语言学、哲学和许多其他领域。"}, {"摘录":"该领域建立在这样的假设之上,即人类智能“可以被如此精确地描述,以至于可以制造一台机器来模拟它”。[b]这引发了关于思维的哲学争论以及创造具有类人能力的人造生物的伦理后果智力; 自古以来,神话、小说和哲学就曾探讨过这 些问题。"} ]
(4)用户输入
有更多相关的摘录吗?注意不要重复摘录。还要确保摘录包含解释它们所需的所有相关上下文——换句话说,不要提取缺少重要上下文的小片段。
(5)ChatGPT回复
抱歉,由于输入的文件只有这些信息,我无法提供更多相关的摘录。我已经提供了所有关于人工智能历史中的重大范式转变的信息,包括AI作为学科的创立,AI研究的不同阶段,如“AI寒冬”和21世纪初的机器学习的崛起,以及人工智能研究的目标和采用的方法。如果有更多的文本内容,我将能够提供更多相关的摘录。 五、使用外部工具
1、使用基于嵌入的搜索来实现高效的知识检索
如果作为输入的一部分提供,模型可以利用外部信息源。这可以帮助模型生成更明智和最新的响应。例如,如果用户询问有关特定电影的问题,将有关电影的高质量信息(例如演员、导演等)添加到模型的输入中可能会很有用。嵌入可用于实现高效的知识检索,以便在运行时将相关信息动态添加到模型输入中。
文本嵌入是一个向量,可以衡量文本字符串之间的相关性。相似或相关的字符串将比不相关的字符串靠得更近。这一事实以及快速向量搜索算法的存在意味着嵌入可用于实现高效的知识检索。特别是,一个文本语料库可以被分割成块,每个块都可以被嵌入和存储。然后可以嵌入给定的查询并执行向量搜索以从语料库中找到与查询最相关的嵌入文本块(即在嵌入空间中最接近)。
比如ChatGLM+LangChain就是一种开源的领域大模型解决方案,具体可以参考相关资料。
2、使用代码执行来执行更准确的计算或调用外部API
不能依赖GPT 自行准确地执行算术或长计算。在需要的情况下,可以指示模型编写和运行代码,而不是进行自己的计算。特别是,可以指示模型将要运行的代码放入指定的格式中,例如三重backtics。生成输出后,可以提取并运行代码。最后,如果有必要,可以将代码执行引擎(即Python 解释器)的输出作为输入提供给下一个查询的模型。
例:
(1)设置系统信息
您可以通过将Python 代码括在三重反引号中来编写和执行Python 代码,例如代码在这里。使用它来执行计算。
(2)用户输入
找出以下多项式的所有实值根:3x**5 - 5x4 - 3*x3 - 7*x - 10。
(3)ChatGPT回复
为了找出多项式的所有实根,我们可以使用Python 的numpy 库中的roots 函数。这个函数将计算出一个多项式的所有根(包括实根和复根)。为了只获取实根,我们可以过滤出那些虚部为零的根。 以下是对应的Python 代码:
运行这段代码将会给出多项式3x5 - 5x4 - 3x**3 - 7x - 10 的所有实根。 六、系统地测试变化
有时很难判断更改(例如,新指令或新设计)是否会使您的系统变得更好或更糟。查看几个示例可能会暗示哪个更好,但是样本量较小时,很难区分真正的改进还是随机的运气。也许这种变化有助于某些输入的性能,但会损害其他输入的性能。
评估程序(或“evals”)对于优化系统设计很有用。好的评价是:
代表现实世界的使用(或至少是多样化的) 包含许多测试用例以获得更大的统计能力(有关指南,请参见下表) 易于自动化或重复
1、参考黄金标准答案评估模型输出
假设已知问题的正确答案应该参考一组特定的已知事实。然后我们可以使用模型查询来计算答案中包含了多少所需事实。
例1:
(1)设置系统信息
您将获得由三重引号分隔的文本,这些文本应该是问题的答案。检查答案中是否直接包含以下信息: 对于这些点中的每一个,执行以下步骤: 1 - 重申这一点。 2 - 引用最接近这一点的答案。 3 - 考虑阅读引文但不了解主题的人是否可以直接推断出这一点。在下定决心之前解释为什么或为什么不。 4 - 如果对3 的回答是“是”,则写“是”,否则写“否”。 最后,提供有多少个“是”答案的计数。将此计数提供为{"count": (2)用户输入
"""尼尔阿姆斯特朗因成为第一个踏上月球的人类而闻名。这一历史性事件发生在1969 年7 月21 日,阿波罗11 号任务期间。"""
(3)ChatGPT回复
1 - 尼尔阿姆斯特朗是第一个在月球上行走的人。答案中的引文:"尼尔阿姆斯特朗因成为第一个踏上月球的人类而闻名。"考虑引文,尽管它没有直接说阿姆斯特朗是第一个在月球上行走的人,但它明确说阿姆斯特朗是第一个踏上月球的人,这也暗示了他是第一个在月球上行走的人。所以,一个人可以从这个引文中直接推断出阿姆斯特朗是第一个在月球上行走的人。答案:是 2 - 尼尔·阿姆斯特朗首次踏上月球的日期是1969 年7 月21 日。答案中的引文:"这一历史性事件发生在1969 年7 月21 日,阿波罗11 号任务期间。"考虑引文,它明确地提到了这一历史性事件(即阿姆斯特朗踏上月球)发生在1969 年7 月21 日。因此,一个人可以从这个引文中直接推断出尼尔·阿姆斯特朗首次踏上月球的日期是1969 年7 月21 日。答案:是 {"count": 2} 这种基于模型的评估有很多可能的变体。考虑以下变体,它跟踪候选答案和黄金标准答案之间的重叠类型,并跟踪候选答案是否与黄金标准答案的任何部分相矛盾。 例2:
(1)设置系统信息
使用以下步骤响应用户输入。在继续之前完全重述每个步骤。即“第1 步:原因……”。 第1 步:逐步推理提交的答案中的信息与专家答案相比是否是:不相交、相等、子集、超集或重叠(即一些交集但不是子集/超集)。 第2 步:逐步推理提交的答案是否与专家答案的任何方面相矛盾。 第3 步:输出结构如下的JSON 对象:{"type_of_overlap": "disjoint" or "equal" or "subset" or "superset" or "overlapping", "contradiction": true or false}
(2)用户输入
问题:“”“Neil Armstrong 最著名的事件是什么?它发生在什么日期?假定UTC 时间。””” 提交的答案:“”“他不是在月球上行走吗?”“” 专家解答:“”“尼尔阿姆斯特朗最著名的是第一个登上月球的人。这一历史性事件发生在1969 年7 月21 日。”“”
(3)ChatGPT回复
第1 步:逐步推理提交的答案中的信息与专家答案相比是什么关系? 提交的答案"他不是在月球上行走吗?"只包含了专家答案的一部分信息,也就是尼尔·阿姆斯特朗在月球上行走的事实。但是,它没有提供具体的日期,也没有明确表述尼尔·阿姆斯特朗是第一个登上月球的人。所以,提交的答案是专家答案的子集。 第2 步:逐步推理提交的答案是否与专家答案的任何方面相矛盾? 提交的答案没有与专家答案产生任何矛盾,它只是没有提供所有的信息。 第3 步:输出结构如下的JSON 对象: {"type_of_overlap": "subset", "contradiction": false}
如果英文不错的小伙伴,可以去读英文原版。我感觉这份教程质量还是蛮高的。 Webサイト: https://platform.openai.com/docs/guides/gpt-best-practices/six-strategies-for-getting-better-results |