📝

【論文】Chain-of-Note: Enhancing Robustness in RALMs

2024/02/12に公開

Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Modelsという論文を読んだので、メモ的な感覚でブログとして記録します。
「こういうものがあるんだな〜」くらいに認識していただければ。詳細は論文読んだ方が良いです。この論文が正しいということも、自分がこの論文を理解しているという保証もないので批判的に見ていただければと思います。

TL;DR

  • Retrieval-Augmented Language Models(RALMs)のロバスト性向上のためにChain-of-Noting(CoN)というアプローチを提案
  • CoNは検索された文書に対して要約(ノート)を生成し、これらを評価して最終回答を形成するアプローチ
  • 実験結果から、CoTが全体的なQA性能、ノイズ耐性などを向上させることに成功した

問題意識

まず、問題意識について。
本論文ではRALMsには以下の課題があると指摘している。

  • 表層的処理のリスク
    • 言語モデルが直接的に答えを生成する際に、深い理解なしに表層的な情報に依存することがある。したがって、言語モデルは特に複雑または間接的な質問において、質問や文書のニュアンスを容易に見落とす可能性がある。
  • 矛盾する情報を扱う際の困難
    • 矛盾する情報を含む文書に直面したときに、直接的に答えを生成することが難しくなる。
  • 透明性と解釈可能性の低下
    • 直接的な回答生成は、モデルがその結論に至る根拠を理解する上で限定的な洞察しか提供しないので、ユーザーがモデルの結論の根拠を理解することが難しい。
  • 検索された文書への過度の依存
    • 直接生成は、検索された文書の内容に過度に依存する可能性がある。これは、検索された文書がノイズが多い場合や時代遅れの場合に特にしんどい。

対処法: Chain-of-Note

上記の課題をChain-of-Noteという手法を用いて解決を試みる。
特に、以下の2点に焦点を当ててロバストにしようと考える。

  1. ノイズ耐性: 不要な情報が含まれている関連性のない文書を識別し無視する一方で、固有の知識を適切に活用するRALMの能力。
  2. 未知耐性: 問いに対する対応する知識を持っておらず、検索された文書内に関連情報が見つからない場合に「不明」と応答することで、その限界を認識するRALMの能力。

CoNの基本は、検索された文書の一連の読み取りノートを生成し、これらの文書が入力クエリに関連しているかどうかを包括的に評価すること。人間が文書を見てメモを取り、メモを見ながら判断した方が良くなるやろ!的なアプローチでしょうか。
Figure1
図1: CoNによるノートを使用することで正確な回答を導き出す

具体的には、各文書に対して簡潔で文脈に関連する要約またはノートを生成する。
この方法により、モデルは外部文書から引き出された情報の関連性と正確さを体系的に評価することができる。
連続するノートを作成することで、CoNは各文書がクエリにどの程度関連しているかだけでなく、最も信頼性の高い情報を特定し、矛盾する情報を解決する(図1)。
このアプローチは、関連性が低いまたは信頼性が低いコンテンツを効果的にフィルタリングし、より正確で文脈に関連する応答を導き出す。

入力された質問xk個の検索された文書[d_1, \ldots, d_k]に基づき、モデルは複数のセグメント[y_{d_1}, \ldots, y_{d_k}, y]からなるテキスト出力を生成することを目指す。
ここで、(y_{d_i})は、対応する文書(d_i)の読み取りノートを表す。
個々の読み取りノートを生成した後、モデルは情報を統合して統合された最終回答yを作成する。
CoNの実装には、

  1. ノート(y_{d_i})の設計
  2. データの収集
  3. モデルの訓練

の3ステップが必要となる。

ノートの設計

