言語処理学会 第30回年次大会 発表論文集（2024年3月）

自動プロンプト最適化のソフトウェア設計
水野尚人 1 柳瀬利彦 1 佐野正太郎 1,2
1 株式会社 Preferred Networks
2 株式会社 Preferred Elements{naotomizuno,yanase,sano}@preferred.jp

自動プロンプト最適化

概要

2

大規模言語モデルの発展に伴い，モデルへの指示に用いられるプロンプトの最適化技術が活発に開発されている．また，プロンプトを自動で最適化し大規模言語モデルの能力を引き出す手法も提案されるようになり，性能指標が大きく改善できることが明らかとなってきている．本研究では，プロンプト自動最適化技術の適用を行うソフトウェアに必要な機能を整理し，アーキテクチャを提案する．ユーザの記述する目的関数とプロンプト最適化アルゴリズムを分離して記述できるようにすることで，最適化の対象とアルゴリズムが明確になりプロンプトの改善による性能向上が容易に行えるようになる．

自動プロンプト最適化アルゴリズムは，過去の探索結果を利用し新たなプロンプトを提案する．この提案では自然言語で記述されるプロンプトを生成する必要があるため，言語モデルが用いられる．この提案にはタスクを解くモデルとは別のモデルを用いることも可能である．
最適化対象のプロンプトは単一であるとは限らず，多段階のプロンプトを用いて性能向上を達成している技術 [5] や，最適化対象のプロンプトのみならず新たなプロンプトを提案するメタプロンプトも最適化対象にする手法 [4] も提案されている．プロ
ンプトエンジニアリングは様々な手法が提案されており，今後提案されるであろう自動化技術も多種多様なものになると想定される．これらを踏まえると，自動プロンプト最適化ソフトウェアは対象とするプロンプトと最適化アルゴリズムの双方を簡便に変更できる必要がある．
また，実際に最適化を行うにあたってはプロンプトの評価を繰り返し行うこととなる．各試行は評価データセットに対して推論を行うため計算時間が長くなるものもあり，多くの試行を行うには分散して複数の試行を同時に評価することが有効である．
以上をまとめると，自動プロンプト最適化ソフト
ウェアは，1. プロンプト提案 API，2. 最適化アルゴリズム API，3. アーキテクチャ，について考慮する必要がある．
これまでに自動プロンプト最適化アルゴリズムに関する研究はいくつか行われてきているが，本研究では視点を変えて，プロンプト最適化をどのような問題の枠組みとして捉えるべきかについて考察する．最適化問題には線形計画問題や凸計画問題など様々な種類が存在するが，プロンプト最適化を他の最適化問題と比較すると，目的関数や制約条件が明示的に書き下せない点でブラックボックス最適化とよく類似している．

1

はじめに

大 規 模 言 語 モ デ ル（LLM）の 実 応 用 に お い て，LLM への指示を自然言語で記述する文章であるプ
ロンプトが，モデルの性能を引き出す上で重要である．プロンプトを調整することで，出力される文章の品質を高めたり性質を変化させたりする技術は総称してプロンプトエンジニアリングと呼ばれている．様々なプロンプトエンジニアリング手法が提案され，性能向上が報告されている [1]．また，これらを人手で行うのではなく，自動で最適化を行う手法も開発されている [2, 3, 4]．本研究では，プロンプト自動最適化技術の適用を行うソフトウェアに必要な機能を整理し，アーキテクチャを提案する．
プロンプト最適化は大きく分けて，プロンプトを文章のまま最適化するハードプロンプト最適化と，プロンプトの埋め込みベクトルを最適化するソフトプロンプト最適化に分けられる．近年の LLM はAPI 経由でアクセスすることが一般的となっているが，ソフトプロンプト最適化の多くは API で得ることのできない LLM の重み情報を必要とするため，
本研究では API を用いた文字列処理のみで実行可能であるハードプロンプト最適化を対象とする．

― 2537 ―This work is licensed by the author(s) under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/).

