はじめに
近年、自然言語処理 (NLP) の分野において目覚ましい発展を遂げている大規模言語モデル (LLM) は、人間のような自然な文章を生成したり、質問に答えたり、翻訳したりといった様々なタスクをこなすことができます。しかし、LLMは学習データに含まれる情報に限定されるため、最新の情報や専門的な知識を必要とするタスクに対応することが難しい場合があります。
そこで登場したのが、RAG (Retrieval Augmented Generation) と ファインチューニング という2つの手法です。RAGは、LLMに外部の知識ベースへのアクセスを可能にすることで、LLMの応答を強化する技術です。一方、ファインチューニングは、LLMを特定のタスクやドメインに特化させるために、追加のデータで再学習させる手法です。
本レポートでは、RAGとファインチューニングの違いについて、その定義、目的、手法、メリット・デメリット、ユースケース、将来展望などを詳しく解説し、LLMの能力を最大限に引き出すための最適な手法について考察していきます。
RAG (Retrieval Augmented Generation) とは
RAGは、LLMが応答を生成する前に、外部の知識ベースから関連情報を取得し、その情報に基づいて応答を生成する手法です。123 従来のLLMは、学習データに含まれる情報に限定されていましたが、RAGは、LLMに外部の知識ベースへのアクセスを可能にすることで、より最新で正確な情報を反映した応答を生成することができます。3
RAGは、埋め込みモデル を利用して外部知識ベースから関連情報を取得します。4 埋め込みモデルは、テキストデータをベクトルと呼ばれる数値表現に変換します。ベクトルは、単語やフレーズの意味や特徴を多次元空間内の座標として表現したもので、意味的に類似した単語やフレーズは、ベクトル空間内でも近い位置に配置されます。RAGは、このベクトル表現を用いて、ユーザーのクエリと意味的に類似した情報を外部知識ベースから効率的に検索することができます。
RAGは、主に以下のステップで動作します。3
- 検索と前処理: ユーザーのクエリに基づいて、外部の知識ベース(ウェブページ、知識ベース、データベースなど)から関連情報を検索します。検索された情報は、トークン化、ステミング、ストップワードの除去などの前処理が行われます。
- 根拠に基づく生成: 前処理された情報は、LLMに提供され、LLMは、その情報と自身の学習データに基づいて応答を生成します。
ファインチューニングとは
ファインチューニングは、事前に学習されたモデルを、より小さな、よりターゲットを絞ったデータセットでさらに学習させることで、ドメイン固有のタスクをより効果的に実行できるようにするプロセスです。 5 この追加の学習データは、モデルのアーキテクチャに組み込まれます。5
ファインチューニングは、転移学習の一種であり、事前に学習されたモデルの知識を活用することで、特定のタスクに特化したモデルを効率的に構築することができます。6
RAGとファインチューニングの目的
RAGの目的
RAGの主な目的は、LLMの応答の精度と信頼性を向上させることです。2 具体的には、以下の目的が挙げられます。
- 最新情報の反映: LLMの学習データは、特定の時点までの情報しか含まれていません。RAGは、外部の知識ベースから最新の情報にアクセスすることで、LLMの応答を最新の状態に保つことができます。37
- 「ハルシネーション」の抑制: LLMは、事実とは異なる情報をあたかも真実のように生成してしまう「ハルシネーション」を起こす可能性があります。RAGは、外部の知識ベースから信頼できる情報を取得することで、ハルシネーションのリスクを軽減することができます。7
- 正確性の向上: LLMは、学習データに含まれる情報に基づいて応答を生成するため、学習データに偏りや誤りがある場合、LLMの応答も不正確になる可能性があります。RAGは、信頼できる外部の知識ベースから情報を取得することで、LLMの応答の正確性を向上させることができます。38
- 知識のカットオフへの対応: LLMは、特定の時点までのデータで学習されているため、それ以降の出来事や情報に対応できません。RAGは、外部の知識ベースを利用することで、この知識のカットオフの問題を克服し、LLMが最新の情報を反映した応答を生成することを可能にします。9
- 説明性の向上: RAGは、LLMが応答を生成する際に、どの情報に基づいて応答を生成したのかをユーザーに示すことができます。10 これにより、ユーザーはLLMの応答の信頼性を判断することができます。
ファインチューニングの目的
ファインチューニングの主な目的は、LLMを特定のタスクやドメインに特化させることです。11 具体的には、以下の目的が挙げられます。
- 特定タスクへの対応: LLMは、一般的な言語処理タスクに対応できるように学習されていますが、特定のタスクに特化させることで、より高い精度でタスクを実行することができます。12
- ドメイン固有の知識の習得: LLMは、一般的な知識を学習していますが、特定のドメインの専門用語や知識を学習していない場合があります。ファインチューニングは、LLMにドメイン固有の知識を習得させることで、より適切な応答を生成することができます。11
- スタイルやトーンの調整: LLMは、学習データのスタイルやトーンで応答を生成しますが、ファインチューニングは、LLMのスタイルやトーンを特定の目的に合わせて調整することができます。12
タスクへの適合性
RAGは、以下のようなタスクに適しています。
- 最新の情報や専門的な知識を必要とするタスク: 例えば、最新のニュース記事を要約したり、専門的な質問に答えたりするタスクなど。7
- 情報源の信頼性が重要なタスク: 例えば、医療診断や法律相談など、情報源の信頼性が重要なタスクなど。8
- ユーザーのクエリに対して、多様な情報を組み合わせて応答する必要があるタスク: 例えば、旅行の計画を立てたり、製品の比較をしたりするタスクなど。13
ファインチューニングは、以下のようなタスクに適しています。
- 特定のタスクに特化したLLMが必要なタスク: 例えば、特定の言語の翻訳や、特定のジャンルの文章生成など。
- ドメイン固有の知識が必要なタスク: 例えば、医療診断や法律相談など、ドメイン固有の知識が必要なタスクなど。11
- LLMのスタイルやトーンを調整する必要があるタスク: 例えば、特定のブランドのイメージに合わせた文章生成など。12
- スタイル転移: ある文章のスタイルを別の文章に適用する。14
- コード生成: プログラミングコードを生成する。14
RAGとファインチューニングの手法
RAGの手法
- 外部データの作成: LLMの学習データとは別に、外部の知識ベースを作成します。外部データは、API、データベース、ドキュメントリポジトリなど、様々なソースから取得できます。
- 関連情報の取得: ユーザーのクエリに基づいて、外部データから関連情報を検索します。検索には、ベクトルデータベース などの技術が用いられます。ベクトルデータベースは、データをベクトルとして表現し、意味的な類似性に基づいて高速に検索することができます。3 また、関連性再ランキング 技術を用いることで、検索結果の精度をさらに向上させることができます。3
- LLMプロンプトの拡張: 検索された関連情報をLLMのプロンプトに追加します。この際、プロンプトエンジニアリング の技術を用いて、LLMが関連情報を効果的に利用できるようにプロンプトを設計します。プロンプトエンジニアリングとは、LLMが期待通りの応答を生成するように、プロンプトを工夫する技術です。15
- 外部データの更新: 外部データが古くなった場合は、定期的に更新する必要があります。外部データの更新は、自動化されたリアルタイムプロセスまたは定期的なバッチ処理によって行うことができます。15
ファインチューニングの手法
ファインチューニングは、一般的に以下の手順で実装されます。17
- 事前学習済みモデルの選択: ファインチューニングの対象となる事前学習済みモデルを選択します。
- アーキテクチャの調整: 必要に応じて、モデルのアーキテクチャを調整します。例えば、出力層のニューロン数を変更するなど。
- レイヤーの凍結/凍結解除: 事前学習済みモデルのレイヤーの一部を凍結したり、凍結を解除したりします。凍結されたレイヤーは、ファインチューニング中に重みが更新されません。
-
学習: 特定のタスクのデータセットでモデルを学習させます。ファインチューニングには、教師あり学習、少数ショット学習、転移学習、ドメイン固有のファインチューニング など、様々なアプローチがあります。
- 教師あり学習: ラベル付きデータを用いてモデルを学習させる方法です。
- 少数ショット学習: 少量のラベル付きデータを用いてモデルを学習させる方法です。18
- 転移学習: あるタスクで学習したモデルを、別のタスクに転用する方法です。
- ドメイン固有のファインチューニング: 特定のドメインのデータを用いてモデルを学習させる方法です。
- パラメータ効率の良いファインチューニング (PEFT): PEFTは、LoRA (Low-Rank Adaptation) などの手法を用いて、ファインチューニングの計算コストを削減する方法です。LoRAは、モデルのパラメータの一部のみを更新することで、計算コストとメモリ使用量を削減することができます。19
RAGとファインチューニングのメリット・デメリット
特徴 | RAG | ファインチューニング |
---|---|---|
手法 | 外部知識ベースから情報を取得 | 追加データでLLMを再学習 |
目的 | LLMの応答の強化 | LLMの特定タスクへの特化 |
メリット | 最新情報へのアクセス37、正確性向上38、説明性向上 10、再学習不要、コスト効率157 | 特定タスクへの対応12、ドメイン知識習得11、スタイル調整12 |
デメリット | 検索精度への依存20、適切な外部データ構築21、冗長性20、複雑なクエリへの対応22、データの偏りのリスク21 | 再学習必要23、コスト高23、時間23、過学習リスク24、汎用性低下23、破滅的忘却24、モデルの陳腐化25 |
RAGのメリット
- 最新の情報にアクセスできる: 外部知識ベースから最新の情報にアクセスすることで、LLMの応答を最新の状態に保つことができます。
- LLMの応答の正確性を向上させることができる: 信頼できる外部知識ベースから情報を取得することで、LLMの応答の正確性を向上させることができます。
- LLMの応答の説明性を向上させることができる: どの情報に基づいて応答を生成したのかをユーザーに示すことができます。
- LLMの再学習が不要: LLMを再学習する必要がないため、コストと時間を削減することができます。ただし、RAGで使用する埋め込みモデルの学習またはファインチューニングが必要になる場合があります。15
- コスト効率が高い: LLMの再学習が不要なため、ファインチューニングに比べてコスト効率が高いです。
RAGのデメリット
- 検索の精度に依存する: RAGの性能は、関連情報を検索する際の精度に依存します。検索精度が低い場合、LLMは不適切な情報に基づいて応答を生成してしまう可能性があります。
- 適切な外部データの構築が必要: RAGを利用するには、LLMが利用できる形式で外部データを構築する必要があります。
- LLMの応答が冗長になる場合がある: LLMは、取得した情報に基づいて応答を生成するため、応答が冗長になる場合があります。
- 複雑なクエリに対応するのが難しい場合がある: 複雑なクエリに対して、適切な情報を検索するのが難しい場合があります。
- データの偏りのリスク: RAGは、外部データの品質に依存します。外部データに偏りがある場合、LLMの応答も偏ってしまう可能性があります。21
ファインチューニングのメリット
- 特定のタスクに特化したLLMを構築できる: 特定のタスクに特化したLLMを構築することで、そのタスクにおける性能を向上させることができます。
- LLMの精度を向上させることができる: 特定のタスクのデータでLLMを再学習させることで、そのタスクにおける精度を向上させることができます。
- LLMのスタイルやトーンを調整できる: LLMのスタイルやトーンを特定の目的に合わせて調整することができます。
ファインチューニングのデメリット
- LLMの再学習が必要: LLMを再学習させる必要があるため、コストと時間がかかります。
- コストが高い: RAGに比べて、計算コストやデータの準備コストが高くなる傾向があります。
- 時間がかかる: LLMの再学習には時間がかかります。
- 過学習のリスクがある: ファインチューニングに使用するデータが少ない場合、過学習が起こり、LLMが新しいデータにうまく対応できなくなる可能性があります。
- 汎用性が低下する可能性がある: ファインチューニングによってLLMを特定のタスクに特化させると、他のタスクへの汎用性が低下する可能性があります。
- 破滅的忘却: ファインチューニングによって、LLMが事前に学習した知識の一部を忘れてしまう可能性があります。24
- モデルの陳腐化: 基礎となるLLMが更新されると、ファインチューニングされたモデルが時代遅れになる可能性があります。25
RAGモデルの種類
RAGモデルには、以下のような種類があります。27
- 基本的なRAG: 特定の知識ベースから情報を取得してLLMの応答を生成する、最も基本的なRAGモデルです。カスタマーサービスボットや基本的なリサーチツールなど、LLMの応答を最新の情報で補強することが主な目的の場合に多く利用されます。
- ドメイン特化型RAG: 特定の分野の知識ベースから情報を取得するように特化されたRAGモデルです。医療や法律など、専門的な知識が必要とされる分野で利用されます。
- マルチモーダルRAG: テキストだけでなく、画像や音声などの様々な形式のデータから情報を取得できるRAGモデルです。メディア分析や教育ツールなど、多様なデータ入力から恩恵を受ける分野で役立ちます。
- インタラクティブRAG: ユーザーとの対話を通じて情報を取得し、応答を生成するRAGモデルです。仮想アシスタントやチャットボットなど、ユーザーとのインタラクションが必要なアプリケーションに適しています。
- 適応型RAG: ユーザーのフィードバックや過去のインタラクション履歴などを学習し、情報取得の方法を動的に変化させることができるRAGモデルです。予測分析やパーソナライズされたコンテンツ配信システムなどで利用されます。
ユースケース
RAGが適しているユースケース
- 企業の社内文書に基づいて質問に答えるチャットボット: 最新の社内規定や製品情報などを反映した応答を生成することができます。28 例えば、従業員が休暇に関する質問をした場合、RAGは、会社の休暇ポリシーに関するドキュメントと従業員の過去の休暇記録を組み合わせて、正確でパーソナライズされた回答を生成することができます。
- 最新の研究論文に基づいて医療診断を支援するシステム: 最新の医学的知見に基づいた診断を支援することができます。13 例えば、医師が患者の症状を入力すると、RAGは、関連する医学論文や臨床試験の結果を検索し、診断の参考となる情報を提供することができます。
- 顧客の購買履歴に基づいて商品を推薦するシステム: 顧客のニーズに合わせた商品を推薦することができます。7 例えば、顧客が過去に購入した商品や閲覧した商品に基づいて、RAGは、顧客が興味を持ちそうな商品を推薦することができます。
ファインチューニングが適しているユースケース
- 特定の言語の翻訳: 特定の言語ペアの翻訳に特化したLLMを構築することができます。 例えば、日本語から英語への翻訳に特化したLLMを構築することで、より高精度な翻訳を実現することができます。
- 特定のジャンルの文章生成: 小説や詩など、特定のジャンルの文章生成に特化したLLMを構築することができます。18 例えば、推理小説の文章生成に特化したLLMを構築することで、よりリアルで魅力的な推理小説を生成することができます。
- 特定のブランドのイメージに合わせた文章生成: 広告コピーやマーケティング資料など、特定のブランドのイメージに合わせた文章生成に特化したLLMを構築することができます。11 例えば、高級ブランドのイメージに合わせた広告コピーを生成するLLMを構築することで、ブランドイメージに合った効果的な広告コピーを作成することができます。
- スタイル転移: ある文章のスタイルを別の文章に適用する。14 例えば、シェイクスピアの文体で現代のニュース記事を書き直すことができます。
- コード生成: プログラミングコードを生成する。14 例えば、自然言語で記述された指示に基づいて、Pythonのコードを生成することができます。
考察
RAGとファインチューニングは、それぞれにメリットとデメリットがあり、タスクへの適合性も異なります。そのため、LLMを導入する際には、タスクの要件に合わせて、どちらの手法を採用するか、あるいは両方を組み合わせるかを検討する必要があります。
RAGは、最新の情報にアクセスできること、LLMの再学習が不要であること、コスト効率が高いことなどがメリットです。 一方で、検索精度に依存すること、適切な外部データの構築が必要であること、LLMの応答が冗長になる場合があることなどがデメリットです。
ファインチューニングは、特定のタスクに特化したLLMを構築できること、LLMの精度を向上させることができることなどがメリットです。 一方で、LLMの再学習が必要であること、コストが高いこと、時間がかかることなどがデメリットです。
RAGは、ファインチューニングに比べて、一般的に精度が低くなる傾向があります。 これは、RAGが外部データの検索精度に依存しているためです。しかし、データのプライバシー保護、コスト、リアルタイム更新の必要性など、他の要素を考慮すると、RAGの方が適している場合があります。29 例えば、企業の機密情報を含む社内文書に基づいて質問に答えるチャットボットを開発する場合、データのプライバシー保護の観点から、RAGの方が適していると考えられます。
RAGのデメリットである検索精度やデータ品質の問題は、データのキュレーション、高度な検索技術、人間の監督などを組み合わせることで対処することができます。213 例えば、ベクトルデータベースや関連性再ランキング技術を用いることで、検索精度を向上させることができます。また、専門家がデータをキュレーションすることで、データの品質を向上させることができます。
RAG and ファインチューニングの倫理的な側面も考慮する必要があります。2130 例えば、データに偏りがある場合、LLMの応答も偏ってしまう可能性があります。そのため、データの偏りを最小限に抑えるための対策を講じる必要があります。また、LLMがどのように応答を生成したのかをユーザーに説明できるように、説明性を向上させるための技術開発も重要です。
RAGとファインチューニングの将来展望
RAGの将来展望
- より高度な検索技術との統合: ベクトルデータベースなどの技術の発展により、RAGの検索精度が向上し、より複雑なクエリに対応できるようになると考えられます。4
- エージェントベースのRAG: エージェントベースのRAGは、LLMが外部のツールやサービスと連携してタスクを実行することを可能にします。これにより、RAGの応用範囲がさらに広がると考えられます。4 例えば、旅行計画エージェントは、LLMと連携して、航空券やホテルの予約、観光スポットの検索などを行うことができます。
- RAGに最適化されたLLM: RAGに特化したLLMの開発が進められています。これらのLLMは、外部データの検索や統合を効率的に行うことができるようになり、RAGのパフォーマンスが向上すると考えられます。4
- RAGとファインチューニングの組み合わせ (RAFT): RAGとファインチューニングを組み合わせることで、両方の技術のメリットを活かすことができます。29 例えば、特定のドメインのデータでLLMをファインチューニングし、そのLLMをRAGアーキテクチャで利用することで、ドメイン特化型の知識と最新の情報を組み合わせた応答を生成することができます。
ファインチューニングの将来展望
- より効率的なファインチューニング手法の開発: コンピュータ資源の消費を抑えながら、LLMを効率的にファインチューニングする手法の開発が進められています。31 例えば、LoRAなどのPEFT技術は、ファインチューニングに必要な計算コストを削減することができます。
- 自動化されたファインチューニング: ファインチューニングのプロセスを自動化する技術の開発が進められています。これにより、ファインチューニングの敷居が下がり、より多くのユーザーがファインチューニングを利用できるようになると考えられます。32
- パーソナライズされたファインチューニング: 個々のユーザーのニーズに合わせてLLMをファインチューニングする技術の開発が進められています。これにより、LLMは、よりパーソナライズされた応答を生成できるようになると考えられます。33 例えば、ユーザーの過去の会話履歴や好みに基づいて、LLMの応答をパーソナライズすることができます。
結論
RAGとファインチューニングは、LLMの能力を拡張するための重要な技術です。RAGは、LLMに外部の知識ベースへのアクセスを可能にすることで、LLMの応答を強化します。一方、ファインチューニングは、LLMを特定のタスクやドメインに特化させるために、追加のデータで再学習させます。
RAGとファインチューニングは、それぞれにメリットとデメリットがあり、タスクへの適合性も異なります。
タスクの要件、データの可用性、リソースの制約などを考慮して、RAGとファインチューニングのどちらの手法を採用するか、あるいは両方を組み合わせるかを検討する必要があります。29
例えば、最新の情報や情報源の信頼性が重要なタスクにはRAGが適しており、特定のタスクに特化したLLMが必要なタスクにはファインチューニングが適しています。 また、両方の技術を組み合わせることで、より効果的にLLMの能力を拡張できる場合もあります。
LLM技術は、今後も進化を続けると予想されます。RAG and ファインチューニングも、LLM技術の発展に合わせて、より高度化していくと考えられます。特に、RAGとファインチューニングの関係は、今後ますます密接になっていくと考えられます。 例えば、ファインチューニングされたLLMをRAGで利用することで、より高精度で信頼性の高い応答を生成することができるようになると期待されます。
RAG and ファインチューニングは、LLMの応用範囲を拡大し、様々な分野でLLMの活用を促進する重要な技術です。これらの技術の発展により、LLMは、より人間に近い知能を実現し、社会に貢献していくことが期待されます。
その他
補足
こちらの記事はGemini 1.5 Pro with Deep Researchを利用し執筆した記事となります。
以前書いた以下の記事との比較検証を目的の1つとしています。
関連・おすすめ書籍
- LangChainとLangGraphによるRAG・AIエージェント[実践]入門
- 仕組みからわかる大規模言語モデル 生成AI時代のソフトウェア開発入門
- 生成AI活用の最前線: 世界の企業はどのようにしてビジネスで成果を出しているのか
引用文献
-
What Is Retrieval-Augmented Generation aka RAG - NVIDIA Blog ↩ ↩2
-
What is Retrieval-Augmented Generation (RAG)? | Google Cloud ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10
-
What is retrieval-augmented generation (RAG)? - McKinsey & Company ↩ ↩2 ↩3 ↩4
-
5 key features and benefits of retrieval augmented generation (RAG) | The Microsoft Cloud Blog ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
What is retrieval augmented generation (RAG) [examples included] - SuperAnnotate ↩ ↩2 ↩3
-
What Is RAG? Use Cases, Limitations, and Challenges - Bright Data ↩
-
What is retrieval-augmented generation (RAG)? - IBM Research ↩ ↩2
-
What is Fine-tuning? Simply Explained - FinetuneDB ↩ ↩2 ↩3 ↩4 ↩5
-
RAG 101: What is RAG and why does it matter? - Codingscape ↩ ↩2
-
Fine-tuning |When to use fine-tuning - OpenAI API ↩ ↩2 ↩3 ↩4
-
What is RAG? - Retrieval-Augmented Generation AI Explained - AWS ↩ ↩2 ↩3 ↩4 ↩5
-
Fine-Tuning the Model: What, Why, and How | by Amanatullah | Medium ↩
-
Training vs. Fine-tuning: What is the Difference? - Encord ↩
-
The Limitations and Advantages of Retrieval Augmented Generation (RAG) ↩ ↩2 ↩3 ↩4 ↩5
-
Retrieval Augmented Generation (RAG) limitations - UnfoldAI ↩
-
Why Fine-Tuning is (Probably) Not for You - PromptLayer ↩ ↩2 ↩3 ↩4
-
Advantages and disadvantages of fine tuning a model. | by Sujatha Mudadla | Medium ↩ ↩2 ↩3
-
What is retrieval augmented generation? The benefits of implementing RAG in using LLMs ↩
-
What is Retrieval Augmented Generation (RAG)? - Databricks ↩
-
Future Trends in Retrieval-Augmented Generation: What to Expect in 2025 and Beyond ↩
-
The Fine-Tuning Landscape in 2025: A Comprehensive Analysis - Medium ↩
-
Unveiling the Evolution and Future of Fine-Tuning Large Language Models - DZone ↩
-
Prompting, Fine-Tuning, RAG And AI Agents For Future Marketing - Forbes ↩