Slide 1

Slide 1 text

Learning To Retrieve Prompts for In-Context Learning Ohad Rubin, Jonathan Herzig, Jonathan Berant (NAACL’22) 読む⼈︓丹⽻彩奈(東⼯⼤ 岡崎研) 2022-9-26 第14回最先端NLP勉強会 スライド中の図表・数式は,特に注釈のないかぎり本論⽂からの引⽤です

Slide 2

Slide 2 text

どんな論⽂︖ 2 背景: 学習事例をプロンプトとして追加⼊⼒し、パラメータ更新なし に回答を⽣成するIn-context learning 事前学習済み ⾔語モデル 🧊パラメータ固定 プロンプト 出⼒ 系列 提案⼿法:最適なプロンプトを得るため、事前学習済みモデルの出⼒を 教師信号とした検索器(efficient dense retriever)を学習 プロンプト 検索器 プロンプ ト候補① プロンプ ト候補② ⼊⼒ 系列 学習 事例② 学習 事例① … 問題: 何をプロンプトとするかに性能が⼤きく依存 結果:三種類の意味解析タスクにおいて既存⼿法の性能を超えた 良いプロンプト

Slide 3

Slide 3 text

短所: ①⾼性能を達成するにはプロンプトエンジニアリングが必須 In-Context Learningの背景 3 Table 1 from “What Makes Good In-Context Examples for GPT-3?”, 2021. ⻑所: パラメータ更新が不要なので効率的かつ破滅的忘却がない 同⼀のモデルを複数のタスクに適⽤可能 「良い」プロンプトを効率的に取得するための プロンプト検索器を組み込む研究に関⼼ プロンプトによって下流タスクでの結果が⼤きく異なる • 例えばSST-2でランダムにプロンプトを選ぶとこんな感じ: • 評価事例と全てのプロンプトの組み合わせを総当たりするのは⾮現実的… ②多くの学習事例をプロンプトとして使うと推論時間がかかる

Slide 4

Slide 4 text

問題設定 4 学習データ 𝓓 𝑥! , 𝑦! 𝑥" , 𝑦" ⋮ 𝑥# , 𝑦# 評価事例 𝑥$%&$ プロンプト𝓟 𝑥! , 𝑦! ⋮ 𝑥' , 𝑦' 𝑚 ≪ 𝑛 検索したプロンプトを追加⼊⼒して使って推論する • 良いプロンプトだったら、𝑔(𝒫; 𝑥!"#! ) = 𝑦!"#! 出⼒ 事例 Inference LM 𝑔 ⼊⼒ 系列 プロンプト𝓟 プロンプト 検索器 𝑅(𝑥$%&$ , 𝒟) 学習データ𝓓と評価事例の⼊⼒側𝑥/01/ が与えられたときに、 学習データからプロンプト𝓟を選択(検索)するプロンプ ト検索器𝑅(𝑥/01/ , 𝒟)を学習する

Slide 5

Slide 5 text

プロンプト検索器の概要 5 ⼊⼒事例 𝒙 プロンプト候補 [𝒙𝟏 ; 𝒚𝟏 ] [𝒙𝟐 ; 𝒚𝟐 ] ⋮ [𝒙𝒎 ; 𝒚𝒎 ] 埋め込み表現同⼠の 類似度を計算 類似度の⾼い事例Top- kをプロンプトに利⽤ ⼊⼒事例の エンコーダ 𝑬𝑿 . プロンプト エンコーダ 𝑬𝑷 . 上記のエンコーダを良いプロンプトとの距離が近くにくるように学習 ではプロンプトとしての良さをどうやってモデルに教えるべきか︖ (=何を教師信号とするべきか︖) ごくごく⼀般的な検索器の枠組みと同様 既存研究は表層的な類似性を⽤いたヒューリスティクスに基づいている

Slide 6

Slide 6 text

本研究の提案 6 「良い」プロンプトを⽰す教師信号に⾔語モデルそのも のを使ってプロンプト検索器を学習する • 直観的にはLMの尤度が⾼いほど適切なプロンプト。なのでこの 設定は良さそう Inference LM (パラメータ更新なしの事前学習済みモデル) に 加え、プロンプト候補にスコアづけする Scoring LM を導⼊

Slide 7

Slide 7 text