ブラックボックス最適化ソフトウェアはHyperopt [6], Google Vizier [7], Optuna [8] などが広く最適化アルゴリズム API用いられている．本研究では Optuna を参考とし，Sampler は最適化アルゴリズムが実装されたコンブラックボックス最適化ソフトウェアがプロンプトポーネントであり，過去の試行を元に新たなプロン最適化の要件を満たすように拡張可能であることをプトを提案する．最適化アルゴリズムを Sampler の示す．Optuna は各試行に対応する Trial，最適化アルみに実装することで，ユーザが記述する目的関数はゴリズムが実装された Sampler，最適化履歴を保持そのままに最適化アルゴリズムを変更できる．

する Storage といったコンポーネントにより構成さSampler はその内部で新たなプロンプトを提案すれている．以下で，これらがどのようにプロンプトるために LLM を呼び出す．ここで呼び出される最適化と対応するかについて説明する．

LLM は，目的関数内でユーザが用いるものとは別のモデルを用いることができる．

プロンプト提案 API
自 動 プ ロ ン プ ト 最 適 化 ソ フ ト ウ ェ ア は，同 時アーキテクチャに 複 数 の プ ロ ン プ ト を 最 適 化 す る な ど，複 雑 な
探 索 空 間 を 記 述 で き る 必 要 が あ る．Optuna で はOptuna と同様に，Storage に最適化履歴を保存しそれぞれのワーカーは API を通じてアクセスする形

deﬁne-by-run [9] スタイルの API を採用しており，直式により分散最適化が実現できる．図 1 に示すよう感的な記法で次に試すパラメータを取得することがに，ワーカーは目的関数と Sampler を持つ．目的関可能になっている．具体的には，以下のように目的数内で suggest prompt が呼び出されると，Sampler関数内でパラメータの提案を行うことができる．

は新たなプロンプトを提案するために LLM を呼び出し，その結果を Storage に保存する．このアーキプログラム 1 Optuna のパラメータ提案 API

テクチャはほぼ Optuna と同様のものであり，唯一のdef objective ( trial ):違いは LLM が呼び出されることである．GPT-4 [10]param_1 = trial . suggest_float (や Gemini [11] といった能力の高い LLM は API を通" param_1 " , 0 , 10)param_2 = trial . suggest_int (してアクセスできるようになっており，この拡張は容易に実装できる．

" param_2 " , 0 , 10)score = ...
return score
プロンプトの最適化においても同様の API を用いることで，簡潔な記述が可能となる．実際にユーザが記述する目的関数は以下のようになる．
プログラム 2 プロンプト提案 API

def objective ( trial ):prompt_1 = trial . suggest_prompt (" prompt_1 " , initial_prompts_1 )prompt_2 = trial . suggest_prompt (" prompt_2 " , initial_prompts_2 )図 1 Optuna を基調としたプロンプト最適化 API のアー
キテクチャ．Optuna との違いは Sampler が LLM を通じて新たな提案を行うことである．

score = ...
return scoresuggest prompt の第 1 引数はプロンプトの名前で以上，本節では自動プロンプト最適化に必要なあり，第 2 引数は初期値としてユーザが与えるプロ要件としてプロンプト提案 API・最適化アルゴリズンプトである．このような API を採用することによ

ム API・アーキテクチャを挙げ，これらがブラックり，目的関数とプロンプト最適化アルゴリズムを分ボックス最適化ソフトウェアと類似しその拡張とし離して実装することが可能となる．て実装できることを示した．

― 2538 ―This work is licensed by the author(s) under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/).

3ライン（デフォルトプロンプト）の 44.06%との大き評価実験な差は見られなかった．一方，テンプレートを最適提案するフレームワークを用いてプロンプト最適化した場合には 73.36 ± 1.01%と大きな改善が見られ化アルゴリズムを実装し，ベンチマークを用いて評た．この結果に基づき，以降ではテンプレートの最価した．本実験では遺伝的アルゴリズムに基づくプ適化を他の LLM に対しても行う．

ロンプト最適化アルゴリズムを実装した．アルゴリズムの詳細は A.1 を参照のこと．ベンチマークとしプロンプトテンプレートの最適化実験て日本語 Language Evaluation Harness [12] の中から

図 2 では最適化の前後におけるスコアの変化を示

