見出し画像

【論文を読む】プロンプトレポート:プロンプト技術の体系的調査 2

前回は、論文の骨格と論文のセクション1「はじめに」までをご紹介してきました。セクション1の内容は、「プロンプトとは」や「用語」「プロンプトの短い歴史」についてでした。
まだお読みでない方は下記よりお読みください。

今回は、セクション2「プロンプトに関するメタ分析」をご紹介します。


2 プロンプトに関するメタ分析

2.1 体系的レビューのプロセス

本論文のためにデータソースを確実に収集するために、PRISMAプロセスに基づいた体系的な文献レビューを実施しました。このデータセットはHuggingFaceでホスティングし、データセットのデータシートを付録A.3で提供します。主なデータソースはarXiv、Semantic Scholar、ACLです。プロンプトとプロンプトエンジニアリングに関連する44のキーワードのリストを使用して、これらのデータベースを照会しました。

2.1.1 パイプライン

このセクションでは、人間とLLM支援のレビューを含むデータスクレイピングパイプラインを紹介します。初期サンプルとして、簡単なキーワードとブールルールに基づいてarXivから論文を取得し、フィルタリング基準を確立します。その後、人間のアノテーターがarXivセットから1,661本の論文を以下の基準でラベル付けします。

・論文は新しいプロンプト技術を提案しているか?(含む)
・論文は厳密にハードプレフィックスプロンプトをカバーしているか?(含む)
・論文は勾配逆伝播を用いたトレーニングに焦点を当てているか?(除外)
・非テキストモダリティに対して、マスクされたフレームまたはウィンドウを使用しているか?(含む)

300本の論文セットを2人のアノテーターが独立してレビューし、92%の一致率を達成しました。次に、残りの論文を分類するためにGPT-4-1106-previewを使用してプロンプトを開発します。このプロンプトを100の実際のアノテーションに対して検証し、89%の精度と75%の再現率(F1スコア81%)を達成しました。人間とLLMのアノテーションを組み合わせて、最終的に1,565本の論文セットを生成します。

2.2 テキストベースの技術

ここでは、58のテキストベースのプロンプト技術の包括的な分類体系を6つの主要なカテゴリに分けて紹介します。一部の技術は複数のカテゴリに適合する場合がありますが、ここでは最も関連性の高いカテゴリに分類しています。

2.2.1 インコンテキスト学習(ICL)

インコンテキスト学習(ICL)は、GenAIが重みの更新や再トレーニングを必要とせずに、プロンプト内のエグザンプラーや関連する指示を提供することでスキルやタスクを学習する能力を指します。これらのスキルは、エグザンプラーや指示から学習されます。注意すべき点は、「学習」という言葉が誤解を招きやすいことです。ICLは単にタスクの指定を意味することがあり、スキルは必ずしも新しいものでなく、トレーニングデータにすでに含まれている場合があります。この用語の使用については付録A.8で議論しています。現在、ICLの最適化や理解に関する重要な研究が進行中です。

ICLエグザンプルプロンプト

2+2: four
4+5: nine
8+0:

ICL指示プロンプト

以下のテキストから、同じ文字が3つ含まれている単語と、他の文字が少なくとも3つ含まれている単語をすべて抽出してください:{TEXT}

トレーニングデータからのICL。このバージョンのICLでは、モデルは新しいスキルを学習するのではなく、トレーニングセットにある知識を使用しています。

「チーズ」をフランス語に翻訳してください。

Few-Shot Prompting
Few-Shot Promptingは、GenAIが少数のエグザンプラーのみでタスクを完了する方法を学習するパラダイムです。

Few-Shot Learning(FSL)
Few-Shot Learning (FSL)は、少数のエグザンプラーでパラメータを適応させる広範な機械学習パラダイムです。FSLは、Few-Shot Promptingとは異なり、モデルのパラメータを更新する必要があります。

2.2.1.1 Few-Shot Promptingの設計決定

プロンプトのエグザンプラーを選択することは難しい作業です。パフォーマンスはエグザンプラーのさまざまな要因に大きく依存し、通常のLLMのコンテキストウィンドウに収まるエグザンプラーの数は限られています。出力の質に大きく影響する6つの設計の決定を強調します。

