見出し画像

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

メリーランド大学やOpenAI、スタンフォード大学、Microsoftなどの研究者は、プロンプト技術の体系的調査を行い、「プロンプトレポート」を作成しました。

以下、論文情報です。

タイトル
The Prompt Report: A Systematic Survey of Prompting Techniques
プロンプトレポート:プロンプト技術の体系的調査

著者
Sander Schulhoff, Michael Ilie, Nishant Balepur, Konstantine Kahadze, Amanda Liu, Chenglei Si, Yinheng Li, Aayush Gupta, HyoJung Han, Sevien Schulhoff, Pranav Sandeep Dulepet, Saurav Vidyadhara, Dayeon Ki, Sweta Agrawal, Chau Pham, Gerson Kroiz, Feileen Li, Hudson Tao, Ashay Srivastava, Hevander Da Costa, Saloni Gupta, Megan L. Rogers, Inna Goncearenco, Giuseppe Sarli, Igor Galynker, Denis Peskoff, Marine Carpuat, Jules White, Shyamal Anadkat, Alexander Hoyle, Philip Resnik

所属
University of Maryland, OpenAI, Stanford, Microsoft, Vanderbilt, Princeton, Texas State University, Icahn School of Medicine, ASST Brianza, Mount Sinai Beth Israel, Instituto de Telecomunicações, University of Massachusetts Amherst

ライセンス情報
CC BY 4.0

論文URL


論文の骨格

まずは、GPTsを使って論文の骨格を確認してみましょう。

使うGPTsは「Paper Interpreter (Japanese)」GPTで、主な機能は次の2点です。
・研究論文を日本語で分かりやすく解説できる
・論文サイトのURLを入力するかPDFをアップロードすれば使える

使い方は「Paper Interpreter (Japanese)」GPTにアクセスし、そこに論文のURLを入力するかPDFをアップロードするだけです。

以下GPTsのリンクです。

GPTsによる要約

Title (英語と日本語):
The Prompt Report: A Systematic Survey of Prompting Techniques
プロンプトレポート:プロンプト技術の体系的調査

Journal Name & Publication Year (ジャーナル名と発行年):
未記載 (arXiv, 2024年6月17日)

First and Last Authors (最初と最後の著者):
Sander Schulhoff, Philip Resnik

First Affiliations (最初の所属):
University of Maryland

Abstract (要約):
生成人工知能(GenAI)システムは、産業や研究のさまざまな分野でますます展開されています。これらのシステムは、プロンプトやプロンプトエンジニアリングを通じて開発者やエンドユーザーと対話します。プロンプトは広く研究されている概念ですが、その定義や理解は未だ確立されていません。この論文では、プロンプトの技術を体系的に理解し、プロンプト技術の分類とその使用法を分析します。33の用語、58のテキストのみのプロンプト技術、40の他のモダリティの技術を網羅した包括的なボキャブラリーを提示します。また、自然言語接頭辞プロンプトの全文献に対するメタアナリシスを行います。

Background (背景):
生成人工知能(GenAI)システムは、産業や研究のさまざまな分野で幅広く展開されています。これらのシステムは、プロンプト(指示文)を使用して対話し、その結果を生成します。しかし、プロンプトの概念は未だ発展途上にあり、明確な定義や体系が不足しています。

Methods (方法):
PRISMAプロセスに基づいた機械支援の体系的レビューを実施し、関連する文献を収集しました。収集した文献に基づき、テキストベースのプロンプト技術を58種類に分類し、それぞれの技術の用語と使用法を詳細に分析しました。

Results (結果):
本研究では、プロンプト技術に関する包括的なボキャブラリーと分類を確立しました。また、自然言語接頭辞プロンプトに関する文献全体のメタアナリシスを行い、プロンプト技術の使用状況とその効果を分析しました。

Discussion (考察):
プロンプト技術の理解を深めることで、生成人工知能の性能向上が期待されます。特に、プロンプトの構造や評価方法の改善が重要であり、これにより多様なタスクでの性能向上が見込まれます。

Novelty compared to previous studies (従来の研究との新規性):
本研究は、プロンプト技術の体系的な分類と詳細な用語集を提供する初めての試みです。また、プロンプト技術に関する全文献のメタアナリシスを行うことで、従来の研究に比べてより包括的な理解を提供します。