常識推論タスクの一種である JCommonsenseQA [13]す．ベースラインには，2023 年 12 月時点でのリーを選択した．JCommonsenseQA では，1 つの質問とダーボード [12] のスコア5）を用いた．いずれの LLM5 つの選択肢が与えられ，LLM は最も正しいと思わも，最適化によりスコアが大きく改善しており，最れるものを選び出す．評価指標は正解率 (Accuracy)

大で 52 パーセンテージポイント，最小でも 22 パーが用いられる．JCommonsenseQA は 8939 件の訓練センテージポイントと顕著な差を示している．一方データと 1119 件の検証データを含んでいる．実験
では訓練データを 8:2 の割合で分割した．このうち

で，検証データと評価データの差は最大でも 2 パーセンテージポイント程度であり，最適化前後のスコ

前者を最適化用の訓練データとし，後者を検証デー

アの差と比べると過適合に対する懸念は小さい．

タとした．そして，最適化の結果得られたプロンプ

Prompt90

データと呼ぶ）で評価し，ベンチマークのリーダー

80

ボードのスコアと比較可能なスコアを得た．評価対70

象の LLM は次の 4 つである： rinna-3.6b1）, calm-3b2）,
stablelm-7b3）, plamo-13b4）.

予備実験：プロンプトの構成と探索範囲

Accuracy [%]トを本来の検証データ（以降では区別のため評価

baseline

optimized-valoptimized-test

6050403020

プロンプトの例を表 1 に示す．プロンプトの 1 行

10目はタスクの指示であり，従来は主にこの部分が最0適化されてきた [2, 4]．一方で，2 行目以降はデータセット中の質問文や選択肢をどのようなレイアウトで配置するか，というプレースホルダ ({question},{option 0}) を含むテンプレートであるが，従来この部分は最適化の対象になっていなかった．

calm-3bstablelm-7b

plamo-13b

LLM

図 2 JCommonsenseQA の最適化結果．縦軸は 5 試行の平均正解率と標準偏差を示す．それぞれの LLM について，左からベースライン，最適化後のプロンプトを検証セットで評価した値，最適化後のプロンプトを評価セットで評価した値を示す．

表 1 JCommonsenseQA のプロンプトテンプレートの例与えられた選択肢の中から、最適な答えを選んでください。
質問：{question} 選択肢：- {option 0} ... 回答：

rinna-3.6b

デフォルトのプロンプトと最適化の結果得られたプロンプトを表 2 に示す．全ての LLM においてプ提案するフレームワークでは suggest prompt の対象を変えることで探索範囲を柔軟に変更できる．
予備実験として，探索範囲をタスクの指示とする場
合と，テンプレートとする場合とで比較した．対象とした LLM は rinna-3.6b である．5 試行の最適化を行なった結果，タスクの指示を最適化した場合の平均スコアと標準偏差は 43.59 ± 0.50%であり，ベース
1） https://huggingface.co/rinna/japanese-gpt-neox-3.
6b-instruction-ppo2） https://huggingface.co/cyberagent/open-calm-3b3） https://huggingface.co/stabilityai/
japanese-stablelm-base-alpha-7b4） https://huggingface.co/pfnet/plamo-13b

ロンプトの意味は変わっていないことが確認できる．一方で，最適化後のプロンプトのみに見られる傾向として，質問を選択肢の後においている．

関連研究

4

プロンプトを工夫することでタスクの達成度を高める取り組みはさまざま行われており，人間による工夫として最も広く知られているものの一つに “Let’s think step by step” を追加することで Chain ofThought を実現する方法 [1] がある．
5） plamo-13b はリリースノートのスコアを転載した．URL:
https://tech.preferred.jp/ja/blog/llm-plamo/― 2539 ―This work is licensed by the author(s) under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/).

表2JCommonsenseQA の最適化されたプロンプトテンプレート

LLM

ベースラインrinna-3.6b

ユ ー ザ ー:質 問：{question}<NL>選 択 肢：<NL>- 「{option 4}」、「{option 3}」、「{option 2}」、「{option 1}」、
{option 0}<NL>{option 1}<NL>{option 2}<NL>- 「{option 0}」の中から選択してください。
{option 3}<NL>- {option 4}<NL>システム:[ 質問 ] ：{question}[ 回答 ] ：最適化されたテンプレート