エグザンプラーの量
プロンプト内のエグザンプラーの量を増やすことで、特に大きなモデルではパフォーマンスが向上します。ただし、場合によっては20以上のエグザンプラーを超えると利益が減少することもあります。

エグザンプラーの順序
エグザンプラーの順序はモデルの挙動に影響を与えます。一部のタスクでは、エグザンプラーの順序によって精度が50%未満から90%以上に変動することがあります。

エグザンプラーのラベル分布
伝統的な教師あり機械学習と同様に、プロンプト内のエグザンプラーラベルの分布は挙動に影響を与えます。例えば、あるクラスのエグザンプラーが10個、別のクラスのエグザンプラーが2個含まれている場合、モデルは最初のクラスに偏る可能性があります。

エグザンプラーのラベルの質
一般的に複数のエグザンプラーの利点がありますが、厳密に有効なデモンストレーションが必要かどうかは不明です。一部の研究では、ラベルの正確性は無関係であることが示唆されていますが、特定の設定ではパフォーマンスに大きな影響を与えることがあります。大きなモデルは、誤ったラベルや無関係なラベルを扱うのが得意です。

大規模データセットからプロンプトを自動生成する場合、そのデータセットに不正確さが含まれている可能性があるため、ラベルの質が結果にどのように影響するかを研究する必要があるかもしれません。

エグザンプラーの形式
エグザンプラーの形式もパフォーマンスに影響を与えます。最も一般的な形式の1つは「Q: {input}, A: {label}」ですが、最適な形式はタスクによって異なる場合があります。複数の形式を試して、どれが最適かを確認する価値があるかもしれません。トレーニングデータで頻繁に出現する形式は、より良いパフォーマンスを引き出す可能性があります。

エグザンプラーの類似性
テストサンプルに類似したエグザンプラーを選択することは、一般的にパフォーマンス向上に有益です。しかし、一部のケースでは、より多様なエグザンプラーを選択することでパフォーマンスが向上することもあります。

2.2.1.2 Few-Shot Promptingの技術

これらの要因を考慮すると、Few-Shot Promptingを効果的に実装することは非常に難しいです。ここでは、教師あり設定におけるFew-Shot Promptingの技術を検討します。アンサンブリングアプローチもFew-Shot Promptingに利益をもたらすことができますが、それは別に議論します(セクション2.2.5)。

トレーニングデータセットがあり、少数のエグザンプラーとプロンプトを使ってGenAIをFew-Shot Promptingする場合、プロンプトは以下のテンプレートに従って動的に生成されます。

Few-Shot Promptingのテンプレート

{Exemplars}
{Test Input}:

K-近傍法(KNN)
Liu et al. (2021) のアルゴリズムの一部であり、テスト入力に類似したエグザンプラーを選択してパフォーマンスを向上させます。ただし、プロンプト生成時にKNNを使用することは時間とリソースがかかる場合があります。

Vote-K
Su et al. (2022) はテストサンプルに類似したエグザンプラーを選択する別の方法です。最初のステージでは、モデルが注釈者にラベルを付けるための有用な未ラベルの候補エグザンプラーを提案します。次に、ラベル付けされたプールがFew-Shot Promptingに使用されます。Vote-Kは、新しく追加されたエグザンプラーが既存のものと十分に異なることを保証し、多様性と代表性を高めます。

自己生成インコンテキスト学習(SG-ICL)
Kim et al. (2022) はGenAIを活用してエグザンプラーを自動生成します。トレーニングデータが利用できない場合、ゼロショットシナリオよりも優れていますが、生成されたサンプルは実際のデータほど効果的ではありません。

プロンプトマイニング
Jiang et al. (2020) は、大規模コーパス分析を通じてプロンプトの最適な「中間語」を発見するプロセスです。例えば、Few-Shotプロンプトに一般的な「Q: A:」形式を使用する代わりに、コーパス内でより頻繁に発生する形式が存在するかもしれません。コーパス内でより頻繁に発生する形式は、プロンプトのパフォーマンスを向上させる可能性があります。