Limitations (限界):
本研究では、テキストベースのプロンプト技術に焦点を当てており、他のモダリティに関する研究は限定的です。また、プロンプト技術の評価方法は未だ確立されていないため、さらなる研究が必要です。

Potential Applications (応用の可能性):
プロンプト技術の理解と分類は、生成人工知能の開発と応用において重要な役割を果たすことが期待されます。特に、産業や研究分野での応用が進むことで、より効果的なシステムの構築が可能となります。

「Paper Interpreter (Japanese)」GPT

論文を読む

論文の全体像を確認したところで、実際に細かく論文を読んでいきたいと思います。

論文を日本語訳するに当たって、Googleの日本語翻訳とChatGPTを活用し、さらに文章表現としておかしな部分を推敲した上で記載しています。ただし、専門家から見れば表現がおかしかったり、稚拙であったりする部分があるかもしれませんが、その場合はご容赦いただければと存じます。

プロンプトレポート:プロンプト技術の体系的調査

The Prompt Report: A Systematic Survey of Prompting Techniques

Sander Schulhoff (1,2), Michael Ilie (1), Nishant Balepur (1), Konstantine Kahadze (1), Amanda Liu (1), Chenglei Si (4), Yinheng Li (5), Aayush Gupta (1), HyoJung Han (1), Sevien Schulhoff (1), Pranav Sandeep Dulepet (1), Saurav Vidyadhara(1), Dayeon Ki (1), Sweta Agrawal(12), Chau Pham (13), Gerson Kroiz (1), Feileen Li (1), Hudson Tao (1), Ashay Srivastava (1), Hevander Da Costa (1), Saloni Gupta (1), Megan L. Rogers (8), Inna Goncearenco (9), Giuseppe Sarli(9,10), Igor Galynker (11), Denis Peskoff (7), Marine Carpuat (1), Jules White (6), Shyamal Anadkat (3), Alexander Hoyle (1), Philip Resnik (1)

1 University of Maryland, 2 Learn Prompting, 3 OpenAI, 4 Stanford, 5 Microsoft, 6 Vanderbilt, 7 Princeton, 8 Texas State University, 9 Icahn School of Medicine, 10 ASST Brianza, 11 Mount Sinai Beth Israel, 12 Instituto de Telecomunicações, 13 University of Massachusetts Amherst

2023年11月

要約

生成型人工知能(GenAI)システムは、産業や研究のあらゆる分野でますます導入されています。開発者やエンドユーザーは、プロンプトやプロンプトエンジニアリングを通じてこれらのシステムと対話します。プロンプトは広く使用され、盛んに研究されている概念である一方で、この分野の新規性により用語の不統一やプロンプトの本質に関する理解不足が見受けられます。本論文は、プロンプト技術の分類法を作成し、その利用を分析することで、プロンプトに関する構造化された理解を確立します。33の用語を含む包括的な語彙、58のテキストのみのプロンプト技術の分類、及び他のモダリティに対する40の技術を提示します。さらに、自然言語プレフィックスプロンプトに関する全ての文献のメタ分析も行います。

目次

  1. はじめに
    1.1 プロンプトとは何か?
    1.2 用語
    1.3 プロンプトの短い歴史

  2. プロンプトに関するメタ分析
    2.1 体系的レビュープロセス
    2.2 テキストベースの技術
    2.3 プロンプト技術の使用法
    2.4 プロンプトエンジニアリング
    2.5 アンサーエンジニアリング

  3. 英語のテキストプロンプトを超えて
    3.1 多言語
    3.2 マルチモーダル

  4. プロンプトの拡張
    4.1 エージェント
    4.2 評価

  5. プロンプトの問題
    5.1 セキュリティ
    5.2 アライメント

  6. ベンチマーク
    6.1 技術ベンチマーク
    6.2 プロンプトエンジニアリングのケーススタディ

  7. 関連研究

  8. 結論

1. はじめに