Efficient Prompt Retriever (EPR) 7 A. 学習事例の作成 A-1 プロンプト候補の検索 A-2 Scoring LMを⽤いたラベルづけ B. 対照学習 プロンプト検索器を 対照学習する 提案⼿法の学習フローは以下の通り

Slide 8

Slide 8 text

A-1 プロンプト 候補の検索 8 ⼊⼒事例 𝑥, 𝑦 に近い事例をプロンプト候補のセット ̅ ℰとして 教師なし検索器𝑅2 を⽤いて学習データ 𝒟から得る ̅ ℰ = 𝑅! ( 𝑥, 𝑦 , 𝒟) 教師なし検索器には以下の⼆つを⽤いる • 疎ベクトル検索器︓表層的な類似度を⽤いるBM25 • 密ベクトル検索器︓⽂ベクトルを⽤いるSBERT 𝑥 𝑦

Slide 9

Slide 9 text

A-2 Scoring LMを ⽤いたラベルづけ 9 各プロンプト候補, 𝑒3 = [𝑥3 ; 𝑦3 ] ∈ ̅ ℰ にScoring LM 3 𝑔 に基づくスコ アを与え、値が⼤きいものを正例、⼩さいものを負例とする スコア 𝑠 0 𝑒) = Prob* + (𝑦|0 𝑒) , 𝑥) • プロンプト0 𝑒) がターゲット⽂を⽣成するのにどれだけ役⽴つかを表す スコアが⾼い順に Top-𝑘の事例は正例 スコアが低い順に Top-𝑘の事例は負例 𝑥 𝑥 𝑥 𝑦 𝑦 𝑦

Slide 10

Slide 10 text

