俺は RAG を使えるぜ!
ちょっと前に LLM 関連のイベントに行ってきました。
イベントブースでは、AI 関連の企業が自社のサービスに関して展示を行っていたのですが、見事に RAG 一色でした。
RAG を利用する際の各社の情報検索の工夫に関しては勉強になりましたが、どれも似たようなシステムばかりで「あぁ、またか。。。」という感じがありました。
もちろん、RAG はかなり便利なので、LLM をビジネスで利用する場合は RAG が利用されることが多いと思っています。
普通の ChatGPT を利用するだけでなく、RAG を使ってシステムを作成する理由は単純です。
- ChatGPT をそのまま使っても社内の情報を持っていないから、何かしら情報を入れ込む手法が必要
- 手法はいくつかあるけど、簡単に実装できる RAG さえ使っておけば、ある程度簡単にそれっぽいことができるから
なので、これまでは機械学習に詳しくなくても、ちょちょっと RAG を作って「俺は RAG を使えるぜ!AI 詳しいんだ!」という顔ができたのですが、
そんな RAG も Fine-Tuning をしないと周りのシステムと競争できない時代がやってきそうです。
ということで、今回は RAFT という RAG 用のモデルの Fine-Tuning 手法を紹介していきます。
RAG の問題点 / なぜ Fine-Tuning が必要か?
情報検索精度が低い
RAG を使うときは、LLM が持っていない情報を RAG で補足するために利用します。
が、「この LLM が持っていない情報を補足するために使う」というのが非常に重要なポイントで、
- だから RAG を利用する
- けど、LLM が持っていない知識だから情報検索の精度が低い
という問題が出てくるのです。
(実際、私が使った時も同様の問題にハマり、学習が必要だという結論になりました。)
また、RAG に利用するモデルが、そもそも RAG 用のチューニングをしていない可能性も高いです。
RAFT; Retrieval Augmented Fine Tuning
RAFT のやり方
以下のようなプロンプトを用意して Fine-Tuning を行います。
質問: オベロイ家は、本社がどの都市にあるホテル会社の一員ですか?
コンテキスト: [オベロイ家は、オベロイ・グループを通じてホテル業界に関わっていることで有名なインドの家族です]...[ジャカルタの市中心部、メガ・クニンガン近く、姉妹ホテルであるJWマリオット・ホテルに隣接して位置しています。これはリッツ・カールトン・ホテル・カンパニーによって運営されています。この複合施設には、それぞれホテルとアイランガ・アパートメントを含む2つのタワーがあります]...[オベロイ・グループは、本社がデリーにあるホテル会社です。]
指示: 上記の質問、コンテキスト、および回答を元に、その回答のための論理的な推論を提供してください。フォーマットは ##理由: {理由} ##回答: {回答} を使用してください。
チェーンオブソート(CoT)回答: ##理由: 文書 ##begin_quote## オベロイ家は、オベロイ・グループを通じてホテル業界に関わっていることで有名なインドの家族です。##end_quote## はオベロイ家がオベロイ・グループに関与していることを示しており、文書 ##begin_quote## オベロイ・グループは、本社がデリーにあるホテル会社です。##end_quote## はオベロイ・グループの本社がデリーにあることを示しています。したがって、オベロイ家は本社がデリーにあるホテル会社の一員です。##回答: デリー
ポイントは
- 不必要な引用も入れる
- プロンプトのコンテキストに、回答に関連しない情報を含む文書を使うことでモデルが不要な情報を無視する能力を訓練する
- Chain-of-Thought (CoT) スタイルの回答
- 回答のプロセスをステップバイステップで説明しつつ、オラクルドキュメントからの直接の引用を含めることで、モデルが関連する情報をどのように抽出して回答に利用するかを理解し、推論能力が向上する
- CoT を入れた方がいれないよりも性能が上がるという結果がある
RAFT のメリット
- ドメイン固有知識の学習と利用の向上
- RAG 実装時に検索対象となる文書で SFT すると、オープンなモデルをそのまま使うよりも、想定されるドメイン固有の知識が深まり、その知識を利用して質問に回答する能力を向上する
- 不必要な文書の無視
- 手法のようなプロンプトで学習すると、質問に必要ない文書を無視し、必要な部分だけで回答を作ってくれるようになる。また、これによって不正確な検索結果に対するロバスト性も向上する
- チェーンオブソートによる推論能力の強化
- CoT スタイルの応答により、モデルの推論能力が向上する
RAFT の結果
RAFT によって以下のような性能向上が見られたようです。
LLaMA2-7B で GPT-3.5 に勝てるというのは素直にすごいですね。
まとめ
以上です。
データを作るところが結構しんどそうですが、チューニングの価値がありそうです。今度私も試してみたいですね。