トランスフォーマーベースの大規模言語モデル(LLM)は、消費者向け、社内、研究の場で広く展開されています(Bommasani et al., 2021)。通常、これらのモデルはユーザーが入力する「プロンプト」に応じて出力を生成します。このようなプロンプトは、「木についての詩を書いてください」などのテキスト形式である場合のほか、画像、音声、動画、またはそれらの組み合わせなどの他の形式もあります。特に自然言語を用いたプロンプトによって、モデルとの対話が容易になり、幅広い用途で柔軟に使用が可能です。

プロンプトを効果的に構築、評価、及びその他のタスクを実行する方法を知ることは、これらのモデルを使用するために不可欠です。経験的に、より良いプロンプトは、広範なタスクで改善された結果をもたらします(Wei et al., 2022Liu et al., 2023bSchulhoff, 2022)。プロンプトを使用して結果を改善するための文献が多く存在し、プロンプト技術の数は急速に増加しています。

しかし、プロンプトは新興分野であるため、その使用法は十分に理解されておらず、既存の用語や技術のほんの一部しか実務者に知られていません。私たちは、プロンプト技術の大規模なレビューを実施し、この分野の用語や技術の強力なリソースを作成します。この用語集は今後の発展に伴い、初めてのバージョンとなることを期待しています。

研究の範囲

我々は、開発者や研究者が迅速に実験を行うために、迅速に理解されやすく実装しやすいプロンプト技術の広範なディレクトリを作成します。この目的のために、Shin et al., 2020aの離散プレフィックスプロンプトに焦点を当て、Petroni et al., 2019Cui et al., 2021のクローズプロンプトは対象外とします。これは、現代のLLMアーキテクチャ(特にデコーダのみのモデル)がプレフィックスプロンプトを使用し、消費者と研究者の両方に対して強力なサポートを提供しているためです。さらに、ハード(離散的)プロンプトに限定し、ソフト(連続的)プロンプトや勾配ベースの更新(例:ファインチューニング)を使用する技術は除外します。最後に、タスクに依存しない技術のみを研究します。これにより、技術的に詳しくない読者にもアプローチしやすく、範囲を管理しやすくなります。

セクションの概要

我々は、PRISMAプロセス(Page et al., 2021)に基づいた体系的レビューを実施(セクション2.1)し、58種類の異なるテキストベースのプロンプト技術を特定しました。この技術から、強力なプロンプト用語集を備えた分類法を作成します(セクション1.2)。

図1.1

図1.1:プロンプトの分野内のカテゴリーは相互に関連しています。我々は、範囲内の論文でよく説明されている7つのコアカテゴリーについて議論します。

プロンプトに関する文献の多くは英語のみの設定に焦点を当てている一方で、多言語対応技術についても議論します(セクション3.1)。プロンプトに画像などのメディアが含まれるマルチモーダルプロンプトの急速な成長を考慮し、マルチモーダル技術にも拡大します(セクション3.2)。多言語やマルチモーダルプロンプト技術は、英語テキストのみのプロンプト技術を直接拡張したものです。

プロンプト技術が複雑になるにつれて、インターネットブラウジングや計算機などの外部ツールが組み込まれるようになりました。このようなタイプのプロンプト技術を「エージェント」と呼びます(セクション4.1)。

正確性を保ちハルシネーションを避けるためには、エージェントやプロンプトの出力の評価方法を理解することが重要です。そのため、これらの出力を評価する方法について議論します(セクション4.2)。また、企業やユーザーに対するリスクを減らすためのセキュリティ(セクション5.1)と安全対策(セクション5.2)についても議論します。

最後に、2つのケーススタディでプロンプト技術を適用します(セクション6.1)。最初のケーススタディでは、一般的に使用されるベンチマークMMLU(Hendrycks et al., 2021)に対してさまざまなプロンプト技術をテストします。2つ目のケーススタディでは、サポートを求める個人のテキストから、自殺危機の主要な指標である「切迫した絶望感」のシグナルを特定する実世界の重要なユースケースで、手動プロンプトエンジニアリングの例を詳しく探ります(Schuck et al., 2019a)。最後に、プロンプトの性質と最近の発展について議論します(セクション8)。

1.1 プロンプトとは何か?