より複雑な技術
LENS (Li and Qiu, 2023a)、UDR (Li et al., 2023f)、およびActive Example Selection (Zhang et al., 2022a) は、それぞれ反復フィルタリング、埋め込みと取得、強化学習を活用しています。

2.2.2 ゼロショット

Few-Shot Promptingとは対照的に、Zero-Shot Promptingはエグザンプラーを使用しません。よく知られたスタンドアロンのゼロショット技術や、別の概念と組み合わせたゼロショット技術(例:Chain of Thought)があります。これらについては後で詳しく説明します(セクション2.2.3)。

ロールプロンプティング
Wang et al. (2023j); Zheng et al. (2023d) は、GenAIに特定の役割を割り当てるプロンプトです。例えば、ユーザーは「マドンナ」や「旅行作家」として行動するように指示することができます。これにより、オープンエンドなタスクでより望ましい出力が得られ、場合によってはベンチマークでの精度が向上することがあります。

スタイルプロンプティング
Lu et al. (2023a) は、プロンプトに望ましいスタイル、トーン、またはジャンルを指定してGenAIの出力を形成するものです。ロールプロンプティングを使用して同様の効果を得ることもできます。

エモーションプロンプティング
Li et al. (2023a) は、プロンプトに心理的に重要なフレーズ(例:「これは私のキャリアにとって重要です」)を組み込むことで、ベンチマークやオープンエンドなテキスト生成でLLMのパフォーマンスを向上させるものです。

System 2 Attention (S2A)
Weston and Sukhbaatar (2023) は、最初にLLMにプロンプトを再構成して質問に関連しない情報を削除させ、次にこの新しいプロンプトをLLMに渡して最終応答を得る方法です。

SimToM
Wilf et al. (2023) は、複数の人や物が関与する複雑な質問に対処します。質問に基づいて、ある人物が知っている事実のセットを確立し、その事実のみに基づいて質問に答えるという二段階プロセスです。これにより、プロンプト内の無関係な情報の影響を排除できます。

Rephrase and Respond (RaR)
Deng et al. (2023) は、LLMに質問を再構成し、拡張するよう指示してから最終回答を生成させます。例えば、質問に「質問を再構成して拡張し、応答してください」と追加することがあります。これを一度に行うことも、新しい質問を別途LLMに渡すこともできます。RaRは複数のベンチマークで改善を示しています。

Re-reading (RE2)
Xu et al. (2023) は、プロンプトに「質問をもう一度読んでください」と追加し、質問を繰り返す技術です。このシンプルな技術にもかかわらず、特に複雑な質問に対して推論ベンチマークでの改善を示しています。

Self-Ask
Press et al. (2022) は、LLMに対して、与えられたプロンプトに対してフォローアップの質問が必要かどうかを最初に判断させます。必要ならば、LLMがこれらの質問を生成し、それに回答してから元の質問に回答します。

2.2.3 思考生成

思考生成は、問題を解決する際にLLMに推論を明確にさせる一連の技術を含みます。

チェーン・オブ・ソート(CoT)プロンプティング
Wei et al. (2022) は、LLMに最終回答を出す前に思考過程を表現させるためにFew-Shot Promptingを利用します。この技術は、時折Chain-of-Thoughtsとも呼ばれ、数学や推論タスクにおいてLLMのパフォーマンスを大幅に向上させることが実証されています。Wei et al. (2022) では、プロンプトには質問、推論経路、および正解を含むエグザンプラーが含まれます。

ワンショットChain-of-Thoughtプロンプト

Q: ジャックはそれぞれ3個のボールが入った2つのバスケットを持っています。ジャックは合計で何個のボールを持っていますか?
A: 1つのバスケットには3個のボールが入っているので、2つのバスケットには3 * 2 = 6個のボールが入っています。
Q: {QUESTION}
A:

2.2.3.1 ゼロショットCoT

最もシンプルなCoTはゼロエグザンプラーを含みます。これは、プロンプトに「段階的に考えましょう」などの思考を誘発するフレーズを追加する方法です。他の提案された思考誘発フレーズには、「正しい答えを確認するために段階的にこれを解決しましょう」や「まず、これについて論理的に考えましょう」があります。Yang et al. (2023a) は最適な思考誘発フレーズを検索します。ゼロショットCoTアプローチはエグザンプラーを必要とせず、一般にタスク非依存であるため魅力的です。

