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

[2023/11/18] Knowledge-Augmented Language Model Verification @LLM x 検索論文読み会

cfiken
November 19, 2023
280

[2023/11/18] Knowledge-Augmented Language Model Verification @LLM x 検索論文読み会

cfiken

November 19, 2023
Tweet

Transcript

  1. 自己紹介 name: Kentaro Nakanishi id: @cfiken DS at ABEJA ひとこと:

    帰ったらマリオRPGのリメイ クをやります
  2. 今日の論文紹介 • 基本情報 ◦ Knowledge-Augmented Language Model Verification [1] ▪

    特に記載のない図や表はこの論文から引用 ◦ Published on arxiv at 2023/10/19 (id: 2310.12836) ◦ J. Baek et al. (from KAIST) ◦ accepted by EMNLP 2023 • 選択理由 ◦ 似たような論文が多くあり、応用をしやすそうなものを選んだつもり ◦ LLM のための補助モデルを学習する、みたいなものが多く(今回のものもそ う)、その中でバランス良さそうだった
  3. 背景: RAG RAG: Retrieval Augmented Generation • (主に LM の文脈で)テキスト生成の際に情報の検索

    (Retrieval) を組み合わせることで期待する結果を得るためのアプローチ • hallucination の防止や特定ドメインの知識の強化、古い情報の更 新などが狙いであることが多い LLM Response Query Data Source Retriever
  4. ひとくちに RAG といっても幅広い 背景: RAG の構成要素 Data / Query Retrieval

    Generation Strategy • Data / Query: 外部データ・入力の取扱い • Retrieval: 外部データの検索・選択 • Generation: 外部データを使った生成 • Strategy: 上記をどう組み合わせるか
  5. ひとくちに RAG といっても幅広い • 複数ステップありそれぞれ重要 • Data / Query ◦

    外部データは何でどう持つか(種類 / 分割方法 / 管理) ◦ pdf など非テキストファイルの場合の取り扱い ◦ 入力クエリをどう扱うか(raw / expand / structure) • Retrieval ◦ 検索アルゴリズム (Dense/ Sparse / etc.) ◦ 検索結果の取り扱い方(要約 / etc.) ◦ 検索結果からどのように選択するか(Re-rank / Merge / etc.) 背景: RAGの構成要素 Data / Query Retrieval Generation Strategy
  6. ひとくちに RAG といっても幅広い • 複数ステップありそれぞれ重要 • Generation ◦ Retrieval 結果をどう使ってテキスト生成するか

    ◦ Prompt Engineering • Strategy ◦ 上記3つをどのように組み合わせるか ◦ Retrieval や Generation をやり直す ◦ 上手く行かない理由から Query を再拡張する 背景: RAGの構成要素 Data / Query Retrieval Generation Strategy
  7. 1ページにまとめると • モチベーション ◦ RAG における (1) Retrieval Error, (2)

    Grounding Error をなんとかしたい • 提案内容 ◦ (1), (2) を検証する Verification モデルとして KALMV を提案、instruction -tuning で学習する。 ◦ Generation 後にそれらを入力して検証を行い、必要に応じてステップを戻る。 • 実験結果 ◦ 4つの QA タスクで精度を平均的に改善✌ ◦ 特に Retrieval Error 対策が効いてそう
  8. Introduction 解決の方向性 • Retrieval Error, Grounding Error が発生してしまっていないかを 検証する(小さい)Verifier LM

    を訓練する。 • 生成を行うターゲット LM の入力と出力が得られれば良いので、任 意の LM に適用可能でターゲット LM の追加学習が必要ない✌
  9. Introduction 先行研究とのコア差分? • 正直色々やっててコアポイントが分かりづらいが、一番は 「Retrieval Error の検出」による改善のように見える • Verifier LM

    作成 + 検証 & 修正プロセス提案 + ensemble テク ニックで精度改善? • 論文で提示されている結果は良さそう
  10. 提案手法: Retrieved Knowledge Verifier の定義 入力、外部データ、出力の triplet を作成: Verifier (LM)

    に、外部データ  が入力  に関連するかを検証す る instruction  と上記 triplet を入力とし推論する: ここで、  は出力で、関連があるかないかの二値変数。
  11. 提案手法: Generated Answer Verifier の定義 入力、外部データ、出力の triplet を作成: 先程と同様に、別の Verifier

    LM と、返答が外部データに基づいて いるかを検証させる instruction  を用意し、上記 triplet と合 わせてモデルに入力する ここで、  は出力で、外部データが正しく反映されているかの二 値変数。
  12. 提案手法: 学習 (instruction-tuning) 既存データセットから自動で instruction-tuning 用の入力とラベ ルのペアデータを作成する。      と o • retrieved

    knowledge が正しい回答を含んでいなければ o = A • generated answer が retrieval knowledge とトークンの重な りがなかったら o = B  (IMO: コード見たけど分からなかった) • それ以外は正解パターンで o = C 上記データに instructions を加えてモデルを学習させる。 ※上記をちゃんとやるには entity の情報が必要で、これができる データセットを使用しているっぽい
  13. 提案手法: 推論時の工夫2 失敗時の修正 Verifier モデルを使って Error を検知した場合に、該当ステップに 戻って再実行する。 • Retrieval

    Error: 前回の retrieval 結果を除いて、再度検索し スコアの高いものを使用してやり直す。 • Grounded Error: 生成をやり直す。top-k sampling を使用し ているため同じ結果にならない想定。 どちらの場合も上限回数を決めて実施。
  14. 検証プロセス タスクとデータセット • Open Domain Question Answering ◦ Natural Questions,

    Hotpot QA ◦ 外部データ: Wikipedia • Knowledge Graph Question Answering ◦ WebQSP, Mintaka ◦ 外部データ: Wikidata
  15. 検証プロセス ベースラインと提案モデル • Naive LM • Knowledge Augmented LMs •

    Adaptive Retrieval [2] ◦ with Entity ◦ with Confidence • LLM-Augmenter [3] ◦ with Knowledge F1 ◦ with Confidence • KALMV(提案手法)
  16. 検証プロセス ベースラインと提案モデル • Naive LM • Knowledge Augmented LMs •

    Adaptive Retrieval [2] ◦ with Entity ◦ with Confidence (new) • LLM-Augmenter [3] ◦ with Knowledge F1 ◦ with Confidence (new) • KALMV(提案手法) どういった entity だと retrieval により精度 があがるかなどを実験的に検証。 Adaptive Retrieval は、Popularity のしき い値で Retrieval をするか否かを決める。 [2] より Figure 1
  17. 検証プロセス ベースラインと提案モデル • Naive LM • Knowledge Augmented LMs •

    Adaptive Retrieval [2] ◦ with Entity ◦ with Confidence (new) • LLM-Augmenter [3] ◦ with Knowledge F1 ◦ with Confidence (new) • KALMV(提案手法) 外部データを色々取得、LLMに入れて生成し た結果を評価、検証、NGならフィードバッ クを行い再生成、を検証を通るまで繰り返す [3] より Figure 1
  18. 検証プロセス その他 • 評価指標は一般的な F1 / EM / accuracy •

    Retriever ◦ Open Domain QA: BM25 ◦ Knowledge Graph QA: MPNet • LM は FLAN (250M, 780M, 3B) を使用 • KALMV の verify LM には FLAN Base (250M) を使用 ◦ これに instruction-tuning を加えたもの ◦ Error 検知時の修正回数は上限で1~3回 ◦ ensemble は5つの instruction で実施
  19. My Opinion • モデルの学習方法自体は制限も多く改善の余地あり ◦ 学習用のラベルの自動生成は適用範囲が限られる(今回の QA タスクのように きれいに答えがあるケース) ◦

    今回のケースは目立たないが、多少はデータセットにも依存する • 実応用を考えるとリトライのようなマクロでの最適化は必須 ◦ 追加でできることは色々ある。リトライ時に理由をプロンプトに含めて再生成 させる、検索ロジックを変更するなど。 • 検証ステップに小さい LM で対応できた点では価値あり ◦ 小さい LM も LLM の手足として今後も細々使われそう? ◦ とはいえ BERT が出た後みたいに特化モデルやちょっとしたアーキテクチャ変 更でスコア改善していくようになるのはややしんどい
  20. まとめ • RAG の2種類のエラーを高精度で検出できる KALMV を提案 ◦ Retrieval Error と

    Grounded Error ◦ 小さいモデルを検証用に instruction-tuning で学習 • QA系データセットで実験し、ベースラインを大きく改善 ◦ 特に Retrieval Error の回避が貢献 ◦ tuning した小さいモデルで ChatGPT を超える精度を確認 • こういったパーツを利用した、フローの全体最適が進みそう ◦ 今後もまだまだ小さい LM も価値があるかもしれない(知らんけど)
  21. Reference [1] Knowledge-Augmented Language Model Verification, J. Baek, et al.,

    EMNLP 2023, https://arxiv.org/abs/2005.00583 [2] When Not to Trust Language Models: Investigating Effectiveness of Parametric and Non-Parametric Memories, A. Mallen, et al., https://arxiv.org/abs/2212.10511 [3] Check Your Facts and Try Again: Improving Large Language Models with External Knowledge and Automated Feedback, B. Peng, et al., https://arxiv.org/abs/2302.12813