Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

自己紹介 name: Kentaro Nakanishi id: @cfiken DS at ABEJA ひとこと: 帰ったらマリオRPGのリメイ クをやります

Slide 3

Slide 3 text

今日の論文紹介 ● 基本情報 ○ 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 のための補助モデルを学習する、みたいなものが多く(今回のものもそ う)、その中でバランス良さそうだった

Slide 4

Slide 4 text

Background

Slide 5

Slide 5 text

背景: LLM LLM: Large Language Models デカァァァァァいッ 説明不要!!

Slide 6

Slide 6 text

背景: LLM が抱える課題 課題は依然としてある ● hallucination: 信頼性のない、事実的に誤ったテキスト出力

Slide 7

Slide 7 text

背景: RAG RAG: Retrieval Augmented Generation ● (主に LM の文脈で)テキスト生成の際に情報の検索 (Retrieval) を組み合わせることで期待する結果を得るためのアプローチ ● hallucination の防止や特定ドメインの知識の強化、古い情報の更 新などが狙いであることが多い LLM Response Query Data Source Retriever

Slide 8

Slide 8 text

ひとくちに RAG といっても幅広い 背景: RAG の構成要素 Data / Query Retrieval Generation Strategy ● Data / Query: 外部データ・入力の取扱い ● Retrieval: 外部データの検索・選択 ● Generation: 外部データを使った生成 ● Strategy: 上記をどう組み合わせるか

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

ひとくちに RAG といっても幅広い ● 複数ステップありそれぞれ重要 ● Generation ○ Retrieval 結果をどう使ってテキスト生成するか ○ Prompt Engineering ● Strategy ○ 上記3つをどのように組み合わせるか ○ Retrieval や Generation をやり直す ○ 上手く行かない理由から Query を再拡張する 背景: RAGの構成要素 Data / Query Retrieval Generation Strategy

Slide 11

Slide 11 text

Knowledge-Augmented Language Model Verification

Slide 12

Slide 12 text

1ページにまとめると ● モチベーション ○ RAG における (1) Retrieval Error, (2) Grounding Error をなんとかしたい ● 提案内容 ○ (1), (2) を検証する Verification モデルとして KALMV を提案、instruction -tuning で学習する。 ○ Generation 後にそれらを入力して検証を行い、必要に応じてステップを戻る。 ● 実験結果 ○ 4つの QA タスクで精度を平均的に改善✌ ○ 特に Retrieval Error 対策が効いてそう

Slide 13

Slide 13 text

Introduction 焦点となる RAG の課題 ● Retrieval Error: 取得した外部データとクエリの関連が弱い ● Grounding Error: 外部データを活用しない生成をしてしまう

Slide 14

Slide 14 text

Introduction 解決の方向性 ● Retrieval Error, Grounding Error が発生してしまっていないかを 検証する(小さい)Verifier LM を訓練する。 ● 生成を行うターゲット LM の入力と出力が得られれば良いので、任 意の LM に適用可能でターゲット LM の追加学習が必要ない✌

Slide 15

Slide 15 text

Introduction 先行研究とのコア差分? ● 正直色々やっててコアポイントが分かりづらいが、一番は 「Retrieval Error の検出」による改善のように見える ● Verifier LM 作成 + 検証 & 修正プロセス提案 + ensemble テク ニックで精度改善? ● 論文で提示されている結果は良さそう

Slide 16

Slide 16 text

提案手法: 事前準備 入力を , 外部データ集合を  とする。 通常の LM による入力  に対する推論を とすると、RAG での推論は Retriever を使って、

Slide 17

Slide 17 text

提案手法: Retrieved Knowledge Verifier の定義 入力、外部データ、出力の triplet を作成: Verifier (LM) に、外部データ  が入力  に関連するかを検証す る instruction  と上記 triplet を入力とし推論する: ここで、  は出力で、関連があるかないかの二値変数。

Slide 18

Slide 18 text

提案手法: Generated Answer Verifier の定義 入力、外部データ、出力の triplet を作成: 先程と同様に、別の Verifier LM と、返答が外部データに基づいて いるかを検証させる instruction  を用意し、上記 triplet と合 わせてモデルに入力する ここで、  は出力で、外部データが正しく反映されているかの二 値変数。

Slide 19

Slide 19 text

提案手法: Verifier 統合 (KALMV) 2つ作るの面倒なので統合する。o は (A, B, C) の3つのどれか。

Slide 20

Slide 20 text