Step-Back Prompting
Zheng et al. (2023c) は、CoTの修正であり、推論に入る前にまず関連する概念や事実についての一般的な質問をLLMに投げかける方法です。このアプローチは、PaLM-2LおよびGPT-4の複数の推論ベンチマークでパフォーマンスを大幅に向上させました。

Analogical Prompting
Yasunaga et al. (2023) は、SG-ICLに似ており、CoTを含むエグザンプラーを自動生成します。数学的推論やコード生成タスクでの改善が実証されています。

Thread-of-Thought (ThoT) Prompting
Zhou et al. (2023) は、CoT推論のための改良された思考誘発フレーズです。「段階的に考えましょう」の代わりに、「このコンテキストを段階的に、管理可能な部分に分けて進み、要約および分析しながら進んでください」を使用します。この思考誘発フレーズは、特に大規模で複雑なコンテキストに対する質問応答や検索設定で効果的です。

Tabular Chain-of-Thought (Tab-CoT)
Jin and Lu (2023) は、LLMが推論をMarkdown表として出力するゼロショットCoTプロンプトです。この表形式により、LLMは出力の構造を改善し、推論を向上させることができます。

2.2.3.2 Few-Shot CoT

この技術セットは、複数のエグザンプラーを含むチェーン・オブ・ソートをLLMに提示します。これによりパフォーマンスが大幅に向上します。この技術は、Manual-CoTやGolden CoTとも呼ばれます。

Contrastive CoT Prompting
Chia et al. (2023) は、正しい説明と誤った説明の両方を含むエグザンプラーをCoTプロンプトに追加して、LLMにどのように推論しないかを示します。この方法は、算術的推論や事実に基づく質問応答の分野で大幅な改善を示しています。

Uncertainty-Routed CoT Prompting
Google (2023) は、複数のCoT推論経路をサンプリングし、検証データに基づいてしきい値を超える多数派を選択します。しきい値を超えない場合は、貪欲にサンプリングしてその応答を選択します。この方法は、GPT4およびGemini UltraモデルのMMLUベンチマークで改善を示しています。

Complexity-based Prompting
Fu et al. (2023b) は、CoTに対する2つの主要な修正を含みます。まず、質問の長さや必要な推論ステップなどの要因に基づいて、注釈とプロンプトに含める複雑な例を選択します。次に、推論中に複数の推論チェーン(回答)をサンプリングし、一定の長さのしきい値を超えるチェーンの多数決を使用します。長い推論が高い回答品質を示すという前提の下、この技術は3つの数学的推論データセットで改善を示しています。

Active Prompting
Diao et al. (2023) は、いくつかのトレーニング質問/エグザンプラーから始め、LLMにそれらを解決させ、その後、注釈者に最も不確かなエグザンプラーを書き直させます。

Memory-of-Thought Prompting
Li and Qiu (2023b) は、テスト時にFew-Shot CoTプロンプトを構築するために未ラベルのトレーニングエグザンプラーを利用します。テスト前に、未ラベルのトレーニングエグザンプラーに対してCoTで推論を実行します。テスト時には、テストサンプルに類似したインスタンスを取得します。この技術は、算術、常識、および事実に基づく推論のベンチマークで大幅な改善を示しています。

Automatic Chain-of-Thought (Auto-CoT) Prompting
Zhang et al. (2022b) は、Wei et al. (2022) のゼロショットプロンプトを使用してチェーン・オブ・ソートを自動生成します。これらを使用してテストサンプルのためのFew-Shot CoTプロンプトを構築します。

2.2.4 分解

複雑な問題をより簡単なサブクエスチョンに分解することに焦点を当てた研究が多数あります。これは、人間だけでなくGenAIにとっても効果的な問題解決戦略です。一部の分解技術はCoTのような思考誘導技術に似ていますが、明示的に問題を分解することで、LLMの問題解決能力をさらに向上させることができます。