calm-3b

質問:{question}
選 択 肢: 0.{option 0},1.{option 1},2.{option 2},3.{option 3},
4.{option 4}
回答:

選択 1: {option 0}, 選択 2: {option 1}, 選択 3: {option 2}, 選択 4:{option 3}, 選択 5: {option 4}
質問内容: {question}
回答:stablelm-7b

質問:{question}
選 択 肢: 0.{option 0},1.{option 1},2.{option 2},3.{option 3},4.{option 4}
回答:

選択肢：
1. 「{option 3}」
2. 「{option 2}」
3. 「{option 4}」
4. 「{option 0}」
5. 「{option 1}」{question} について教えてください。
回答:

plamo-13b### 指示:与えられた選択肢の中から、最適な答えを選んでください。出
力は以下から選択してください：– {option 0}– {option 1}– {option 2}– {option 3}– {option 4}### 入力:{question}### 応答:What is the correct answer to this question?
1. {option 0}
2. {option 1}
3. {option 2}
4. {option 3}
5. {option 4}
Question:
Which option is the correct answer?
1. {option 4}
2. {option 3}
3. {option 2}
4. {option 1}
5. {option 0}
Question:{question}
The correct answer is:

また，計算機によるプロンプトの最適化でもさ最適化というアプローチも存在する．代表的な方法

ま ざ ま な 先 行 研 究 が 存 在 す る．そ の 一 つ の 分 野としては，勾配法を用いる P-Tuning [15] やベイズ最に，ハードプロンプト最適化と呼ばれる分野があ

適化を用いる InstructZero [16] などが知られている．

り，Automatic Prompt Engineer (APE) [2], Optimization
by Prompting (OPRO) [3], Promptbreeder [4] などの手ソフトプロンプトをパラメータとする連続空間の最適化と捉えれば，ブラックボックス最適化ソフト法が知られている．これらは，BIG-Bench [14] などウェアの Optuna [8] などにより実装することが可能のベンチマークタスクで人間が作成したプロンプであると考える．

トを上回る性能を示している．APE は，探索履歴からスコアの良いプロンプトを 1 つ選び出し，言い換おわりに5え用の LLM を使って同じ意味のプロンプトを生成

本研究では，自動プロンプト最適化ソフトウェアする方法を提案している．一方，OPRO は探索履歴に必要な機能を整理し，それを満たすアーキテクからスコアの高いプロンプトを複数選び出し，そのチャを提案した．課題としてプロンプト提案 API・スコアと共にプロンプトを列挙する．言い換え用の最適化アルゴリズム API・アーキテクチャを挙げ，LLM は，過去のプロンプトとそのスコアの情報を元ブラックボックス最適化と類似した方式を採用するにして新しいプロンプトを生成する．Promptbreeder

ことで解決可能であることを示した．

は，遺伝的アルゴリズムに基づく手法を採用してい本研究で言及しなかった自動プロンプト最適化

る．一つのプロンプトを元にした言い換えを行い新しいプロンプトを生成する突然変異や，複数のプロの可能性として，性能のみならずかかる時間や入出ンプトを組み合わせる交叉など，複数の遺伝的オペ

力のトークン数も最適化の対象とする多目的最適化 [17]，中間評価値により試行を途中で打ち切り試

レータを使って新しいプロンプトを生成する．これ

行回数を増やす枝刈り，不適切なプロンプトや出力らの最適化手法は，いずれも過去の探索履歴を元にを含むものを実行不可能解とみなす制約付き最適

LLM を用いてプロンプトを生成するという処理が化，といった拡張がありうる．これらはブラック共通しており，提案フレームワークの Sampler としボックス最適化で既に実用されており，ソフトウェて実装することが可能である．

ア設計においても参考になると考えられる．

この他のアプローチとして，トークンや文章に相当する埋め込み空間を最適化するソフトプロンプト― 2540 ―This work is licensed by the author(s) under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/).

謝辞
本研究において議論に参加していただいた鈴木海[14]渡さん，阿部健信さん，尾崎嘉彦さん，芝田将さん，渡邊修平さんに感謝いたします．