提案手法: 学習 (instruction-tuning) 既存データセットから自動で instruction-tuning 用の入力とラベ ルのペアデータを作成する。      と o ● retrieved knowledge が正しい回答を含んでいなければ o = A ● generated answer が retrieval knowledge とトークンの重な りがなかったら o = B  (IMO: コード見たけど分からなかった) ● それ以外は正解パターンで o = C 上記データに instructions を加えてモデルを学習させる。 ※上記をちゃんとやるには entity の情報が必要で、これができる データセットを使用しているっぽい

Slide 21

Slide 21 text

提案手法: 推論時の工夫1 アンサンブル LM は input prompt に対してセンシティブであるという知見か ら、複数の instruction prompt を用意してアンサンブルする。

Slide 22

Slide 22 text

提案手法: 推論時の工夫2 失敗時の修正 Verifier モデルを使って Error を検知した場合に、該当ステップに 戻って再実行する。 ● Retrieval Error: 前回の retrieval 結果を除いて、再度検索し スコアの高いものを使用してやり直す。 ● Grounded Error: 生成をやり直す。top-k sampling を使用し ているため同じ結果にならない想定。 どちらの場合も上限回数を決めて実施。

Slide 23

Slide 23 text

検証プロセス タスクとデータセット ● Open Domain Question Answering ○ Natural Questions, Hotpot QA ○ 外部データ: Wikipedia ● Knowledge Graph Question Answering ○ WebQSP, Mintaka ○ 外部データ: Wikidata

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

検証プロセス ベースラインと提案モデル ● 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

Slide 26

Slide 26 text

検証プロセス ベースラインと提案モデル ● 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

Slide 27

Slide 27 text

検証プロセス その他 ● 評価指標は一般的な 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 で実施

Slide 28

Slide 28 text

実験結果: Open Domain QA & Knowledge Graph QA

Slide 29

Slide 29 text

実験結果: Knowledge Graph QA w/ Wikipedia

Slide 30

Slide 30 text

実験結果 ● ベースラインとスコアに大きな差がある ○ 過学習を疑うレベル(実際少しはありそう)。 ○ 他との差分から Retrieval Error の検知 & 再検索が効いているっぽい。 ● 実際 Verification 結果を見るとエラーの多くは Retrieval 由来

Slide 31

Slide 31 text

実験結果: Ablation Study ● Natural Questions での結果。アンサンブル有無、Retriever, LM の種類での差を調査。 ● ChatGPT < FLAN から、instruction-tuning の効果が分かる

Slide 32

Slide 32 text

実験結果: Transfer Settings ● Source で学習して Target で推論した場合の結果。 ○ 論文曰く ”generalize without much performance degradation” とのこと。

Slide 33

Slide 33 text

My Opinion ● モデルの学習方法自体は制限も多く改善の余地あり ○ 学習用のラベルの自動生成は適用範囲が限られる(今回の QA タスクのように きれいに答えがあるケース) ○ 今回のケースは目立たないが、多少はデータセットにも依存する ● 実応用を考えるとリトライのようなマクロでの最適化は必須 ○ 追加でできることは色々ある。リトライ時に理由をプロンプトに含めて再生成 させる、検索ロジックを変更するなど。 ● 検証ステップに小さい LM で対応できた点では価値あり ○ 小さい LM も LLM の手足として今後も細々使われそう? ○ とはいえ BERT が出た後みたいに特化モデルやちょっとしたアーキテクチャ変 更でスコア改善していくようになるのはややしんどい

Slide 34

Slide 34 text

まとめ ● RAG の2種類のエラーを高精度で検出できる KALMV を提案 ○ Retrieval Error と Grounded Error ○ 小さいモデルを検証用に instruction-tuning で学習 ● QA系データセットで実験し、ベースラインを大きく改善 ○ 特に Retrieval Error の回避が貢献 ○ tuning した小さいモデルで ChatGPT を超える精度を確認 ● こういったパーツを利用した、フローの全体最適が進みそう ○ 今後もまだまだ小さい LM も価値があるかもしれない(知らんけど)

Slide 35

Slide 35 text

ありがとうございました

Slide 36

Slide 36 text

Figure 3 F1, Recall, Precision 別で実験結果をプロットしたもの。 横軸の Rectifying Steps は Error 検知時のリトライ回数。

Slide 37

Slide 37 text

Table 7: 各検証結果タイプ別サンプル

Slide 38

Slide 38 text

Table 7: 各検証結果タイプ別サンプル

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

No content