プロンプトとは、生成AIモデルへの入力であり、その出力を導くために使用されます(Meskó, 2023White et al., 2023Heston and Khun, 2023Hadi et al., 2023Brown et al., 2020)。プロンプトは、テキスト、画像、音声、またはその他のメディアで構成される場合があります。プロンプトの例としては、「会計事務所のマーケティングキャンペーン用に3段落のメールを書いてください」「写真を見て、テーブルにあるものをすべて説明してください」、または「オンライン会議の録音を聞いて要約してください」といったものが挙げられます。

プロンプトテンプレート

プロンプトは多くの場合、プロンプトテンプレートを通じて構築されます(Shin et al., 2020b)。プロンプトテンプレートはいくつかの変数を含む関数であり、それらの変数はメディア(通常はテキスト)で置き換えられ、プロンプトが作成されます。このプロンプトはテンプレートのインスタンスと見なすことが可能です。

ツイートの二項分類タスクにプロンプトを適用することを考えてみましょう。ここに、入力を分類するために使用できる初期のプロンプトテンプレートがあります。

ツイートをポジティブまたはネガティブとして分類してください:{TWEET}

データセット内の各ツイートはテンプレートの別々のインスタンスに挿入され、結果として得られるプロンプトがLLMに与えられて推論が行われます。例:

木に関する詩を書いてください
以下のトピックについて詩を書いてください:{USER_INPUT}

図1.2:プロンプトとプロンプトテンプレートは異なる概念です。プロンプトテンプレートは、入力が挿入されるとプロンプトになります。

1.2 用語

図1.3

図1.3:プロンプトの用語集。付録へのリンクがある用語は、本文で詳しく説明するには重要ではないが、プロンプトの分野では重要です。プロンプト技術は図2.2に示されています。

1.2.1 プロンプトの構成要素

プロンプトには、さまざまな共通の構成要素が含まれます。ここでは、最も一般的に使用される構成要素をまとめ、それらがプロンプトにどのように組み込まれるかを説明します。

・指示(Directive)
多くのプロンプトは、指示や質問の形で指示を出します。これがプロンプトの核心的な意図であり、単に「意図」と呼ばれることもあります。例えば、以下は単一の指示を含むプロンプトの例です。

読むべき良い本を5冊教えてください。

指示は暗黙的である場合もあります。例えば、以下のように英語からスペイン語への翻訳を行う場合です。

Night: Noche
Morning:

・例(Examples)
例は、エグザンプラーまたはショットとも呼ばれ、GenAIがタスクを達成するためのガイドのデモンストレーションとして機能します。上記のプロンプトはワンショット(つまり、1つの例)プロンプトです。

・出力フォーマット(Output Formatting)
GenAIでは、情報を特定の形式(例:CSVやMarkdown形式など)で出力することが望ましい場合があります。これを促すために、以下のような指示を追加することができます。

{PARAGRAPH}
これをCSVに要約してください。

・スタイル指示(Style Instructions)
スタイル指示は、出力を構造的ではなくスタイル的に修正するための出力フォーマットの一種です(セクション2.2.2参照)。
例えば:

ラマについての簡潔で明確な段落を書いてください。

・役割(Role)
役割はペルソナとも呼ばれ、文章やスタイルの改善に役立つと頻繁に議論される構成要素です(セクション2.2.2参照)。
例えば:

あなたが羊飼いであるふりをして、ラマについてのリメリックを書いてください。

・追加情報(Additional Information)
プロンプトに追加情報を含める必要がある場合があります。例えば、メールを書く指示がある場合、GenAIがメールを適切に署名できるように、名前や役職などの情報を含めることが考えられます。追加情報は「コンテキスト」とも呼ばれますが、プロンプト分野で他の意味と混同されるため、この用語の使用は避けることを推奨します。

1.2.2 プロンプト用語

プロンプトに関する文献の用語は急速に発展しています。現状では、多くの定義(例:プロンプト、プロンプトエンジニアリングなど)が十分に理解されておらず、また矛盾する定義(例:ロールプロンプトとペルソナプロンプトなど)もあります。用語の不統一は、使用されているさまざまなプロンプト技術を明確に説明するコミュニティの能力を妨げています。そのため、プロンプトコミュニティで使用される用語の強力な語彙を提供します(図1.3)。頻度の低い用語は付録A.2に記載しています。プロンプトやプロンプトエンジニアリングのような頻繁に使用される用語を正確に定義するために、多くの定義を統合して代表的な定義を導き出します(付録A.1)。