Least-to-Most Prompting
Zhou et al. (2022a) は、LLMに与えられた問題をサブプロブレムに分解するように指示することから始めます。次に、それらを順次解決し、各モデル応答をプロンプトに追加して最終結果に到達するまで繰り返します。この方法は、記号操作、構成的な一般化、および数学的推論に関わるタスクで大幅な改善を示しています。

Decomposed Prompting (DECOMP)
Khot et al. (2022) は、Few-Shotプロンプトを使用して、特定の関数(例:文字列分割やインターネット検索)を使用する方法をLLMに示します。これにより、LLMは元の問題をサブプロブレムに分解し、異なる関数に送信します。この方法は、一部のタスクでLeast-to-Most Promptingを上回るパフォーマンスを示しています。

Plan-and-Solve Prompting
Wang et al. (2023f) は、改良されたゼロショットCoTプロンプト「まず問題を理解し、それを解決するための計画を立てましょう。その後、その計画を実行し、段階的に問題を解決しましょう」を使用します。この方法は、複数の推論データセットで標準的なゼロショットCoTよりも強力な推論プロセスを生成します。

Tree-of-Thought (ToT)
Yao et al. (2023b) は、初期問題から思考の形で複数の可能なステップを生成することで、ツリー状の探索問題を作成します。各ステップが問題解決に向けて進捗を評価し(プロンプトを通じて)、続行すべきステップを決定し、さらに思考を生成し続けます。ToTは特に探索と計画を必要とするタスクに効果的です。

Recursion-of-Thought
Lee and Kim (2023) は、通常のCoTに似ていますが、推論チェーンの途中で複雑な問題に遭遇するたびに、この問題を別のプロンプト/LLMコールに送信します。これが完了すると、回答が元のプロンプトに挿入されます。この方法は、算術およびアルゴリズムタスクでの改善を示しています。ファインチューニングを使用してサブプロブレムを別のプロンプトに送信する特別なトークンを出力するように実装されていますが、プロンプティングだけでも実行できます。

Program-of-Thoughts
Chen et al. (2023d) は、CodexのようなLLMを使用してプログラミングコードを推論ステップとして生成します。コードインタープリタがこれらのステップを実行して最終回答を得ます。数学的およびプログラミング関連のタスクに優れていますが、意味的推論タスクにはあまり効果的ではありません。

Faithful Chain-of-Thought
Lyu et al. (2023) は、自然言語と記号言語(例:Python)の両方で推論するCoTを生成しますが、タスク依存の異なる種類の記号言語も使用します。

Skeleton-of-Thought
Ning et al. (2023) は、並列処理を通じて回答速度を加速することに焦点を当てています。問題が与えられると、LLMに回答の骨格、つまり解決すべきサブプロブレムを作成させます。次に、これらの質問を並列でLLMに送り、すべての出力を連結して最終応答を得ます。

2.2.5 アンサンブリング

GenAIでは、アンサンブリングは同じ問題を解決するために複数のプロンプトを使用し、これらの応答を最終出力に集約するプロセスです。多くの場合、多数決投票—最も頻繁に出現する応答を選択する—が最終出力を生成するために使用されます。アンサンブリング技術はLLMの出力の分散を減らし、しばしば精度を向上させますが、最終的な回答に到達するために必要なモデルコールの数を増やすというコストが伴います。

Demonstration Ensembling (DENSE)
Khalifa et al. (2023) は、トレーニングセットからの異なるサブセットのエグザンプラーを含む複数のFew-Shotプロンプトを作成し、それらの出力を集約して最終応答を生成します。

Mixture of Reasoning Experts (MoRE)
Si et al. (2023d) は、異なる推論タイプ(例:事実推論のためのリトリーバル強化プロンプト、多段推論や数学推論のためのChain-of-Thought推論、常識推論のための生成知識プロンプト)に対して異なる専門家を使用して、多様な推論専門家のセットを作成します。すべての専門家の中で最も合意スコアの高い回答が選択されます。

Max Mutual Information Method
Sorensen et al. (2022) は、スタイルやエグザンプラーが異なる複数のプロンプトテンプレートを作成し、プロンプトとLLMの出力との間の相互情報量を最大化するテンプレートを選択します。