B プロンプト 検索器の学習法 10 𝑥( , 𝑒( ) , 𝑒(,! + , 𝑒(," + … 𝑒(,,+" + , 𝑒(,,+! + , … , 𝑒(,",+! + 𝑖番⽬の 負例セット ℰ-%. (() 𝑖番⽬の 正例セット ℰ12& (() 𝐵 − 1個 𝐵 − 1個 𝑥( 以外の 事例の負例 𝑥( 以外の 事例の正例 𝑖番⽬の学習事例︓ 作成した学習事例を⽤いてプロンプト検索器を対照学習して エンコーダ𝐸< 𝑥 とプロンプトエンコーダ𝐸= 𝑒 を得る • 対照学習の枠組みについては既存⼿法のDPR (Karpukhin et al., 2020)と同様

Slide 11

Slide 11 text

11 正例との類似度を⾼く 負例との類似度を低く ⼊⼒事例𝑥と各プロンプト候補𝑒の類似度を埋め込み表現の内 積で定義したとき、以下の⽬的関数を最⼩化するようにエン コーダを学習する sim 𝑥, 𝑒 = 𝐸< 𝑥 ⊺𝐸= (𝑒) B プロンプト 検索器の学習法

Slide 12

Slide 12 text

𝑥!"#! 推論フロー 12 [前処理] 全ての学習事例をプロンプトエンコーダ𝐸!(#)でエンコード 埋め込み表現 𝐸3 (𝑥$%&$ ) エンコーダ 𝐸3 ⼊⼒ 𝑥$%&$ 内積スコア 𝐸3 𝑥$%&$ ⊺𝐸5 (𝑒)の⾼い 学習事例(𝑒! , 𝑒! , … , 𝑒6 )をもってくる Inference LM 出⼒ 𝐸3 (𝑥$%&$ )をクエリとして検索 全学習事例の 埋め込み表現 𝐸5 𝑒! 𝐸5 𝑒" ⋮ 𝐸5 𝑒# 𝑒( = [𝑥( ; 𝑦( ] 𝑒, ⋯ 𝑒-

Slide 13

Slide 13 text

実験設定: データセット 13 3つの意味解析データセットを⽤いて実験する • ⾃然⾔語⽂をその根底にある意味の形式的表現に変換するタスク 質問理解ベンチマーク タスク指向対話の意味 解析データセット タスク指向対話の意味解 析データセット カレンダー、天気などの 幅広いトピックをカバー BREAK (60K) MTOP (22K) SMCALFLOW (148K)

Slide 14

Slide 14 text

実験設定: ベースライン 14 教師なしベースライン • RANDOM • ランダムに学習セットからプロンプトを選択 • SBERT(密ベクトル検索) • 既存のモデルを使って𝑥!"#! をエンコードしたベクトルが最 も近い事例をプロンプトとする • BM25(疎ベクトル検索) • 単語の出現頻度に基づいたベクトルが最も近い事例をプロ ンプトとする • BRUTEFORCE • 200個の学習事例をサンプリングし、各学習事例(𝑥. , 𝑦. )に対 してProb+ (𝑥!"#! |𝑥. )が⾼くなる事例をプロンプトとする 教師ありベースライン 検索器の学習に⽤いる学習事例の選び⽅(=スコア関数の設計)が異なる • DR-BM25: BM25スコア • CASE-BASED REASONING (CBR): Stop wordsを除いたトークン集合の⼀致度 • EFFICIENT PROMPT RETRIEVAL (EPR) ← proposed

Slide 15

Slide 15 text

実験設定: オラクル 15 オラクル • BM25-ORACLE • 評価事例のground-truthを使ってスコアづけする • 𝑅/012 (𝑦!"#! , 𝒟) • DR-BM25のupper bound • LM-ORACLE • (𝑥!"#! , 𝑦!"#! )が与えられたときに、まず𝑅/012 (𝑦!"#! , 𝒟)を使って𝐿 個のプロンプト候補を選択。次に𝑥!"#! を⼊⼒としたときの𝑦!"#! の 確率に基づきリランキングする • EPRのupper bound

Slide 16

Slide 16 text

実験設定: 16 ⾔語モデル Scoring LM = 𝑔 • GPT-NEO(パラメータ2.7B) Inference LM 𝑔 • GPT-J (パラメータ6B) • GPT-NEOと同じデータで学習されている • GPT-3(パラメータ175B) • CODEX(パラメータ175B) • github上のコードでfine-tuneされたGPT-3 評価 BREAK: Normalized Exact Match (NEM) MTOP, SMCALFLOW: Exact Match (EM) EPRは①LM-as-a-service ②LM-as-a-proxy の⼆種類の設定で評価する Scoring LM D 𝑔 Inference LM 𝑔 ①LM-as-a-service GPT-NEO ②LM-as-a-proxy GPT-NEO GPT-J/GPT-3/CODEX

Slide 17

Slide 17 text

実験結果 LM-as-a-service 17 EPRは他の全てのベースラインの性能を⼤幅に超えた • LM⾃体を⽤いて検索器の学習に⽤いる事例のラベル付けを⾏う有効性 EPRはBM25-ORACLEの性能に超えるケースも(MTOPとSMCALFLOW) • BM25-ORACLEは評価時にground-truthにアクセス可能。つまりLMを⽤いた教師 信号は表層的なテキストの類似度よりも良いことがある ⼀⽅で、LM-ORACLEはEPRの性能よりも⼤幅に⾼い • より良い検索器を学習することで性能をさらに上げることができる

Slide 18

Slide 18 text

実験結果 LM-as-a-proxy 18 LM-as-a-serviceと同様、提案⼿法は既存研究より⼤幅に良い結果 パラメータ数が⼩さいScoring LM(GPT-NEO)でも、⼤規模モデルの Inference LMと組み合わせた時に学習事例の選択に役⽴つ Scoring LM D 𝑔 Inference LM 𝑔 ①LM-as-a-service GPT-NEO ②LM-as-a-proxy GPT-NEO GPT-J/GPT-3/CODEX Inference LMに使うモデルが⼤きい場合 Inference LM Scoring LMと Inference LM が同じ Scoring LMが GPT-NEO GPT-J 31.5 33.6 CODEX 29.3 29.5

Slide 19

Slide 19 text

まとめ 19 プロンプトとして学習事例を追加⼊⼒することでモデルの パラメータ更新なしに回答を⽣成可能なin-context learning ⾔語モデル⾃体をスコアリングに⽤いることで、in-context learningのためのプロンプト検索器の学習法を提案 3つの困難なタスクにおいて⼤幅に性能を向上させた 提案⼿法は、例えばパラメータにアクセスできないモデル (API公開のみのケース)も利⽤可能。 そのため、事前学習済みLMの⼤規模化が進む近年の情勢に も順応可能な⼿法である