プロンプティング(Prompting)
プロンプティングとは、GenAIにプロンプトを提供し、応答を生成させるプロセスです。例えば、テキストの一部を送信する行為や画像をアップロードする行為は、プロンプティングに該当します。

プロンプトチェーン(Prompt Chain)
プロンプトチェーン(アクティビティ:プロンプトチェーニング)は、連続して使用される2つ以上のプロンプトテンプレートで構成されます。最初のプロンプトテンプレートによって生成されたプロンプトの出力が次のテンプレートをパラメータ化するために使用され、すべてのテンプレートが使い果たされるまで続きます(Wu et al., 2022)。

プロンプト技術(Prompting Technique)
プロンプト技術とは、プロンプト、プロンプトの構築、または複数のプロンプトの動的なシーケンスをどのように構成するかを説明する設計図です。プロンプト技術には、条件付きまたは分岐ロジック、並列処理、または複数のプロンプトにわたる他の構造的な考慮事項が含まれる場合があります。

プロンプトエンジニアリング(Prompt Engineering)
プロンプトエンジニアリングとは、使用しているプロンプト技術を変更または改良することでプロンプトを開発する反復的なプロセスです(図1.4)。

図1.4

図1.4:プロンプトエンジニアリングプロセスは、1)データセットで推論を実行し、2)パフォーマンスを評価し、3)プロンプトテンプレートを修正するという3つの繰り返しステップで構成されます。最終応答をLLM出力から抽出するためにエクストラクターが使用されることに注意してください(例:「このフレーズはポジティブです」→「ポジティブ」)。エクストラクターの詳細についてはセクション2.5を参照してください。

プロンプトエンジニアリング技術(Prompt Engineering Technique)
プロンプトエンジニアリング技術とは、プロンプトを改良するための戦略です。文献では、これが自動化された技術であることが多いですが(Deng et al., 2022)、消費者の設定ではユーザーが手動でプロンプトエンジニアリングを行うことがよくあります。

エグザンプラー(Exemplar)
エグザンプラーは、モデルにプロンプト内で示されるタスクが完了する例です(Brown et al., 2020)。

1.3 プロンプトの短い歴史

自然言語の接頭辞、すなわちプロンプトを使用して言語モデルの振る舞いや応答を引き出すというアイデアは、GPT-3やChatGPTの時代以前から存在していました。GPT-2(Radford et al., 2019a)はプロンプトを利用しており、生成AIの文脈で最初に使用されたのはFan et al., 2018であるとされています。しかし、プロンプトの概念には、それ以前に関連する概念が存在していました。例えば、コントロールコード(Pfaff, 1979Poplack, 1980Keskar et al., 2019)やライティングプロンプトなどです。

プロンプトエンジニアリングという用語は、比較的最近になってから登場しました。最初はRadford et al., 2021で、少し遅れてReynolds and McDonell, 2021によって使用されました。

しかし、Wallace et al., 2019Shin et al., 2020aなど、プロンプトエンジニアリングという用語を使わずにプロンプトエンジニアリングを行っている論文もいくつかあります。これには非自己回帰型言語モデルのためのSchick and Schütze, 2020ab、Gao et al., 2021も含まれます。

初期のプロンプトに関する研究のいくつかは、現在使用されている方法とは少し異なる形でプロンプトを定義しています。例えば、以下のBrown et al., 2020のプロンプトを考えてみてください。

Translate English to French:
llama

Brown et al., 2020は、「llama」という単語をプロンプトと考え、「Translate English to French(英語をフランス語に翻訳する)」を「タスクの説明」としています。最近の論文では、この論文を含め、LLMに渡される全ての文字列をプロンプトと呼んでいます。

最後に

非常に長い論文のため、数回にわたって細かく論文を読んでいきたいと思います。また、下記よりマガジンとしてまとめていますのでどうぞ併せてお読みください。

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

読んでいる方へのお願い

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

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

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