Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Learning To Retrieve Prompts for In-Context Learning

Ayana Niwa
September 20, 2022

Learning To Retrieve Prompts for In-Context Learning

2022-9-26 第14回最先端NLP勉強会の発表資料です。
https://sites.google.com/view/snlp-jp/home/2022

紹介論文: Rubin et al., Learning To Retrieve Prompts for In-Context Learning., NAACL 2022 (https://aclanthology.org/2022.naacl-main.191)

Ayana Niwa

September 20, 2022
Tweet

More Decks by Ayana Niwa

Other Decks in Research

Transcript

  1. Learning To Retrieve Prompts for In-Context Learning Ohad Rubin, Jonathan

    Herzig, Jonathan Berant (NAACL’22) 読む⼈︓丹⽻彩奈(東⼯⼤ 岡崎研) 2022-9-26 第14回最先端NLP勉強会 スライド中の図表・数式は,特に注釈のないかぎり本論⽂からの引⽤です
  2. どんな論⽂︖ 2 背景: 学習事例をプロンプトとして追加⼊⼒し、パラメータ更新なし に回答を⽣成するIn-context learning 事前学習済み ⾔語モデル 🧊パラメータ固定 プロンプト

    出⼒ 系列 提案⼿法:最適なプロンプトを得るため、事前学習済みモデルの出⼒を 教師信号とした検索器(efficient dense retriever)を学習 プロンプト 検索器 プロンプ ト候補① プロンプ ト候補② ⼊⼒ 系列 学習 事例② 学習 事例① … 問題: 何をプロンプトとするかに性能が⼤きく依存 結果:三種類の意味解析タスクにおいて既存⼿法の性能を超えた 良いプロンプト
  3. 短所: ①⾼性能を達成するにはプロンプトエンジニアリングが必須 In-Context Learningの背景 3 Table 1 from “What Makes

    Good In-Context Examples for GPT-3?”, 2021. ⻑所: パラメータ更新が不要なので効率的かつ破滅的忘却がない 同⼀のモデルを複数のタスクに適⽤可能 「良い」プロンプトを効率的に取得するための プロンプト検索器を組み込む研究に関⼼ プロンプトによって下流タスクでの結果が⼤きく異なる • 例えばSST-2でランダムにプロンプトを選ぶとこんな感じ: • 評価事例と全てのプロンプトの組み合わせを総当たりするのは⾮現実的… ②多くの学習事例をプロンプトとして使うと推論時間がかかる
  4. 問題設定 4 学習データ 𝓓 𝑥! , 𝑦! 𝑥" , 𝑦"

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

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

    Scoring LMを⽤いたラベルづけ B. 対照学習 プロンプト検索器を 対照学習する 提案⼿法の学習フローは以下の通り
  7. A-1 プロンプト 候補の検索 8 ⼊⼒事例 𝑥, 𝑦 に近い事例をプロンプト候補のセット ̅ ℰとして

    教師なし検索器𝑅2 を⽤いて学習データ 𝒟から得る ̅ ℰ = 𝑅! ( 𝑥, 𝑦 , 𝒟) 教師なし検索器には以下の⼆つを⽤いる • 疎ベクトル検索器︓表層的な類似度を⽤いるBM25 • 密ベクトル検索器︓⽂ベクトルを⽤いるSBERT 𝑥 𝑦
  8. A-2 Scoring LMを ⽤いたラベルづけ 9 各プロンプト候補, 𝑒3 = [𝑥3 ;

    𝑦3 ] ∈ ̅ ℰ にScoring LM 3 𝑔 に基づくスコ アを与え、値が⼤きいものを正例、⼩さいものを負例とする スコア 𝑠 0 𝑒) = Prob* + (𝑦|0 𝑒) , 𝑥) • プロンプト0 𝑒) がターゲット⽂を⽣成するのにどれだけ役⽴つかを表す スコアが⾼い順に Top-𝑘の事例は正例 スコアが低い順に Top-𝑘の事例は負例 𝑥 𝑥 𝑥 𝑦 𝑦 𝑦
  9. B プロンプト 検索器の学習法 10 𝑥( , 𝑒( ) , 𝑒(,!

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

    𝐸3 ⼊⼒ 𝑥$%&$ 内積スコア 𝐸3 𝑥$%&$ ⊺𝐸5 (𝑒)の⾼い 学習事例(𝑒! , 𝑒! , … , 𝑒6 )をもってくる Inference LM 出⼒ 𝐸3 (𝑥$%&$ )をクエリとして検索 全学習事例の 埋め込み表現 𝐸5 𝑒! 𝐸5 𝑒" ⋮ 𝐸5 𝑒# 𝑒( = [𝑥( ; 𝑦( ] 𝑒, ⋯ 𝑒-
  11. 実験設定: ベースライン 14 教師なしベースライン • RANDOM • ランダムに学習セットからプロンプトを選択 • SBERT(密ベクトル検索)

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

    (𝑦!"#! , 𝒟) • DR-BM25のupper bound • LM-ORACLE • (𝑥!"#! , 𝑦!"#! )が与えられたときに、まず𝑅/012 (𝑦!"#! , 𝒟)を使って𝐿 個のプロンプト候補を選択。次に𝑥!"#! を⼊⼒としたときの𝑦!"#! の 確率に基づきリランキングする • EPRのupper bound
  13. 実験設定: 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
  14. 実験結果 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