序文
- 長い間ブログを投稿していなかったので、今日検索強化に関する以前の概要を見つけて、より意味のあるものであることがわかりました。
- モデル:
Knn-LM
->REALM
->DPR
->RAG
->FID
->COG
->GenRead
->REPLUG
->Adaptive retrieval
Knn-LM
洞察力
- LM は通常、次の 2 つの副問題を解決します。
- 文の接頭辞を固定サイズの表現にマッピングする
- これらの表現を使用してテキスト内の次の単語を予測します
- 仮説:表現学習問題は予測問題よりも簡単かもしれない(次の単語の予測に表現を使用する)
- k 近傍 (kNN) モデルを使用して次の単語の分布を線形補間することで、事前トレーニングされた LM を拡張する
kNN-LM
アプローチを紹介します。
方法
データストア: ( K , V \mathcal{K,V}K 、V )、 DDのすべてのトレーニング サンプルから構築されたすべてのキーと値のペアのセットD
- キーと値のペア( ki , vi ) (k_i, v_i)( k私は、v私は)、キーki k_ik私はコンテキストf ( ci ) f (c_i)のベクトル表現です。f ( c私は)と値vi v_iv私はターゲット単語wi w_iですw私は
推論: 最近傍分布pk NN p_{kNN}を内挿しますpkNN _モデル分布p LM p_{LM}を使用pLM _調整されたパラメーターλ \lambdaを使用するλ を使用して最終的なk NN − LM kNN-LMkNN _−L M分布(入力コンテキストxx×)
-
p LM ( y ∣ x ) p_{LM}(y|x)pLM _( y ∣ x ) : 入力コンテキストxxxモデルは次の単語p LM (y ∣ x ) p_{LM}(y|x)pLM _( y ∣ x )
-
pk NN ( y ∣ x ) p_{kNN}(y|x)pkNN _( y ∣ x ) : k 最近傍分布
- 負の距離d ( q , ki ) d(q,k_i)のソフトマックスに基づいて各ターゲットの確率を計算します。d ( q ,k私は)
- 取得されたターゲット内のすべての出現にわたる各語彙項目の確率質量を集計する
結果
パフォーマンスオンWIKITEXT-03
-
パフォーマンス
BOOKS
データから最近傍を取得することは、データに対するトレーニングの代わりになるでしょうか?
- でのトレーニング
WIKI-100M
とリトリーブは、WIKI-100B
でのトレーニングよりも優れています。WIKI-3B
- これまで以上に大規模なデータセットで言語モデルをトレーニングするのではなく、より小規模なデータセットを使用して表現を学習し、
kNN-LM
大規模なコーパスを使用して表現を拡張できます。
kNN の取得に使用されるデータの量はパフォーマンスにどのような影響を与えますか?
ドメイン適応
- トレーニング
WIKI-3B
とパフォーマンスBOOKS
最近傍検索の調整
キー機能
クエリごとの近傍数 (図 4) と補間パラメーター (図 5)
分析
kNN-LM
最も役立つ例には、通常、まれなパターンが含まれています- Nグラムベースの方法ではなくニューラル表現を使用する必要がある
- LM は明示的記憶を使用して置換するトレーニング データセットを記憶できますか?
- LM はすべてのトレーニング データを記憶する能力があります (図 8) が、一般化は苦手です
レルム
洞察
事前トレーニング済み言語モデルの欠点
- どのような知識がネットワークに保存され、どこに保存されているかを判断するのは困難です。
- 知識を保存するスペースはネットワークのサイズによって制限されます
前作の限界
- これまでの研究では、ニューラル ネットワークに離散検索ステップを追加する利点が実証されていますが、フレームワークを言語モデルの事前トレーニングに適用しなかったそして学習していないレトリバーを雇用した大規模な文書コレクションを処理するため
- フレームワークからインスピレーションを得て
retrieve relevant documents and extract an answer from the docs
、それを言語モデルの事前トレーニングに拡張します
この記事ではREALM
そのretrieve-then-predict
方法を提案します
- より解釈しやすいモジュール形式で知識を取得します
- 鍵:教師なしテキストからのパフォーマンスベースの信号を使用してレトリバーを訓練する
比較した方法:
- 知識を暗黙的に保存する非常に大規模なモデル(例: T5)
- 外部知識にアクセスするためにナレッジ検索ツールも使用しますが、よりヒューリスティックな方法で検索を実装するアプローチ
方法
事前トレーニングと微調整の両方で、REALM
入力 x を受け取り、可能な出力 y にわたる分布 p(y | x) を学習します。
-
事前トレーニング: マスクされた言語モデリング
-
微調整: オープン QA
-
2段階:
-
取得: 分布p ( z ∣ x ) p(z|x)からのサンプルp ( z ∣ x )
-
予測: p ( y ∣ z , x ) p(y|z,x)p ( y ∣ z ,×)
-
yy が生成される全体的な可能性y
-
ナレッジレトリーバー
-
BERT スタイルのトランスフォーマーを使用して埋め込み関数を実装する
- どこ
知識拡張エンコーダー
-
事前トレーニング: MLM 損失を使用する
- ベクトルの長さは固定ではありませんが、内積を使用できますか? デフォルトではすべて正規化されていますか?
-
Open-QA の微調整: 答えがyyであると仮定します。y は、何らかの文書zz内で連続したトークンのシーケンスとして見つかります。z
-
BERTSTART ( s ) BERT_{START(s)}BERT _START(秒) _ _とBERTEND ( s ) BERT_{END(s)}BERT _終了(秒) _は、それぞれスパンの開始トークンと終了トークンに対応する Transformer 出力ベクトルを示します。
-
正しいスコアが大きい場合、誤ったスコアが小さいことを確認する必要はないでしょうか?
-
E mbeddoc Embed_{doc}を更新しないでください埋め込む_ _ _ドクター_簡単にするために
-
経験値
事前トレーニング: 8 つの候補ドキュメント、2 つのコーパスの選択肢:(1) Wikipedia (2)CC-News
微調整: 上位 5 位の候補を検討します
結果
アブレーション研究
- 完全一致: 予測された回答は、参照回答との完全一致によって評価されます。
- Zero-shot Recall@5: 微調整を適用する前に、上位 5 件の検索でゴールドアンサーが表示される頻度。
ケーススタディ
北朝鮮
洞察力
- したがって、ORQA 以前のオープンドメイン QA では、高密度検索手法が TF-IDF/BM25 を上回るパフォーマンスを示すことはありませんでした。
- ORQA の 2 つの弱点
- ICT の事前トレーニングは計算集約的であり、通常の文章が目的関数の質問の適切な代用となるかどうかは完全には明らかではありません
- コンテキスト エンコーダーは質問と回答のペアを使用して微調整されていないため、対応する表現は最適ではない可能性があります。
追加の事前トレーニングを行わずに、質問と文章 (または回答) のペアのみを使用して、より優れた高密度埋め込みモデルをトレーニングできますか?
- 比較的少数の質問とパッセージのペアを使用して適切なトレーニング スキームを開発することに重点を置きます(微調整のみ)
2 段階のフレームワークである DPR を提案します。
- コンテキスト取得者
- 機械のリーダー
方法
エンコーダー: 2 つの独立したBERT
トレーニング:
-
目標: 関連する質問とパッセージのペアの距離が小さくなるようなベクトル空間を作成します。
- バッチ内のネガ
実験
ソース文書: 2018 年 12 月 20 日の Wikipedia ダンプ (パッセージとして 100 語、タイトル + パッセージ)
QA データセット: Natural Question
; TriviaQA
; WebQuestion
; CuratedTREC
;SQuAD v1.1
- 大きい:
NQ, TriviaQA, SQuAD
- 小さい:
TREC, WQ
結果
検索
**
**
エンドツーエンドの QA
当社の QA システムは、レトリーバーのほかに、文章から回答範囲を抽出するニューラル リーダーで構成されています。
- と を
BERT
予測するために使用しますstart_token
end_token
- 通常、取得者の精度が高いほど、最終的な QA 結果が向上します。
ラグ
洞察力
1. 事前トレーニングされたモデルは知識を保存する強力な能力を持っていますが、知識にアクセスして正確に操作する能力はまだ限られているため、知識集約型タスク向けのタスク固有のアーキテクチャほど優れていません。
- 記憶を簡単に拡張したり修正したりすることができない
- 予測に対する洞察を直接提供できない
- 「幻覚」を引き起こす可能性がある
2.パラメトリックメモリとノンパラメトリック(つまり、検索ベースの)メモリを併用すると、いくつかの問題を解決できる
- 知識は直接変更および拡張でき、アクセスした知識は検査および解釈できます。
3. (マスクされた言語モデルに基づく) この形式を利用しましたが、オープンドメインの抽出的質問応答のみを検討しましREALM
たORQA
したがって、この記事では、この方法を NLP の主力である seq2seq モデルに拡張します。
- パラメトリック メモリ: 事前トレーニングされた seq2seq トランスフォーマー
- ノンパラメトリック メモリ: Wikipedia の密ベクトル インデックス (事前訓練されたリトリーバーを通じて取得。つまり DPR)
- 2つの形式が提案されており
RAG-Sequence
、RAG-Token
RAG シーケンス モデル
は、取得した同じドキュメントを使用して完全なシーケンスを生成します。
- 取得された上位 k 個のドキュメントはそれぞれ、生成において特定の役割を果たします。
- 各ドキュメントはシーケンス全体に貢献します
RAGトークンモデル
ターゲット トークンごとに異なる潜在ドキュメントを使用します。
- 出力 (シーケンス) 内の各トークンは、異なるドキュメントzzを利用できます。z
レトリーバー:DPR
DPR の事前トレーニング済みバイ エンコーダーを使用して、取得機能を初期化し、ドキュメント インデックスを構築します。
- ドキュメントインデックスをノンパラメトリックメモリと呼びます。
ジェネレーター: BART
使用BART-large
し、単に入力xxを連結するだけですxと取得されたコンテンツzzz
トレーニング
どのドキュメントを取得するかについて直接監督することなく、取得コンポーネントと生成コンポーネントを共同でトレーニングします。
- 入出力ペア( xi , yi ) (x_i, y_i)の微調整トレーニング コーパスを使用する( ×私は、y私は)
- ドキュメント エンコーダ (コストがかかり、必要ありません) を固定したままにし、クエリ エンコーダとジェネレータのみを微調整します。
デコード
-
RAG-Token
:ビームによって生成され、各トークンの確率は既知です -
RAG-Sequence
:各ドキュメントの出力yyを生成しますy、セットYYY._ _ 一部のドキュメントではyy がy の場合、他のドキュメントは生成されない場合があります。すべてのドキュメントyyに対してこの計算を行ってみましょうyの確率yyyの確率は、 ∑ z ∈ top − kp ( z ∣ x ) p ( y ∣ x , z ) \sum_{z\in top-k}p(z|x)p(y|x,z) と書くことができます。)∑z ∈トップ− k _ _p ( z ∣ x ) p ( y ∣ x ,z )。これは呼ばれますThorough Decoding
- ただし、生成されたシーケンスが長い場合は、YYY は非常に大きいため、何度も計算する必要があります。効率を高めるために、p ( y ∣ x , zi ) p(y|x,z_i)p ( y ∣ x ,z私は) x、zix、z_iを渡すと 0 に設定されます。× 、z私はyyは生成されませんy、これはと呼ばれます
Fast Decoding
- ただし、生成されたシーケンスが長い場合は、YYY は非常に大きいため、何度も計算する必要があります。効率を高めるために、p ( y ∣ x , zi ) p(y|x,z_i)p ( y ∣ x ,z私は) x、zix、z_iを渡すと 0 に設定されます。× 、z私はyyは生成されませんy、これはと呼ばれます
4 つの知識集約型タスクで RAG をテストします。
- すべての実験では、検索のための知識源として Wikipedia を使用します。
- 各ドキュメントは 100 単語のチャンクに分割されます
- top-k、k は 5 または 10
オープンドメインQA
-
抽象的質問応答(MSMARCO)
- RAG は BART よりも優れており、最適なモデルに近い
- 金の通路を利用した最適モデル
- RAG は BART よりも優れており、最適なモデルに近い
-
ジェパディ QG(ジェパディ)
- RAG-Token が最高のパフォーマンスを発揮する理由
- 複数のドキュメントのコンテンツを結合する
- ノンパラメトリック コンポーネントは生成をガイドし、パラメトリック メモリに保存されている特定の知識を引き出します。(各本の最初のトークンが生成された後、ドキュメントは事後平坦化されます)。
- RAG-Token が最高のパフォーマンスを発揮する理由
-
事実確認(FVR3、FVR2)
- FVR3 (3 カテゴリ) の場合、RAG に大きな違いはなく、SOTA メソッドには多くの設計とトレーニングが必要です
- FVR2 (2 カテゴリー) の場合、RAG に大きな違いはなく、SOTA メソッドはゴールド証拠を使用します。
FID
洞察
以前の方法の欠点:
- 検索ベースのアプローチは、以前は、抽出モデル(
DPR
および を含むREALM
) を使用したオープンドメインの質問応答のコンテキストで検討されていました。- 抽出モデルを使用する場合、複数の文章からの証拠を集約して組み合わせるのは簡単ではありません
検索+生成を提案します。
方法
2 つのステップ:
- 検索:
- BM25/DPR
- 読む:
- 各質問 + パッセージは、エンコーダーによって他のパッセージから独立して処理されます。
- デコーダは、取得されたすべてのパッセージの結果の表現を連結してアテンションを実行します。
- エンコーダーではパッセージを独立して処理しますが、デコーダーでは共同で処理します
- 取得されたすべてのパッセージの結果の表現を連結した クロスアテンションを実装します(個人的な考え)。
- しかし、コードを見てみると、生成時にすべてのパッセージがつなぎ合わされてモデルに入力されていることがわかり、非常に驚きました。
- アップデート: はい、クロスアテンションを通じて。著者はエンコーダの処理部分を更新し、各パッセージを個別に処理した後、大きなシーケンスに編成してデコーダに表示しました。この方法は入力長の制限をある程度克服できるので参考にはなりますが、個人的にはエンコーダ・デコーダアーキテクチャにのみ適していると考えており、クロスアテンションの計算量が直線的に(長さの増加はなく)増加してしまうと思います。自注意)
- しかし、コードを見てみると、生成時にすべてのパッセージがつなぎ合わされてモデルに入力されていることがわかり、非常に驚きました。
- モデル: T5
結果
- 生成モデルは、抽出的アプローチと比較して、複数のパッセージからの証拠を集約する必要がある場合にうまく機能するようです
- 100 パッセージでテストしながら、さまざまなパッセージ数でトレーニングします。
コグ
洞察力
既存のテキスト コレクションからテキスト セグメントをコピーしてテキスト生成を再調整する
- 従来のニューラル言語モデルにおける次のトークンの予測は、一連のコピー アンド ペースト操作に置き換えられます。
改善: フレーズテーブルを動的に学習し、内容を追加、削除、変更、確認したり、固定フレーズを動的フレーズに変換したりできます。
方法
各タイム ステップで、適切なフレーズが選択され、それに応じて現在のプレフィックスに追加されます。
-
ドキュメントD i D^iの場合Di、フレーズk = D s : eik = D^i_{s:e}k=Ds : e私は長さ e − s + 1 の を抽出できます。ここで、sssとeee は文書内の語句の開始位置と終了位置をそれぞれマークします。
-
ソーステキストコレクション内のすべての語句をP \mathcal{P}として示しますP –>{ ( k , pk ) ∣ k ∈ P } \{(k,p_k)|k \in \mathcal{P}\}{( k ,pk) ∣ k∈P }
-
pk = フレーズ エンコーダ ( s , e , D i ) p_k = フレーズ エンコーダ(s, e, D^i)pk=フレーズエンコーダー( s 、_ _ _ _ _ _ _ _え、D私)
-
フィットネススコア:
- チーチーq私は接頭辞x < i x_{<i}の表現ですバツ<私
-
-
適切なフレーズが利用できないシナリオをサポートするために、コンテキストに依存しないトークン埋め込み( w , vw ) ∣ w ∈ V {(w, v_w)|w ∈ V }も追加します。( w 、vw) ∣ w∈標準 LM のV をフレーズ テーブルに追加
モデルは 3 つの主要コンポーネントで構成されます。
-
プレフィックスを固定サイズの表現にマッピングするプレフィックス エンコーダ
- 因果関係に注意を払って標準の Transformer アーキテクチャを使用する ( GPT-2 )
- 最後のトークンの非表示状態をプレフィックス表現として使用しますqi q_iq私は
-
ソーステキストコレクション内のフレーズのベクトル表現を計算するコンテキスト依存のフレーズエンコーダ
-
ドキュメントD = D 1 , . 。。、DmD=D_1、.。。、D_mD=D1、... 、Dメートル長さm:
-
まず、深い双方向トランスフォーマ ( BERT ベースケース) を適用して、コンテキスト化されたトークン表現D m × dt D^{m \times d_t} を取得します。Dm × dた
-
2 つの MLP モデルを適用します。MLP start MLP_{start}MLP _ _スタート_ _ _ _およびMLP 終了 MLP_{end}MLP _ _終わり_ _、DDを変換するDをそれぞれ開始トークン表現と終了トークン表現に変換します。
-
各フレーズD s : e D_{s:e}Dさ:え、対応する開始ベクトルと終了ベクトルの連結をフレーズ表現として使用します。
-
-
-
標準のニューラル言語モデルで使用されるものと同様の、コンテキストに依存しないトークン埋め込みのセット
- スタンドアロン トークンを使用して出力を構成する汎化機能を保持するため
- 従来のコンテキストに依存しないトークン埋め込みV ∈ R ∣ V ∣ × d V ∈ R^{|V| を追加します。\xd}V∈R∣ V ∣ × dをフレーズ テーブルに追加します。
- 原文コレクションに適切な語句がない場合に便利です。
GPT-2 によって生成された表現が BERT によって生成された表現と一致するのはなぜですか? 2 つは同じ表現空間にありますか?
トレーニング
文書 D は n 個のフレーズD = p 1 , ... に分割されています。。。, pn D = p_1, . 。。、p_nD=p1、... 、pん
-
次のフレーズ予測のトレーニング損失( next-phrase precision )
- P k \mathcal{P_k}Pkソース文書内のすべてのフレーズで構成されますD k D^kDk
-
トークンレベルの生成機能を維持するために、標準のトークンレベルの自己回帰損失 (次のトークン予測)を使用して COG もトレーニングします。
トレーニング損失は、これら 2 つの損失の合計です。
結果
標準言語モデリング
推論速度
- エンコード時間のコストは含まれていません
- 標準の Transformer ベースラインと同等の推論効率を実現します
- の推論レイテンシーは
kNN-LM
Transformer よりもはるかに高く、COG
- の推論レイテンシーは
ケーススタディ
ドメイン適応
COG
ソース テキスト コレクションを切り替えるだけで、単一のモデルをさまざまなドメインに特化させることができます。
拡大語句索引
アイデア
Levenshtein Transformer
: このモデルが生成されると、生成された結果を追加、削除、または変更できます ( NeurIPS 2019
)
GenRead
洞察
ICLR 2023: 8 8 8 10
取得してから読み取るパイプラインの 3 つの欠点
- 検索対象の候補文書はチャンク化され (100 単語など) 固定されているため、検索された文書には質問とは無関係なノイズの多い情報が含まれる可能性があります。
- セマンティクスに従って切り詰めたり、セマンティクスに従ってチャンクに分割したりできます
- 質問と文書の表現は、通常、最新の 2 タワーの高密度検索モデルでは独立して取得されるため、それらの間の 浅い対話のみがキャプチャされます。
- たとえば、質問がエンコードされた後、ドキュメントをエンコードするときに、各レイヤーで質問のエンコードを確認し、最終的にスコアを計算することができます。
- 深い交流は必要なのでしょうか?浅い効果と深い効果とは何ですか?
- 大規模なコーパスにわたる文書検索では、検索モデルが最初にすべての候補文書をエンコードし、各文書の表現を保管する必要があります。
- ただし、検索を行わずに大規模なモデルを使用しても、知識の量はパラメータの量に関連し、説明がより困難になるため、モデルのサイズによって制限されます。
- 生成検索を使用してこの問題を解決できるでしょうか?
LLM を活用して、特定の質問に対してコンテキストに応じたドキュメントを直接生成することを提案します。2 つの利点があります。
-
生成されたコンテキスト ドキュメントには、上位に取得されたドキュメントよりも正解が含まれることが多くなります。
- 大規模な言語モデルは、すべての質問とドキュメントのコンテンツ間でトークンレベルの深いクロスアテンションを実行することにより、コンテキストに応じたドキュメントを生成します。
-
私たちのアプローチは、新しい外部情報をまったく組み込んでいないにもかかわらず、大規模な言語モデルから直接答えを生成するよりも大幅に優れています。
-
主な理由は、ドキュメントレベルのコンテキストを生成するタスクが因果言語モデリングの事前トレーニングの目的に近いため、モデルパラメータに保存された世界の知識をより有効に活用できるためです。
-
ドキュメント生成の実際のパフォーマンス保証はありますか? 論理的にそれを保証できるでしょうか? 幻覚が強まるのでしょうか?(幻覚が現れる)
-
方法
2つのステップ:
-
最初に LLM に、特定のクエリに関してコンテキスト ドキュメントを生成するように促します。
-
InstructGPT
生成されたドキュメントを読み取り、最終的な答えを予測します (ゼロショットのような大規模なモデル、またはFID
微調整のような小規模なモデル)
ゼロ設定:
- まず、大規模な言語モデル (
InstructGPT
) に、貪欲なデコード戦略を使用して、指定された質問に基づいてドキュメントを生成するように指示します。 - 生成された文と入力された質問を使用して、大規模な言語モデルから最終的な回答を生成します。
監視対象設定:
大規模な言語モデルから生成されたドキュメントが教師あり設定にどのようなメリットをもたらすかを調べてください。
FiD
監視設定下で生成されたドキュメントを閲覧するなど、小規模なリーダー モデルを活用します(リーダーを微調整します)。- 取得したドキュメントのサイズをスケーリングすると、パフォーマンスが向上する可能性があります (取得モデルの場合)
- しかし、多様なドキュメントを作成するのは困難です
クラスタリングベースのプロンプト:
- ステップ 1: 質問ごとに 1 つの初期ドキュメントを取得する
- 今、質問と文書のペア集合{ qi , di } i = 1 ∣ Q ∣ \{q_i,d_i\}_{i=1}^{|Q|} を持っています。{ q私は、d私は}i = 1∣ Q ∣( QQQはトレーニング分割の一連の質問です)
- ステップ2: 各質問とドキュメントのペアをエンコードし、K 平均法クラスタリングを実行します。
- ステップ 3: k 個のドキュメントをサンプリングして生成する
- 各クラスタ c から n(ハイパーパラメータ = 5) 個の質問とドキュメントのペアをサンプルします。 { qc 1 , dc 1 ;として示されます。qc2、dc2; 。。。; qcn , dcn } \{qc1, dc1; qc2、dc2; ...; qcn、dcn\}{
q c 1 ,d c 1 ;q c 2 、d c 2 ;... ;q c n 、dcn } _ _
- クラスターは q と d の関係を表すことができますか?
- 入力: { qc 1 } { dc 1 } 。。。{ qcn } { dcn } { inputquestion } \{qc1\} \{dc1\} ... \{qcn\} \{dcn\} \{質問の入力\}{ q c 1 } { d c 1 } ... { q c n } { d c n } { 入力} _ _ _ _ _ _ _ _ _
- 出力: ドキュメント
- K 個のクラスター -> K 個の生成されたドキュメント
- これは大丈夫ですか?使用される <q,d> ペアは質問に依存せず、質問内のすべての質問で同じです。質問が異なる場合、プロンプト内の <q,d> 間の関係は同じであるため、生成されたドキュメントは質問の特定の側面に関連している可能性があります。
- 各クラスタ c から n(ハイパーパラメータ = 5) 個の質問とドキュメントのペアをサンプルします。 { qc 1 , dc 1 ;として示されます。qc2、dc2; 。。。; qcn , dcn } \{qc1, dc1; qc2、dc2; ...; qcn、dcn\}{
q c 1 ,d c 1 ;q c 2 、d c 2 ;... ;q c n 、dcn } _ _
結果
ゼロショット
監視設定
InstructGPT + FiD
(FiD
ターゲット データセットのトレーニング分割で微調整されます)
その他のタスク
- ファクトチェック: 与えられた事実に基づく記述と文脈上の文書との間の意味上のギャップが小さい
ケーススタディ
- 検索の問題が明らかになり、検索された文書と質問は密接な関連性がありませんが、一部の単語が類似性を比較的高くする役割を果たしている可能性があります。
- 通常、生成はプロンプトに基づいて行われ、接続はより緊密になります。
リプラグ
序文
- この論文では、
REPLUG
言語モデルをブラックボックス検索の拡張機能として扱う言語モデル アーキテクチャを提案します。ではREPLUG
、取得されたドキュメントのみが元の入力の前に結合され、以前のように言語モデルのパラメーターを更新する必要はありません。このアーキテクチャでは、レトリーバーを更新することでパフォーマンスをさらに向上させることができます。
リプラグ
- 入力コンテキストを与える
- REPLUG は最初に外部リソースD = { d 1 , … , dm } D=\{d_1,\dots,d_m\} を取得します。D={
d1、…、dメートル}いくつかの関連文書を取得しました
- ツインタワー エンコーダ (共有パラメータ) に基づく高密度検索を使用してドキュメントを取得し、エンコーダを使用して入力xxをエンコードします。xとドキュメントddd
- ドキュメントと入力の埋め込みは、各トークンの最後の隠れ層式の平均です。
- cos類似度からxxを計算するxとdddの相関: s ( d , x ) = cos ( E ( d ) , E ( x ) ) s(d,x) = cos(E(d),E(x))s ( d ,×)=cos ( E ( d ) 、E ( × ))
- ドキュメントの埋め込みを事前に計算し、それを使用して
FAISS
上位 K 個のドキュメントを迅速に検索します
- 次に、取得した各ドキュメントを入力コンテキストと連結し、それを大規模なモデルに並行してフィードします。
- モデルの入力制限により、取得したすべてのドキュメントを入力xxと結合することはできません。スプライスするx
- 集約戦略を使用すると、スプライシング時に、各上位 k ドキュメントがxxにスプライスされます。xを先頭に付けて、スプライシング結果をそれぞれ言語モデルに入力します。
- 最後に、各並列入力を集約して得られる予測確率は、
- 上記で別途計算した結果を集計する
- 与えられたコンテキストに「xx」と入力しますxおよび top-k 関連のドキュメント コレクションD ' D^{'}D'、次のトークンyyyの生成確率は加重平均によって決定されます。
- p ( y ∣ x , D ′ ) = ∑ d ∈ D ′ p ( y ∣ d ∘ x ) ⋅ λ ( d , x ) p(y|x,D^{'}) = \sum_{d \in D ^{'}}p(y|d \circ x) \cdot \lambda(d,x)p ( y ∣ x ,D) _=∑d ∈ D「p ( y ∣ d○×)⋅λ ( d ,×)
- ここで、λ ( d , x ) \lambda(d,x)λ ( d ,x )はdddとxxx類似度s ( d , x ) s(d,x)s ( d ,x )結果
softmax
_
- ここで、λ ( d , x ) \lambda(d,x)λ ( d ,x )はdddとxxx類似度s ( d , x ) s(d,x)s ( d ,x )結果
- p ( y ∣ x , D ′ ) = ∑ d ∈ D ′ p ( y ∣ d ∘ x ) ⋅ λ ( d , x ) p(y|x,D^{'}) = \sum_{d \in D ^{'}}p(y|d \circ x) \cdot \lambda(d,x)p ( y ∣ x ,D) _=∑d ∈ D「p ( y ∣ d○×)⋅λ ( d ,×)
- 与えられたコンテキストに「xx」と入力しますxおよび top-k 関連のドキュメント コレクションD ' D^{'}D'、次のトークンyyyの生成確率は加重平均によって決定されます。
- 上記で別途計算した結果を集計する
REPLUG LSR: デンス・レトリーバーのトレーニング
REPLUG LSR
REPLUG
の拡張バージョンとして見ることができます。でREPLUG
使用する取得は言語モデルに十分に適していない可能性があるため、ここでは言語モデル自体によってフィードバックされる監視信号を使用して、 での取得を調整しますREPLUG
。
- ここでの監視信号により、どのような種類の文書を取得する必要があるかがわかります。
本旨:私たちのアプローチは、言語モデルの出力シーケンスの複雑さの確率に一致するように、取得されたドキュメントの確率を調整すると見ることができます。
- 実際には、それは取得された文書が一致する確率と言語モデルの出力シーケンスの確率です。
- 出力シーケンスの確率は、言語モデルによって提供される監視信号です。
- これを行う理由
- モデルが出力するシーケンスの確率が
ground truth
大きければ、モデルの方が優れていると考えられます。 - ドキュメントがモデルの出力により役立つ場合、このドキュメントはより多く取得されるべきであり、その取得確率はより大きくなるはずであると私たちは考えています。
- したがって、ドキュメントが取得される確率は、出力シーケンスを取得するためにこのドキュメントが使用される確率と正の相関があるはずです。そのため、ドキュメントを取得する確率を言語モデルの出力シーケンスの確率と一致させたいと考えます。
- モデルが出力するシーケンスの確率が
このパートでは、取得された文書の確率分布と出力シーケンスの確率分布を計算する方法を紹介します。
取得可能性の計算
与えられた入力xxxの場合、最も高い確率で上位 k 個のドキュメントを取得します。これはD ' ⊂ DD^{'} \subset DD』⊂D、文書dddの検索確率 (尤度)
PR ( d ∣ x ) = es ( d , x ) / γ ∑ d ∈ D ′ es ( d , x ) / γ P_R(d \mid x)=\frac{e^{s(d, x) / \ gamma}}{\sum_{d \in \mathcal{D}^{\prime}} e^{s(d, x) / \gamma}}PR( d∣×)=∑d ∈ D「es ( d , x ) / ces ( d , x ) / c
-
γ \ガンマγ は
softmax
温度を制御するために使用されるハイパーパラメータです -
DD全体に含める必要があるのは当然です。Dで実行しますが、計算量が多すぎるためD ' D^{'}D'おおよその計算
LM 尤度の計算
言語モデルは、各文書が言語モデルの複雑さをどの程度改善するかを評価するために使用されます。まず、PLM ( y ∣ d , x ) P_{LM}(y|d,x) を計算します。PLM _( y ∣ d ,x )、これにはxx がxとドキュメントddd時、ground truth
yyyの生成確率。この確率が大きければ、現在の文書が混乱の程度を増大させていることを意味します。次に、分布を計算します。
Q ( d ∣ x , y ) = e PLM ( y ∣ d , x ) / β ∑ d ∈ D ′ e PLM ( y ∣ d , x ) / β Q(d \mid x, y)=\frac{e ^{P_{LM}(y \mid d, x) / \beta}}{\sum_{d \in \mathcal{D}^{\prime}} e^{P_{LM}(y \mid d, x) / \beta}}Q ( d∣× 、y )=∑d ∈ D「ePLM _( y ∣ d , x ) / bePLM _( y ∣ d , x ) / b
- β \ベータβはスーパーパラメータです
2 つの分布があった後、loss function
それらを次のように一致させます。
指定されたxxでx和yyy , 検索確率分布と言語モデル確率分布を計算します。KL 発散を使用して 2 つの分布を照合し、それを使用して密な検索を最適化します。
L = 1 ∣ B ∣ ∑ x ∈ BKL ( PR ( d ∣ x ) ∥ QLM ( d ∣ x , y ) ) \mathcal{L}=\frac{1}{|\mathcal{B}|} \sum_{ x \in \mathcal{B}} KL\left(P_R(d \mid x) \| Q_{\mathrm{LM}}(d \mid x, y)\right)L=∣ B ∣1∑x ∈ BKL _( PR( d∣x ) ∥ QLM( d∣× 、よ))
- BBB は入力xx×のセット
- 損失関数を最小化してレトリーバーを最適化しますが、LM は変化しません。
取得者のパラメータはトレーニング プロセス中に更新されるため、パラメータの更新後にドキュメントの埋め込みが変更されるため、TTごとにステップTで、ドキュメントの埋め込みを再度計算し、上記のプロセスを繰り返します。
トレーニングのセットアップ
モデル
- LM:GPT-3(リプラグLSR用)
- レトリーバー:コントライバー(2022年新型)
トレーニングデータ
-
すべてのトレーニング データは
Pile training data
(さまざまなフィールドのテキストを含む言語モデル ベンチマーク)から取得されます。 -
トレーニング クエリとして 800K 256 トークンの長いシーケンス
- 各クエリは 2 つの部分に分割され、最初の 128 トークンが入力コンテキストxxとして使用されます。x 、後半は継続する必要があるyyy
-
外部コーパスDDD、サンプル 36M 128 トークンの長いドキュメント
結果
言語モデリング
- ランダムにサブサンプリングされ
Pile training data
(128 トークンの 3 億 6,700 万個のドキュメント)、それらをすべてのモデルの検索コーパスとして使用します。
MMLU
Atlas
ホワイトボックス検索 LM 設定とみなされる、取得者と言語モデルの両方をトレーニングします。- 検索強化バージョンでは、テスト質問をクエリとして使用し、Wikipedia から 10 個のドキュメントを取得し、それらを質問を含む 10 個の入力に結合し、最終結果は 10 個の出力の集約です。
オープンドメインQA
-
データセット:
Natural Question
そしてTriviaQA
few-shot
評価には、 (いくつかのトレーニング データを使用する)とfull data
(すべてのトレーニング データを使用する)を考慮します。
-
RETRO
、、R2-D2
は、Atlas
数ショット設定または完全なトレーニング データを使用して、トレーニング データに基づいて微調整されます。
分析
- パフォーマンスの向上は、さまざまな出力結果を集約することによってもたらされるだけでなく、関連ドキュメントを集約することが成功の鍵となります。
- 集約されたドキュメントの数が増えると、単一の時点でのパフォーマンス
REPLUG
がREPLUG LSR
向上しますが、少数のドキュメント (例: 10) でも良好なパフォーマンスが得られる可能性があります。
REPLUG
パフォーマンスの向上はモデルのサイズと一致しており、さまざまなモデルに適用できます。
REPLUG
テキストにまれなエンティティが含まれている場合にさらに役立ちます
モデルが取得された知識またはパラメトリックな知識に依存しているかが不明瞭です
言語モデルを信頼できない場合
洞察力
- LMは、頻度の低いものについては記憶力が限られていて、幻覚を起こしやすく、時間的劣化に悩まされていることがわかっています。
- それ(ノンパラメトリック知識を組み込むこと)がパラメトリック知識よりも厳密に優れているのか、それとも補完的なのかは不明です
目標: LM のパラメトリック知識に依存すべきときと依存すべきでないとき、およびスケーリングとノンパラメトリック記憶がどのように役立つかを理解する
評価のセットアップ
- 焦点: 事実の知識
- タスク形式: オープンドメイン QA
分析の次元:
- 以前の研究では、暗記を理解するためにコーパスの事前トレーニングにおいてオブジェクト エンティティの頻度という用語がよく使用されています。
- 事実知識トリプルの他の 2 つの変数、つまり対象エンティティと関係タイプに焦点を当てます。
- 対象エンティティ: Wikipedia の月間ページビューによって測定されたエンティティの人気を使用します。
- 関係タイプ:
データセット:
PopQA
: 16 の関係タイプの知識トリプルをランダムにサンプリングします。Wikidata
EntityQuestions
:エンティティの頻度の代理としてWikipedia のハイパーリンク数をWikiData
使用し、頻度分布から 、サンプル知識を 3 倍にします。
解像度
検索なしで
- ほぼすべての関係タイプにおいて、対象エンティティの人気とモデルの精度の間には正の相関関係があります。
- 一部の関係タイプに関する事実知識は、他のタイプよりも記憶されやすい
- スケーリングはテール知識には役に立たない可能性があります
検索付き
既製の検索システムをオフラインで実行して、質問に関連するウィキペディアからコンテキストを取得し、取得したコンテキスト (簡略化のため一番上のコンテキスト) を元の質問と連結します。
- 使用
BM25
/Contriever
- 取得によりパフォーマンスが大幅に向上します
- ノンパラメトリック記憶は、あまり知られていない事実に対して効果的です
- ノンパラメトリック記憶はLMを誤解させる可能性がある
適応型検索
人気がしきい値よりも低い質問には検索を使用します
- 各関係タイプごとに人気のしきい値を個別に決定します (開発セットでの適応精度を最大化します)。
まとめ
-
LM の暗記 (RQ1) は一般的な事実知識に限定されていることが多く、
GPT-3 davinci-003
ロングテールの質問の大部分にさえ答えることができません。- モデルをスケールアップしても、ロングテールの質問のパフォーマンスは大幅には向上しません
-
ノンパラメトリック メモリにより、モデル間のロングテール分布のパフォーマンスが大幅に向上します。
- 検索の拡張は、取得されたコンテキストが誤解を招く可能性があるため、人気のあるエンティティに関する質問に対する大規模な LM のパフォーマンスに悪影響を及ぼす可能性があります。
-
人気
Adaptive Retrieval
に基づいてパラメトリック記憶とノンパラメトリック記憶を適応的に組み合わせる、シンプルでありながら効果的な検索拡張 LM 法を考案します。