Self-Consistency
Wang et al. (2022) は、複数の異なる推論経路が同じ回答に至る可能性があるという直感に基づいています。この方法は、まずCoTを実行するためにLLMに複数回プロンプトを出し、重要なのは非ゼロ温度で多様な推論経路を引き出すことです。次に、生成されたすべての応答の中から多数決で最終応答を選択します。Self-Consistencyは、算術、常識、および記号推論タスクでの改善を示しています。

Universal Self-Consistency
Chen et al. (2023e) は、Self-Consistencyに似ていますが、プログラムで出現頻度を数えるのではなく、すべての出力をプロンプトテンプレートに挿入し、多数決で回答を選択します。これは自由形式のテキスト生成や、異なるプロンプトがわずかに異なる形式で同じ回答を出力する場合に役立ちます。

Meta-Reasoning over Multiple CoTs
Yoran et al. (2023) は、複数の推論チェーンを生成し、それらを一つのプロンプトテンプレートに挿入して最終応答を生成します。

DiVeRSe
Li et al. (2023i) は、特定の問題に対して複数のプロンプトを作成し、それぞれにSelf-Consistencyを実行し、複数の推論経路を生成します。これらの推論経路の各ステップを評価し、最終応答を選択します。

Consistency-based Self-adaptive Prompting (COSP)
Wan et al. (2023a) は、ゼロショットCoTとSelf-Consistencyを実行し、高合意のサブセットを最終プロンプトにエグザンプラーとして含めるFew-Shot CoTプロンプトを構築します。再びSelf-Consistencyを最終プロンプトで実行します。

Universal Self-Adaptive Prompting (USP)
Wan et al. (2023b) は、COSPの成功に基づき、すべてのタスクに一般化可能にすることを目指します。USPは未ラベルのデータを使用してエグザンプラーを生成し、より複雑なスコアリング関数を使用して選択します。さらに、USPはSelf-Consistencyを使用しません。

Prompt Paraphrasing
Jiang et al. (2020) は、元のプロンプトの一部の表現を変更することで全体の意味を保ちながらプロンプトを変換します。これは、アンサンブルのためのプロンプトを生成するためのデータ拡張技術として効果的です。

2.2.6 自己批判

GenAIシステムを作成する際、LLMが自分の出力を批評することは有用です。これは単に出力が正しいかどうかを判断することや、LLMがフィードバックを提供し、そのフィードバックを基に回答を改善することが含まれます。セルフクリティシズムを生成および統合するための多くのアプローチが開発されています。

Self-Calibration
Kadavath et al. (2022) はまずLLMに質問に回答させ、その後、質問、LLMの回答、およびその回答が正しいかどうかを尋ねる追加の指示を含む新しいプロンプトを作成します。これは、LLMを適用する際に自信のレベルを評価し、元の回答を受け入れるか修正するかを判断するのに役立ちます。

Self-Refine
Madaan et al. (2023) は、初期回答を提供したLLMにその回答に対するフィードバックを提供させ、そのフィードバックに基づいて回答を改善するように促す反復的なフレームワークです。このプロセスは、停止条件が満たされるまで(例:最大ステップ数に到達)続けられます。Self-Refineは、推論、コーディング、および生成タスクの範囲で改善を示しています。

Reversing Chain-of-Thought (RCoT)
Xue et al. (2023) は、LLMに生成された回答に基づいて問題を再構築させるプロンプトを出します。次に、元の問題と再構築された問題の間の細かい比較を生成し、不整合をチェックします。これらの不整合は、生成された回答を修正するためのフィードバックに変換されます。

Self-Verification
Weng et al. (2022) は、Chain-of-Thought (CoT) を用いて複数の候補解を生成します。次に、元の質問の一部をマスキングし、LLMにそれを生成された解に基づいて予測させることで各解をスコアリングします。この方法は、8つの推論データセットでの改善を示しています。

Chain-of-Verification (COVE)
Dhuliawala et al. (2023) は、まずLLMを使用して与えられた質問に対する回答を生成し、次にその回答の正確性を確認するための関連する質問のリストを作成します。各質問にLLMが回答し、全ての情報をLLMに提供して最終的な修正された回答を生成します。この方法は、さまざまな質問応答およびテキスト生成タスクでの改善を示しています。

