- 「ファインチューニングか検索(Retrieval)か?LLMにおける知識追加手法の比較」というarXiv論文が上がっていました。執筆者はMicrosoft Israelの研究グループです。
- 先日、Microsoft の別のグループが「RAG vs ファインチューニング:パイプライン、トレードオフ」という類似したテーマのarXiv論文を上げていて、それについては以下の投稿でメモしています。
- どちらの論文も、専門領域における知識追加の方法としてファインチューン(微調整)とRAGを比較検討したもので、共通して「微調整にも効果は認められるが、RAGのほうが有効性が明らかに高い」という結論を示しています。
- また、両論文とも「RAG+微調整」の併用手法も並行して検討していて、それぞれのデータをざっと見る限り「RAGを使うならRAGオンリーでよさそう(微調整を併用してもあまりパフォーマンスが上がらない)」という結果が出ているようです。
- この論文に特に目新しい情報は書かれていませんが、個人的に気になっている追加学習時のデータ拡張(Data Augmentation)に関して触れられていたので、そのあたりに注目して簡単にメモします。
概要
大規模言語モデル(LLM)は、事前に学習された重みの中に膨大な量の事実情報を内包している。しかし、この知識は本質的に限られており、学習データの特性に大きく依存している。そのため、外部データセットを用いて新しい情報を取り入れたり、過去に見た情報に対するLLMの能力を向上させたりすることは、重要な課題となる。本研究では、教師なし微調整と検索拡張生成(RAG)という2つの一般的なアプローチを比較する。両アプローチを様々なトピックにわたる知識集約的なタスクで評価する。その結果、教師なしファインチューニングはある程度の改善をもたらすが、RAGは、学習中に出会った既存の知識に対しても、全く新しい知識に対しても、一貫してそれを凌駕することが明らかになった。さらに、LLMは教師なし微調整によって新しい事実情報を学習するのに苦労しており、訓練中に同じ事実の多数のバリエーションにさらすことで、この問題を軽減できる可能性があることがわかった。
メモ
- 先述の「RAG vs ファインチューニング」論文では、特定領域の専門文献をもとに対話形式のデータセットを生成し、それによってモデルの微調整を行っていました。
- しかし本論文では「教師あり微調整(Supervised Fine-Tuning, SFT)はモデルに望ましい応答スタイルを学習させるものであり、知識ベースの拡大に焦点をあてたものではない」としたうえで、教師なし微調整(Unsupervised Fine-Tuning)による知識の注入を試みています。
- 結果としては、単純にベースモデルとRAGを組み合わせた手法が総じて優れており、微調整のみ、あるいは微調整+RAGの組み合わせた手法を大部分のスコアで上回りまったとしています。
- 論文の後半では微調整による知識追加に焦点をあて、「単一の知識を様々なバリエーションで学習させる」ことが重要だと指摘しています。
- 以下のグラフは、同一の事実知識に関して述べたテキストをGPT-4で言い換え(パラフレーズ)させて学習データを拡張することで、知識の定着度が改善することを示したものです。
雑感
- LLMの場合、事前学習においても十分な知識の正確性が保証されるわけではないので「できるかぎり正確な知識の提供」を期待するならRAGを使うしかない、というかLLM無しで検索結果を表示するだけの方がいいと思います。
- 追加学習による知識追加にこだわる場合というのは、そもそも「RAGが適していないLLMならではの用途」を想定しているからであって、その時点である程度の知識の曖昧さが許容されている気がします。
- 肝心の微調整によるデータ拡張に関しては、llama-2で知識追加を試みた別の(より具体的な)研究(スライド19/59あたり)でも、単一の知識に関するテキストを3~5件にデータ拡張して学習させることで、それなりの知識の定着が見られるとしています。
- ということで、ひとまず自分でもデータ拡張を活用した知識追加ファインチューンを試していきたいと思います。