[15]

参考文献

[16]

[1] Takeshi Kojima, Shixiang Shane Gu, Machel Reid, Yutaka
Matsuo, and Yusuke Iwasawa. Large language models are
zero-shot reasoners, 2023.
[2] Yongchao Zhou, Andrei Ioan Muresanu, Ziwen Han,Keiran Paster, Silviu Pitis, Harris Chan, and Jimmy Ba.
Large language models are human-level prompt engineers.
2022.
[3] Chengrun Yang, Xuezhi Wang, Yifeng Lu, Hanxiao Liu,
Quoc V. Le, Denny Zhou, and Xinyun Chen. Large language models as optimizers, 2023.
[4] Chrisantha Fernando,
Dylan Banarse,
HenrykMichalewski, Simon Osindero, and Tim Rocktäschel.
Promptbreeder: Self-referential self-improvement via
prompt evolution, 2023.
[5] Denny Zhou, Nathanael Schärli, Le Hou, Jason Wei,
Nathan Scales, Xuezhi Wang, Dale Schuurmans, ClaireCui, Olivier Bousquet, Quoc Le, and Ed Chi. Least-tomost prompting enables complex reasoning in large language models, 2023.
[6] James Bergstra, Brent Komer, Chris Eliasmith, DanYamins, and David D Cox. Hyperopt: a python library formodel selection and hyperparameter optimization. Computational Science & Discovery, Vol. 8, No. 1, p.
014008, 2015.
[7] Daniel Golovin, Benjamin Solnik, Subhodeep Moitra,
Greg Kochanski, John Karro, and David Sculley. Googlevizier: A service for black-box optimization. In Proceed-[17]2957–2966, Marseille, France, June 2022. European Language Resources Association.
Aarohi Srivastava, et al. Beyond the imitation game: Quantifying and extrapolating the capabilities of language models, 2023.
Xiao Liu, Yanan Zheng, Zhengxiao Du, Ming Ding, Yujie
Qian, Zhilin Yang, and Jie Tang. Gpt understands, too,2023.
Lichang Chen, Jiuhai Chen, Tom Goldstein, Heng Huang,and Tianyi Zhou. Instructzero: Eﬃcient instruction optimization for black-box large language models, 2023.
Heng Yang and Ke Li. Instoptima: Evolutionary multiobjective instruction optimization via large language
model-based instruction operators, 2023.

ings of the 23rd ACM SIGKDD international conference on knowledge discovery and data mining, pp.

1487–1495, 2017.
[8] Takuya Akiba, Shotaro Sano, Toshihiko Yanase, Takeru
Ohta, and Masanori Koyama. Optuna: A next-generation
hyperparameter optimization framework. In Proceedingsof the 25th ACM SIGKDD International Conferenceon Knowledge Discovery and Data Mining, 2019.

[9] Seiya Tokui, Kenta Oono, Shohei Hido, and Justin Clayton. Chainer: a next-generation open source framework for deep learning. In Proceedings of Workshop
on Machine Learning Systems (LearningSys) in The
Twenty-ninth Annual Conference on Neural Information Processing Systems (NIPS), 2015.

[10] OpenAI. Gpt-4 technical report, 2023.
[11] Gemini Team. Gemini: A family of highly capable multimodal models, 2023.
[12] Jp language model evaluation harness, 2024. https://github.com/Stability-AI/lm-evaluation-harness.
[13] Kentaro Kurihara, Daisuke Kawahara, and Tomohide Shibata. JGLUE: Japanese general language understanding
evaluation. In Proceedings of the Thirteenth Language Resources and Evaluation Conference, pp.

― 2541 ―This work is licensed by the author(s) under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/).

A

参考情報

A.1

遺伝的アルゴリズムの詳細

A.2メタプロンプトの詳細

メ タ プ ロ ン プ ト の 詳 細 を 説 明 す る．表 3 は プ
レースホルダを含んだテンプレートを生成するたアルゴリズム 1 に本研究の実験で用いた遺伝的めのメタプロンプトである．このテンプレート例アルゴリズムの探索方法を示す．initial prompts は人（template 0 と template 1）に親個体のテンプレート間が考えた初期のプロンプトである．このアルゴリを代入すると，few-shot 学習の形で新しいプロンプ