Cumulative Reasoning
Zhang et al. (2023b) は、質問に回答するための複数の潜在的なステップを生成し、それらを評価して受け入れるか拒否するかをLLMに決定させます。最終的な回答に到達したかどうかを確認し、そうでなければプロセスを繰り返します。この方法は、論理的推論タスクや数学的問題での改善を示しています。

2.3 プロンプト技術の使用状況

前述のように、多くのテキストベースのプロンプト技術が存在します。しかし、研究や産業で一般的に使用されるのはそのうちのごく一部です。技術の使用状況を評価するために、データセット内の他の論文によって引用された数を測定しました。これは、プロンプトに関する論文が実際に引用された技術を使用または評価する可能性が高いという前提に基づいています。この方法で引用されたトップ25の論文をグラフ化した結果、ほとんどが新しいプロンプト技術を提案していることがわかりました。Few-ShotやChain-of-Thoughtプロンプティングの引用が多いことは予想通りであり、他の技術の普及状況を理解するための基準を確立するのに役立ちます。

2.3.1 ベンチマーク

プロンプト研究において、研究者が新しい技術を提案する際、通常は複数のモデルやデータセットを使ってベンチマークを行います。これは技術の有用性を証明し、他のモデルにどのように適応するかを検証するために重要です。

新しい技術を提案する研究者がベンチマークをどのように行うかを容易にするために、どのモデルおよびベンチマークデータセットが使用されているかを定量的に調査しました。再度、データセット内の論文がベンチマークデータセットおよびモデルをどれだけ引用しているかによって使用状況を測定しました。

使用されているデータセットおよびモデルを見つけるために、我々はGPT-4-1106-previewを使用して、データセット内の論文本文から言及されたデータセットやモデルを抽出しました。その後、モデルやデータセットでない結果を手動でフィルタリングしました。引用数は、Semantic Scholarで最終リストの項目を検索して取得しました。

2.4 プロンプトエンジニアリング

プロンプト技術の調査に加えて、プロンプトを自動的に最適化するために使用されるプロンプトエンジニアリング技術についてもレビューします。プロンプトエンジニアリング技術のセットはプロンプト技術のセットよりもはるかに小さいため、勾配更新を使用するいくつかの技術についても議論します。

メタプロンプティング
メタプロンプティングは、LLMにプロンプトやプロンプトテンプレートを生成または改善させるプロセスです。

AutoPrompt
Shin et al. (2020b) は、フローズンLLMと、トレーニング時にバックプロパゲーションを通じて値が更新される「トリガートークン」を含むプロンプトテンプレートを使用します。これはソフトプロンプティングの一種です。

自動プロンプトエンジニア (APE)
Zhou et al. (2022b) は、一連のエグザンプラーを使用してゼロショット指示プロンプトを生成します。複数の可能なプロンプトを生成し、それらをスコアリングし、最良のもののバリエーションを作成します(例:プロンプトパラフレージングを使用)。このプロセスを所定の目標に達するまで反復します。

Gradientfree Instructional Prompt Search (GrIPS)
Prasad et al. (2023) は、APEに似ていますが、削除、追加、スワッピング、およびパラフレージングを含むより複雑な操作セットを使用して開始プロンプトのバリエーションを作成します。

Textual Gradientsによるプロンプト最適化 (ProTeGi)
Pryzant et al. (2023) は、プロンプトテンプレートを改善するための独自のアプローチです。まず、入力バッチをテンプレートに通し、次に出力、真実の値、およびプロンプトを別のプロンプトに渡して元のプロンプトを批評させます。これらの批評から新しいプロンプトを生成し、バンディットアルゴリズムを使用して1つを選択します。ProTeGiは、APEやGRIPSのような方法に比べて改善を示しています。

RLPrompt
Deng et al. (2022) は、フローズンLLMとアンフローズンモジュールを追加して使用します。このLLMを使用してプロンプトテンプレートを生成し、データセットでテンプレートをスコアリングし、ソフトQラーニングを使用してアンフローズンモジュールを更新します。興味深いことに、この方法はしばしば文法的に無意味なテキストを最適なプロンプトテンプレートとして選択します。

