大規模言語モデルにおけるプロンプトエンジニアリングの概説
東京大学大学院工学系研究科
技術経営戦略学専攻
松尾研究室 特任研究員
小島 武

概要
● プロンプトエンジニアリングとは● 特徴（従来の最適化手法との比較）● なぜ有効なのか？
● 大規模言語モデルにおける事例集● 限界と可能性プロンプトエンジニアリングとは● モデルから所望の出力を得るために良い入力文(プロンプト)を探索する作業.
An astronaut riding a horse in photorealistic style.

https://openai.com/blog/chatgpt

https://openai.com/product/dall-e-2

プロンプトエンジニアリングとは● Zero-Shot (Prompting) と Few-shot (In-context Learning)

Language Models are Few-Shot Learners
https://arxiv.org/abs/2005.14165

特徴（従来の最適化手法との比較）
プロンプトエンジニアリング
モデルのパラメータ更新不要-

学習サンプルサイズ-解釈性

few shot～many shot

様々なタスクに直面したときに有効サンプルが集めにくいタスクに有効（e.g.思考の連鎖）

高い-

必要

計算負荷からの解放＆パラメー
タ管理不要

zero shot～few shot-

深層学習における最適化（確率的勾配法）

試行錯誤しやすい“モデルではなく人間がFineTuningされている”

低い- ハイパラ＊後ほど、プロンプトエンジニアの短所について「限界と可能性」の頁で言及します。

特徴（従来の最適化手法との比較）“prompt engineering isanother way of tuning themodel's parameters, andhuman interpretable!”https://twitter.com/gneubig/status/1581976078519742464

なぜ有効なのか？
● 大規模言語モデルの事前学習にて, 大規模データで次の単語をひらすら予測する学習を行う → Zero-shot, Few-shotの能力が発現する (*1).
(*1) Language Models are Unsupervised Multitask Learners [URL]
Language Models are Few-Shot Learners [URL]➢ なぜ発現するのか？
○

Zero-shot：直感的に受け入れられる.
■○（大規模データから必要な情報を記憶し、表現を汎化してるのだろう）

Few-shot：直感的には理解しがたい.

■

情報理論による分析 (*2)：”言語のように学習対象が構成性を持つ場合、条件部（=プロンプト）の後続（=回答）の予測誤差は条件部を生成する構造の複雑さで抑えられることから説明できる” *[Twitter]から文引用.
(*2) A Theory of Emergent In-Context Learning as Implicit Structure Induction [URL]なぜ有効なのか？
● 大規模言語モデルの事後学習にて, 人間の指示(質問)に従うようチューニング.
Zero-shot, Few-shotの能力が改善.

Training language models to follow
instruction with human feedback
https://arxiv.org/abs/2203.02155

大規模言語モデルにおける事例集● 思考の連鎖（Chain-of-Thought: CoT）@Few-shot

Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

大規模言語モデルにおける事例集● 思考の連鎖（Chain-of-Thought: CoT）@Zero-shot

Large Language Models are Zero-Shot Reasoners

大規模言語モデルにおける事例集● Self-Consistency：ランダムに思考の連鎖を複数回出力して多数決.

SELF-CONSISTENCY IMPROVES CHAIN OF THOUGHT REASONING IN LANGUAGE MODELS

大規模言語モデルにおける事例集● 多数決（Self-Consistency）の代わりに大規模言語モデルが最終判断.

Answering Questions by Meta-Reasoning over Multiple Chains of Thought

大規模言語モデルにおける事例集● Program of Thought (PoT)：言語モデルがプログラムを書く.

Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks

大規模言語モデルにおける事例集● 知識を外部から借用しながら（検索しながら）, ”思考の連鎖”を行う.

MEASURING AND NARROWING THE COMPOSITIONALITYGAP IN LANGUAGE MODELS

大規模言語モデルにおける事例集● 表データを（一行ずつ）読み込んで思考の連鎖を行う.

Large Language Models are few(1)-shot Table Reasoners

大規模言語モデルにおける事例集● 文章と画像を読み込んで、思考の連鎖を行う（GPT-4）

GPT-4 Technical Report限界と可能性● 長文対応○

コンテクスト(入力＋出力)長に限界がある. [URL]限界と可能性● 長文対応○限界を突破する研究も出始めている. [URL]限界と可能性● 長文対応○限界を突破する研究も出始めている. [URL]限界と可能性● 人手作業○

良いプロンプトは基本的に人手で探す必要がある.

○

自動的により良いプロンプトを探す研究もある. [URL]限界と可能性● プロンプトの頑健性○(Zero-shot) テンプレートに敏感. [URL] (Appendix A)○(Few-shot) デモの順番に敏感. [URL]限界と可能性● マルチモダリティへの対応○

GPT4は画像と文章を同時に入力することができる. [URL]まとめ●

プロンプトエンジニアリングとは、モデルから所望の出力を得るために最適な入力文を探索する作業●

プロンプトエンジニアリングは、パラメータを更新せずにモデルの挙動を変更できる点、限られたサンプル数（ゼロショットもしくはヒューショット）で有効である点、人間の解釈性が高いという点で、従来の深層学習の勾配法による最適化手法とは異なる特徴を持つ。

●

大規模言語モデルは段階的な思考を必要とするような複雑なタスクにおいて有効であることが実証されているが、大規模言語モデルにおけるプロンプトエンジニアリングが、そのような複雑なタスクを解くためにどのように利用されているか事例にて解説。
●

大規模言語モデルのプロンプトエンジニアについての今後の限界と可能性として、長文への対応、人手作業の必要、プロンプトの頑健性などが挙げられる。