ズムは，オーソドックスな遺伝的アルゴリズムであトを生成するプロンプトが得られる．これを LLMり，トーナメント戦略によって親個体となるプロンに入力することで，既存のプロンプトに類似する新プト 𝑝 1 , 𝑝 2 を選択し，交叉と突然変異によって次世しいプロンプトが LLM から出力される．

代個体となる新たなプロンプト 𝑐 を生成する．

ここで，第 1 段落 2 文目の「意味を変えずに、こプロンプト最適化で特徴的なのは，遺伝子に相れらのテンプレートを言い換えた一つのテンプレー当するものが文字列であることである．APE[2] やトを出力してください。」という指示が遺伝的アルPromptbreeder [4] などと同様に，既存のプロンプトゴリズムの交叉と突然変異に相当する．複数のテンプレートを例示しているところが交叉に，テンプを言い換える，というアイデアに基づき交叉と突然変異には LLM を用いている．具体的には表 3 に示すようなメタプロンプト（プロンプトを生成するたレートの言い換えを指示している部分が突然変異に対応する．
さらに第 2 段落では，プレースホルダを生成するめのプロンプト）を用いる．
なお，遺伝的アルゴリズムの探索設定は個体数テンプレートを残すように LLM へ指示している．

を 20，世 代 数 を 20，最 大 並 列 数 を 6 と し た．初

プレースホルダはテンプレートの例に含まれている期プロンプトとしては，日本語 Language Evaluation

が，プレースホルダのシンボル名を言い換えて良いHarness [12] における JCommonsenseQA に用意されかは LLM にとっては非自明であるため，明示的にているデフォルトプロンプトのうちバージョン 0.1,禁止した．

0.2, 0.3, 0.4 の 4 つを選択した．また，プロンプトの一方で第 3 段落では，プロンプトのどこに何を書言い換えに利用した言語モデルとして OpenAI のくか，というレイアウトの変更を許可している．本GPT-3.5-Turbo を用いた．

実験で示唆されたように，質問を選択肢の前に書く

Algorithm 1 遺伝的アルゴリズムに基づくプロンプ
ト最適化アルゴリズム
Require: 𝑃 (initial prompts), 𝑛 (population size), 𝑘 (tournamentsize), 𝐷 (validation dataset)
Ensure: 𝑃 (generated prompts)
score dict ← 𝜙while termination condition is not satisﬁed do𝐶←𝜙for 𝑖 ← 1 to 𝑛 do
𝑄 ← random sample(𝑃, 𝑘)
𝑝 1 ← select best(𝑄, score dict)𝑄 ← random sample(𝑃, 𝑘)
𝑝 2 ← select best(𝑄, score dict)𝑐 ← crossover mutate( 𝑝 1 , 𝑝 2 )𝑠 ← evaluate(𝑐, 𝐷)
𝐶 ← 𝐶 ∪ {𝑐}score dict[𝑐] ← 𝑠
end for𝑃←𝐶end while

か，後に書くかはスコアに大きく影響する．そのため，プロンプトの意味が変わらない範囲での変更を明示的に許可している．
表 3 本実験で用いたメタプロンプト（プロンプト生成のためのプロンプト）
以下に大規模言語モデルを評価するためのプロンプトのテンプレートを例示します。意味は変えずに、これらのテンプレートを言い換えた一つのテンプレートを出力してください。
‘{} で囲まれた文字列は Python の f-string 形式のテンプレートのシンボルです。シンボルは絶対に消したり名前を変えたりせず、全く同じものを出力に含めるようにしてください。
意味さえ変わらなければ、文の構造やシンボルの順番は入れ替えても構いません。#などの記号を変えるのも問題ありません。1 個のテンプレートを出力してください。
テンプレート以外には何も出力しないでください。
テンプレート例:{template 0}
テンプレート例:{template 1}
テンプレート:― 2542 ―This work is licensed by the author(s) under CC BY 4.0(https://creativecommons.org/licenses/by/4.0/).