フレームワークは主に、入力された質問に対する検索された文書の関連性に基づいて3種類の読み取りノートを構築する。 (図2)

  • 文書が直接質問に答える場合
    • モデルはこの情報に基づいて最終回答を形成
  • 検索された文書が質問に直接答えないが有用なコンテキストを提供する場合
    • モデルはこの情報を自身の内在的な知識と組み合わせて答えを導き出す
  • 最後に、検索された文書が無関係であり、モデルが十分な知識を持っていない場合
    • デフォルトで「不明」と回答

Figure2
図2: 3種類の読み取りノート

データ収集

人間がノートを作るのが大変なのでChatGPTを使う。

  1. NQ(Natural Questions)トレーニングデータセットからランダムに10kの質問をサンプリング
  2. Few-shotのようなプロンプトを与える
  3. 小さなサブセットに対する人間による評価

NQ以外にもモデルの適応性を確保するために、TriviaQA、WebQ、RealTimeQAを含む3つの追加のオープンドメインデータセットでその性能をテストし、ドメイン外のデータへの一般化能力を示してる。

モデルの訓練

作成したデータを使用してモデルを訓練する。基盤モデルとしてはLLaMa-2 7Bモデルを使用。
指示、質問、文書をプロンプトとして連結し、標準の教師あり学習でノートと回答を生成するようにモデルをトレーニングする。

実験結果

  • 実験方法
    • 使用データセット: NQ、TriviaQA、WebQ、RealTimeQA
    • 評価方法: 全体的なQA性能評価、ノイズ比率に基づくノイズ耐性評価、RealTimeQAを特別ケースとして使用した未知耐性評価
    • 評価指標: Exact Match(EM)、F1 score

使用したモデルはLLaMa-2 w/o IR, DPR + LLaMa-2, DPR + LLaMa-2 with Chain-of-Noteの3種類である。

  • LLaMa-2 w/o IR
    • 質問から直接回答を生成
    • 質問xを回答yに直接変換する関数f : x → yを学習
  • DPR + LLaMa-2
    • モデルが質問だけでなく、取得した文書も含めて回答を生成するように訓練
    • 質問xと取得した文書{d_1, ..., d_k}を回答yに変換する関数f : {x, d_1, ..., d_k} → yを学習
  • DPR + LLaMa-2 with Chain-of-Note
    • 最終回答を形成する前に、取得した各文書に対して読み取りノートを生成する作業が含まれる
    • 質問xと取得した文書{d_1, ..., d_k} からノート {y_{d_1}, ..., y_{d_k}}と最終回答yを生成する関数f : {x, d_1, ..., d_k} → {y_{d_1}, ..., y_{d_k}, y}を学習

これらを比較した結果、表1のように全体的にCoNを搭載したLLaMa2の方が性能が良かった。

Table1
表1: 全体的なQA性能の実験結果. CoNを搭載した時のパフォーマンスが下に来ている

次に、ノイズ比率ごとにどのくらいCoNが効くかの評価。
ノイズ比率(Noise Ratio)は、検索された文書のうち、どれだけがノイズ(つまり、クエリに対して関連性がない情報)であるかを示す指標。
ノイズが多いほど効くよね。

Table2
表2: ノイズ耐性の評価

ノイズ耐性の評価において、検索によって得られたノイズの多い文書と完全にランダムな文書を用いたシナリオを比較し、CoNフレームワークを導入したRALMが、どちらのシナリオにおいても従来のRALMよりも優れたパフォーマンスを示した(図3)。
特に、意味的に関連するノイズの多い文書が言語モデルを誤った情報の生成に誘導しやすい。​​

Figure3
図3: ノイズのシナリオ比較

まとめ

「Chain-of-Noteという人間の思考を模範したようなプロセスで文書に関するノートを作り、それを参照しながら回答を行うとミスを防げる。」というお話だと思ってます。
学習が大変になりそうだし、どこまで汎用性があるのかわかりませんが、CoTでもそうですけど「人間の思考を模範する」というアプローチをとって精度が向上するのが個人的に面白い&気持ち悪いと感じます。
(まあ、CoNはもっといい手法がありそうなので流行らないでしょう...)

Discussion