Dialogue-comprised Policy-gradient-based Discrete Prompt Optimization (DP2O)
Li et al. (2023b) は、おそらく最も複雑なプロンプトエンジニアリング技術であり、強化学習、カスタムプロンプトスコアリング関数、およびプロンプトを構築するためのLLMとの対話を含みます。

2.5 アンサーエンジニアリング

アンサーエンジニアリングとは、LLM出力から正確な回答を抽出するためのアルゴリズムを開発または選択する反復的なプロセスです。アンサーエンジニアリングの必要性を理解するために、ラベルが「ヘイトスピーチ」と「ヘイトスピーチでない」というバイナリ分類タスクを考えてみましょう。プロンプトテンプレートは次のようになるかもしれません:

これは「ヘイトスピーチ」または「ヘイトスピーチでない」ですか:{TEXT}

ヘイトスピーチのサンプルがテンプレートを通過すると、「これはヘイトスピーチです」、「ヘイトスピーチです。」、「これは特定の人種グループに対して否定的な言語を使用しているので、ヘイトスピーチです。」のような出力が得られるかもしれません。このような出力形式のばらつきは一貫して解析するのが難しいため、プロンプトの改善が役立ちますが、それにも限界があります。

アンサーエンジニアリングには、回答空間の選択、回答形式、回答抽出器の選択という3つの設計決定があります。Liu et al. (2023b) は、最初の2つをアンサーエンジニアリングの必要な構成要素と定義し、我々は3つ目を追加しました。アンサーエンジニアリングはプロンプトエンジニアリングとは別物ですが、非常に密接に関連しています。このプロセスはしばしば同時に実行されます。

2.5.1 回答形式

回答の形式は、その物理的なフォーマットです。例えば、トークン、トークンスパン、または画像や動画などの形式があります。バイナリ分類のようなタスクでは、LLMの出力形式を単一トークンに制限することが有用です。

2.5.2 回答空間

回答空間は、その構造が含む可能性のある値の領域です。これは単にすべてのトークンの空間である場合もあれば、バイナリラベリングタスクでは2つの可能なトークンだけの場合もあります。

2.5.3 回答抽出器

回答空間を完全に制御することが不可能な場合(例:消費者向けLLM)、または期待される回答がモデル出力のどこかに存在する場合、最終的な回答を抽出するためのルールを定義できます。このルールは、単純な関数(例:正規表現)であることが多いですが、別のLLMを使用して回答を抽出することもできます。

Verbalizer(言語化者)
ラベリングタスクでよく使用されるverbalizerは、トークン、スパン、または他のタイプの出力をラベルにマッピングし、その逆も行います。例えば、ツイートがポジティブかネガティブかを予測するモデルを望む場合、「+」または「-」を出力させ、verbalizerがこれらのトークンシーケンスを適切なラベルにマッピングします。verbalizerの選択はアンサーエンジニアリングの構成要素です。

Regex(正規表現)
前述のように、Regexは回答を抽出するためによく使用されます。通常、最初のラベルインスタンスを検索するために使用されますが、出力形式やCoTが生成されるかどうかに応じて、最後のインスタンスを検索する方が良い場合もあります。

別のLLM
出力が非常に複雑で正規表現が一貫して機能しない場合、別のLLMが出力を評価し、回答を抽出するのに役立つことがあります。

最後に

今回もお読みいただきありがとうございました。もし前の記事をお読みでない方は、下記よりマガジンとしてまとめていますのでどうぞ併せてお読みください。

もしかしたら専門家から見れば稚拙な表現などがあるかもしれませんが、その点はご容赦いただいた上で、次回以降もお読みいただければと存じます。

読んでいる方へのお願い

この内容が役に立ったという方は、「♡(スキ)」や「フォロー」をお願いします。「X」「facebook」「LINE」でシェアいただけるとさらに嬉しいです。

また日考塾Mediaでは、サポートをお受けしています。活動を継続させていくために、どうかお願い申し上げます。

日考塾Sapientiaでは、読んでいただいた方々に良質な記事をお届けするために日々励んでおります。しかし、良質な記事をお届けするためには、出ていくものも多いのが現状です。どうか、活動を継続させていくために、サポートををお願い申し上げます。