\documentclass[japanese,other]{jnlp_3.6}
\usepackage{jnlpbbl_2.2}
\usepackage[dvipdfmx]{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{url}
\usepackage{hangcaption_jnlp}
\usepackage{array}
%%%%\usepackage{udline}
%%%%\setulminsep{1.2ex}{0.2ex}
%%%%\let\underline=\ul
\allowdisplaybreaks


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% author's definition
%------------------------------------------
% 追加パッケージ
\usepackage{booktabs}
%%%%\usepackage{multirow}
%%%%\usepackage[utf8]{inputenc}
%------------------------------------------
%------------------------------------------
% 追加マクロ1
%%%%\newcommand{\blue}[1]{\colorbox[rgb]{0.92,0.96,1}{#1}} 
%%%%\newcommand{\red}[1]{\colorbox[rgb]{1,0.9,0.9}{#1}} 
\newcommand{\prompt}{\texttt}
%------------------------------------------
% ------------------------------------------------------------------
% 追加マクロ2
% This will rename subsection to Section when using \autoref
%\usepackage{amsmath}
%\usepackage[english]{babel}
%\usepackage{hyperref}
%\addto\captionsenglish{%
%  \def\sectionname{\S\!}%
%  \def\subsectionname{\S\!}%
%}
%\addto\extrasenglish{%
%  \def\subsectionautorefname{\S\!}%
%  \def\sectionautorefname{\S\!}%
%}
%\let\subsectionautorefname\sectionautorefname
%\let\subsubsectionautorefname\sectionautorefname
%
%\usepackage{hyperref}
%\def\figureautorefname{図}
%\def\tableautorefname{表}
%\def\equationautorefname{式}
% --------------------------------------------------------------------
%------------------------------------------
% 追加マクロ
%%%%\newcommand{\myjlastname}{石橋}
%%%%\newcommand{\myjfirstname}{陽一}
%%%%\newcommand{\myjname}{\myjlastname~\myjfirstname}
%%%%\newcommand{\myjtitle}{Evaluating the Robustness of Discrete Prompts}
%%%%\newcommand{\myelastname}{Ishibashi}
%%%%\newcommand{\myefirstname}{Yoichi}
%%%%\newcommand{\myename}{\myefirstname~\myelastname}
%%%%\newcommand{\myetitle}{Evaluating the Robustness of Discrete Prompts}
%------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\Volume{30}
\Number{3}
\Month{September}
\Year{2023}
%%%%\Issuetitle{「　　　　」特集号}

\setcounter{page}{1110}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\jsubject{学会記事}
\jtitle{Evaluating the Robustness of Discrete Prompts}
\jauthor{石橋　陽一\affiref{Author_1}}

\etitle{Evaluating the Robustness of Discrete Prompts}
\eauthor{Yoichi Ishibashi\affiref{Author_1}} 

\headauthor{石橋}
\headtitle{Evaluating the Robustness of Discrete Prompts}

\affilabel{Author_1}{京都大学}{Kyoto University}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\maketitle


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{はじめに}

本解説記事では EACL2023 に採択された著者ら\footnote{本研究は筆者が奈良先端科学技術大学院大学博士後期課程在籍時にリバプール大学と共同で行った研究である．}の論文 ``Evaluating the Robustness of Discrete Prompts'' \cite{DBLP:conf/eacl/IshibashiBSN23} について紹介する．
本研究では人間が作成したプロンプトと自動学習されたプロンプトについて頑健性の観点で比較・分析を行い，自動プロンプトが探索で得られたトークンやその位置に対し強く依存していることを明らかにした．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{背景}

事前学習済み言語モデル (PLM) は感情分析 \cite{gao-etal-2021-making}，自然言語推論 \cite{schick-schutze-2021-exploiting,schick-schutze-2022-true}，関係抽出 \cite{shin-etal-2020-autoprompt}など，あらゆる自然言語処理タスクで大きな成功を収めている．
これには答えを誘導する適切な指示文（\emph{プロンプト}）が重要な役割を果たしており，現代の自然言語処理において重要なトピックとなっている．
一般に，プロンプトは人間によって書かれるが，優れたプロンプトを作成することはいくつかの理由から容易ではない．
まず，特定のドメイン（例： 医療）の問題に対し良いプロンプトを作成する事は難しいという点が挙げられる．
そのようなプロンプトを作成するためにはそのドメインに関する深い知識が重要となるが，特定のドメインに精通した専門家（例：医者）を常に準備することは現実的に困難である．
また，人間が書くプロンプトは作成者によるばらつきがある上，全てのコーナーケースをカバーできるわけではない．
そこで，少数の訓練データから自動でプロンプトを学習する方法\cite{shin-etal-2020-autoprompt,DBLP:journals/corr/abs-2205-12548}が注目されている．
これは人間が手動でプロンプトを作成する代わりに，機械学習により自動的に最適なプロンプトを探索する技術である．
例えば最も代表的な手法であるAutoPrompt \cite{shin-etal-2020-autoprompt}はPLMのパラメタを固定し，プロンプトテンプレートのトークンを語彙から探索する方法である．

数多くの下流タスクで優れたパフォーマンスを達成しているAutoPromptだが，得られたプロンプトは人間が書いたものとは大きく異なることが知られている．
その一例として，表\ref{tbl:autoprompt-examples}に関係抽出において学習された自動プロンプトを示す．
AutoPromptが高い性能を示す一方で，我々人間の直感に反するような単語（例：\emph{fluent!?\"{t}raditional}）やスペルミス（例：\emph{commuenrug}）が含まれている．
AutoPromptがFew-shotの設定で訓練されている事を考慮すると，このような直感に反したプロンプトは少数の訓練サンプル中のランダムなアーティファクトを捕らえているだけであり，ターゲットタスクに対して汎化できていない可能性がある．
そこで我々はプロンプトの頑健性について注目し，次の疑問 (1) プロンプトに微小でランダムな摂動を加えた場合，ターゲットタスクの性能はどのように変化するのか？ (2) プロンプトはドメイン外のデータに対して汎化しているのか？ という点に焦点をあてる．
頑健性が低いプロンプトでは，句読点を削除するような一見無害な摂動が下流タスクの性能を大きく変化させることがある．したがってこのようなプロンプトの頑健性の評価は良いプロンプトの設計や自動学習されたプロンプトの性質を理解する上で非常に重要である．
本研究では，プロンプトの頑健性を分析するために4種類の摂動を設定し，これらに対する自動プロンプト学習と手動プロンプトの頑健性を比較・分析する．

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% table 1
\begin{table}[t]
\begin{center}
\begin{tabular}{lllc}
\toprule
関係 &  手法 & プロンプト & P@1 \\ \midrule
\textsf{native-language-of}    & Manual            & \prompt{The native language of [X] is [Y]} & 74.54\\
   & AP BERT   & \prompt{[X]PA communerug speaks proper [Y]} & \textbf{84.87}\\
   & AP RoBERTa & \prompt{[X]neau optionally fluent!?\"{t}raditional [Y]} & 81.61\\ 
\bottomrule
\end{tabular}
\end{center}
\hangcaption{関係抽出における手動プロンプト (Manual) と自動プロンプト (AP) の例．関係ごとのプロンプトとPrecision@1 (P@1) スコアが示されている．}
\label{tbl:autoprompt-examples}
\end{table}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{プロンプト学習}

このセクションでは手動プロンプトおよび自動プロンプトの代表的な手法を説明する．なお本研究で扱うプロンプト学習法はマスク言語モデルを対象とするものである．
また，本研究では共通のタスク（自然言語推論 (NLI) タスク）で評価を行う．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{自動プロンプト}

AutoPrompt \cite{shin-etal-2020-autoprompt}はプロンプト学習の代表的な手法で，その学習戦略はfill-in-the-blankタスクに基づいている．
この方法では，初めに手動で作成したプロンプトテンプレート（例えば，\prompt{[タスク入力] <T> ... <T> <MASK>}）が与えられる．
このテンプレート内の特殊トークンである\prompt{<T>}（トリガートークン）をその他のトークンに置換し，タスク性能を向上させるトークンを探索する．
トリガートークンの探索時，プロンプト$x_{\mathrm{prompt}}$における\prompt{<MASK>}のトークンを予測しクラス確率に変換する．
具体的には，ラベル$y$に対応するトークン集合$V_y$（例えば，NLIにおいてcontradictionラベルに対し`\emph{nobody}'や`\emph{nor}'といったトークン）を事前に定義しておき，そのトークンの確率の和をクラス確率 $p(y | x_{\mathrm{prompt}}) = \sum_{w \in V_y} p(\prompt{<MASK>}=w | x_{\mathrm{prompt}})$ とする．
そしてGradient-guided search によって言語モデルの語彙からトリガートークンの候補セットを見つける．
我々はNLI用のテンプレートとして，\cite{shin-etal-2020-autoprompt}が提案したものを使用した（\prompt{[前提文] <MASK> <T> ... <T> [仮説文]}）．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{手動プロンプト}

手動プロンプトには，マスク言語モデル全体を訓練データで微調整する Pattern-Exploiting Training (PET) \cite{schick-schutze-2021-exploiting}を採用した．
この手法では，手動で書かれたプロンプト用のテンプレートを用いる．具体的には，\prompt{<MASK>}を含むテンプレートを入力とし，ラベルに対応するトークンを予測するように学習を行った．
なお，プロンプトテンプレートおよびラベルとトークンの対応 (verbalizer) はあらかじめ定義されたものを使用する．我々は，先行研究\cite{schick-schutze-2021-exploiting,DBLP:conf/naacl/ScaoR21}が使用したテンプレート\prompt{{hypothesis}? | <MASK>, {premise}}と，verbalizer $\{$entailment：``yes'', contradiction：``no'', neutral：``maybe''$\}$を使用した．
\cite{schick-schutze-2021-exploiting}は異なるテンプレートを使用して複数のファインチューニングを行うアンサンブルベースの方法を提案しているが，AutoPromptでは単一のテンプレートが使用されるため，我々の実験で公平な比較をするため，我々は一つのテンプレートを使用した．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{実験}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{実験設定}

手動プロンプトと自動プロンプトを比較する評価タスクとして，与えられた 2 つの文の間の関係を予測する自然言語推論 (NLI) を採用した．
これはプロンプト学習を評価または提案した以前の研究でも使用されている \cite{shin-etal-2020-autoprompt,DBLP:conf/naacl/ScaoR21,DBLP:conf/naacl/WebsonP22}．
具体的には我々は 2 つのデータセットを使用した： CommitmentBank (CB)，Multi-Genre Natural Language Inference Corpus (MNLI)．
これらのデータセットの各文ペアは，含意，中立，または矛盾でラベル付けされている．
また，頑健性を評価する指標としてスコアの\emph{下落率}を使用した．
これは，プロンプトに摂動を加えた後にターゲットタスクのスコア（精度, F1スコア）が元のスコアからどの程度低下するかを表す．
したがって，ある摂動を加えた後のモデルの下落率が小さい場合，そのモデルはその摂動に対して頑健であると見なされる．
また，事前学習済みの言語モデルにはAutoPromptなどプロンプト学習の先行研究\cite{shin-etal-2020-autoprompt,DBLP:conf/naacl/ScaoR21}で頻繁に使われている RoBERTa-large \cite{RoBERTa}を使用した．
訓練データには，オリジナルの訓練データから少数のインスタンスをランダムに抽出したサブセットを用いた．各手法の訓練データ数による性能の変化を調査\footnote{本稿では詳細には触れない．詳細については\cite{DBLP:conf/eacl/IshibashiBSN23}を参照いただきたい．}するため訓練データ数$n \in \{10, 15, 20, 30, 50, 70, 100, 150, 200\}$を変更し，複数のサブセットを作成した．なお，少数データにおける特徴の偏りを考慮し，訓練データ数あたり 4 つの異なるサブセットを作成した．
最終的に得た最適なプロンプトおよびモデルを使用して頑健性の評価実験（4 種類の摂動「トークン並び替え」「トークン削除」「ドメイン外データへの適用」「タスク入力への敵対的摂動」）を行った．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{トークン並び替え}

プロンプト内のトークンの順序が結果にどの程度影響を与えるかを調査するため，プロンプトテンプレートのトークンをランダムに並び替えてパフォーマンス（精度またはF-score）にどのような影響があるかを評価する．
この実験によりAutoPromptはトークンの順序に強く依存していることがわかった．具体的には，トークン並び替えによってタスクのパフォーマンスが10\%から最大21\%まで下落した．
この結果はAutoPromptにおけるトークンの順序がそのパフォーマンスに大きな影響を与えることを示唆している．
一方で手動プロンプトの場合は最大で9\%とAutoPromptよりも大きな下落は確認できず，比較的頑健であることがわかった．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{トークン削除}

この実験では，個々のプロンプトトークンが全体のプロンプトに対してどれだけ重要な影響をもつのかを評価する．
具体的には，プロンプトテンプレートから一つ以上のトークンを削除し，パフォーマンスの下落率を計算する．
結果として，トークンが削除されるとAutoPromptそして手動プロンプトの両手法で性能が大きく下がった．
具体的にはAutoPromptは最大10\%，手動プロンプトは最大15\%下落した．
また，削除しても大きな下落が見られないトークンも存在する事，さらに，両手法で性能が下がるデータセットは異なる事から，個々のトークンの重要度がデータセットに依存することが示唆された．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{ドメイン外データへの適用}

この実験では，我々が用意した 2 つのデータセット（CBとMNLI）のうち，片方を学習に，片方を評価に使用することで，プロンプトが学習環境と異なるデータに汎化するかを評価する．
実験の結果，両手法ではCBでのプロンプトをMNLIに使用するとパフォーマンスが下がることが見られた（逆も同様）．
これらの結果は，プロンプトのパフォーマンスがデータセット依存であり，学習されたプロンプトがデータセット間でうまく汎化しないことを示している．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{タスク入力への敵対的摂動}

この実験ではタスク入力が敵対的摂動を加えられた際の両手法の頑健性を評価する．
まず我々は，MNLIとCBからランダムにサンプリングした評価用インスタンスから，敵対的NLIデータセットを作成した．
ここでは，仮説文を 2 名のアノテータが手動で修正した．ここでは前提文は変更せずに仮説文を変更する．具体的には次の 2 通りの敵対的摂動を加えた，(a)ターゲットラベルは変更せず仮説文の一部を変更，(b) ターゲットラベルは変更（例えば含意ラベルを矛盾に，またはその逆）に反転し仮説文の一部を変更．
実験の結果，両手法が，ターゲットラベルを変更しない摂動 (a) に対しては比較的頑健であるが，ラベルを変更する設定 (b) では手動プロンプトのパフォーマンスが大きく下落した．
これは，AutoPromptが手動プロンプトよりも敵対的摂動に対して比較的頑健であることを示唆している．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{おわりに}

本研究は，人間が書くプロンプトと自動で学習されたプロンプトを頑健性という観点で比較をした．
人手で書かれたプロンプトがトークン削除やシャッフルのような摂動に対して頑健であるという事実は，プロンプトの設計と頑健性の向上に関する戦略を再考するための重要な洞察である．
一方で人間が書くプロンプトであれば良いというわけではなく，ターゲットタスクに応じて細かな調整が必要である．
ChatGPT (GPT-4) のようなモデルでさえ，特定の出力を引き出すためにプロンプトを経験的に調整する必要があるというのが現状である．
人間が書くプロンプトは自動プロンプトと違い，文法や語彙などの言語的制約を受けているため，同様の指示内容であれば意味空間では大きな変化が生じないと思われるが，現状は強力な言語モデルであってもプロンプトの僅かな変化に非常に敏感である．
今後，言語モデルの発展によりこのような調整が不要になる日が来るかもしれない．より強力な言語モデルが出現したとき，プロンプトの調整が必要となるのかは興味深い問題である．


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibliographystyle{jnlpbbl_1.7}
\begingroup
\addtolength{\baselineskip}{-0.75pt}
\bibliography{25refs}
\endgroup



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{biography}

\bioauthor{石橋　陽一}{%
2018年 京都産業大学コンピュータ理工学部卒業．
2020年 奈良先端科学技術大学院大学 先端科学技術研究科 博士前期課程修了．
2023年 奈良先端科学技術大学院大学 先端科学技術研究科 博士後期課程修了．博士（工学）．
同年4月より京都大学大学院情報学研究科 特定研究員．
}

\end{biography}





\end{document}



