RAG、微調整、プロンプト・エンジニアリングの比較

共同執筆者

Ivan Belcic

Staff writer

Cole Stryker

Staff Editor, AI Models

IBM Think

RAG、ファイン・チューニング、プロンプト・エンジニアリングの比較

プロンプト・エンジニアリング微調整検索拡張生成(RAG)は、企業が大規模言語モデル(LLM) からより多くの価値を引き出すために使用できる3つの最適化手法です。3 つともモデルの動作を最適化しますが、どれを使用するかは、対象ユースケースと利用可能なリソースによって異なります。

生成 AIモデルは膨大なデータ・プールでトレーニングされ、データの多くはインターネットから収集されます。人工知能開発者は通常、企業の独自データや内部データなどのニッチなデータにアクセスできません。組織が特定のニーズに合わせて大規模言語モデル(LLM)を適用する場合、望ましいアウトプットと動作を生成するために、生成AIモデルの動作を微調整する必要があります。

プロンプト・エンジニアリング、RAG、微調整はすべて、LLMのアウトプットをユースケースに最適化するのに役立ちます。これらを使用することで、データサイエンティストは、より優れたダウンストリームの性能、より高い分野固有の精度、関連するフォーマット、言語、または規制要件を満たすアウトプットを得ることができます。

RAG、ファイン・チューニング、プロンプト・エンジニアリングの違いとは

プロンプト・エンジニアリング、RAG、微調整の違いには、主に4つの領域があります。

  • アプローチ

  • 目標

  • リソース要件

  • 応用

アプローチ

プロンプト・エンジニアリングは、インプット・プロンプトを最適化し、モデルをより良いアウトプットへと導きます。微調整されたLLMでは、分野固有のデータセットを使ってトレーニングし、ダウンストリーム・タスクのパフォーマンスを向上させます。RAGはLLMをデータベースに接続し、情報検索を自動化することで、関連データでプロンプトを補強し、精度を高めます。

目標

RAG、プロンプト・エンジニアリング、微調整の目的は同じです。つまり、モデルのパフォーマンスを向上させて、それを使用する企業の価値を最大化することです。しかし、より具体的には、プロンプト・エンジニアリングにより、ユーザーが望む成果をモデルにもたらす必要があります。RAG は、より関連性が高く正確なアウトプットが得られるようにモデルを導くことを目的としています。

一方、微調整されたモデルは、焦点を絞った外部データのセットで再トレーニングされて、特定のユースケースでのパフォーマンスを向上させます。3つの方法は互いに排他的ではなく、最適な結果を得るために組み合わせることがよくあります。

リソース要件

プロンプト・エンジニアリングは、3つの最適化手法の中で、時間とリソースの使用量が最も少ない方法です。基本的なプロンプト・エンジニアリングは、追加のコンピューティングに投資することなく手動で実行できます。

RAGでは、企業のデータセットを整理し、LLMをそれらのデータソースに接続するデータ・パイプラインを構築するために、データサイエンスの専門知識を必要とします。データの準備とトレーニングのプロセスは非常に演算集中型で時間がかかるため、微調整は間違いなく最も要求の厳しいものとなります。

応用

プロンプト・エンジニアリングは、LLMにコンテンツをゼロから生成するよう依頼する場合など、アウトプットが多様になる可能性があるオープンエンドの状況で最も柔軟で、威力を発揮します。画像、動画、テキスト生成の成功は、強力なプロンプトによって支えられています。

微調整は、データサイエンティストが1つのことを非常にうまく処理するモデルを必要とするような、非常に集中した作業のためにモデルを改良します。RAGは、カスタマー・サービス用チャットボットなど、正確で関連性のある最新の情報が最も重要な場合に最適なソリューションです。

AI Academy

AIの専門家になる

ビジネスの成長を促進するAIへの投資を優先できるように知識を習得します。今すぐ無料のAI Academyを試して、貴社のAIの未来をリードしましょう。

プロンプト・エンジニアリング、RAG、ファイン・チューニングが重要な理由

プロンプト・エンジニアリングは、モデルに動作方法に関する明確な指示を与えるためのさまざまな方法を提供します。明確な指示があれば、リソースを大量に消費する検索システムやトレーニングに投資することなく、モデルの動作をより正確に把握できます。

RAGは、LLMを他の方法ではアクセスできない独自のリアルタイム・データにつなぎます。RAGモデルは、内部データのコンテキストを追加することで、コンテキストがない場合よりも正確な回答を返すことができます。

微調整されたモデルは通常、ドメイン固有のデータをトレーニングに適用すると、GPTファミリーの対応する基本モデルなどよりも優れたパフォーマンスを発揮します。外部の知識へのアクセスが増えることで、微調整されたLLMは、特定の分野とその用語をより深く理解できるようになります。

プロンプト・エンジニアリングとは

プロンプト・エンジニアリングは、モデルの知識ベースを拡張することなく、モデルを望ましいアウトプットに導く効果的なプロンプトを作成するプロセスです。プロンプト・エンジニアリング・プロセスでは、事前トレーニングされたモデルのパラメーターが大幅に変更されることはありません。

プロンプト・エンジニアリングの目標は、モデルのアウトプットが意図したユースケースの特定の要件を満たすようにするプロンプトを作成することです。さらなるトレーニングやデータ・アクセスを増やしても、不十分なプロンプトを補うことはできません。

プロンプト・エンジニアリングの仕組み

プロンプト・エンジニアリングは、以前のモデルのアウトプットに基づいてインプット・プロンプトの構造と内容を調整することで機能します。繰り返すたびに、プロンプト・エンジニアはモデルが以前のインプットにどのように反応するかを学習し、それらの結果を次のプロンプトに反映させます。目標は、明確な指示を通じてモデルの動作を変更することです。

優れたプロンプト・エンジニアリングは、自然言語処理(NLP)モデルに何をすべきかを正確に伝えるプロンプトに基づいています。プロンプト・エンジニアリング・プロセスでは、プロンプトの内容、構造、言語を実験し、モデルから必要なアウトプットにつながる最適な形式を発見する作業が伴います。

機械学習モデルを、おいしい夕食を作りたいと思っている意欲的な家庭料理の作り手に例えてみましょう。プロンプト・エンジニアリングは、より知識のある友人や親戚が、食事へのアプローチを計画するのを手伝ってくれるようなものです。何をどのように作ればいいかという確かなアドバイスがあれば、熱心な家庭料理の作り手はおいしい料理を作れる可能性が高くなります。

検索拡張生成(RAG)とは

RAGは、データ・レイクハウスに保存されていることが多い組織の独自データなど他のデータにLLMを接続するデータ・アーキテクチャー・フレームワークです。RAGシステムは、LLMプロンプトに関連データを追加して、LLMがより正確な回答を生成できるようにします。

RAGの仕組み

検索拡張生成は、ユーザーのクエリーに関連するデータを見つけ、そのデータを使用してより有益なプロンプトを作成するものです。LLMのプロンプトを強化し、より関連性の高い応答を生成できるようにするために、情報検索メカニズムが追加されています。

RAGモデルは、次の4段階のプロセスを通じて回答を生成します。

  1. クエリー:ユーザーがクエリーを送信し、RAGシステムを初期化します。

  2. 情報検索: 複雑なアルゴリズムやAPIは、社内外の知識ベースを精査して関連情報を検索します。

  3. 統合:取得されたデータはユーザーのクエリーと結合され、RAGモデルに渡されて回答されます。この時点では、LLMはクエリーをまだ処理していません。

  4. 応答:取得したデータを独自のトレーニングおよび保存された知識と組み合わせることで、LLMはコンテキストに合わせて正確な応答を生成します。

ドキュメントを検索する場合、RAGシステムはセマンティック検索を使用します。ベクター・データベースは類似性に基づいてデータを整理するため、キーワードではなく意味による検索が可能になります。セマンティック検索技術により、RAGアルゴリズムは過去のキーワードからクエリーの意図に到達し、最も関連性の高いデータを返すことができます。

RAGシステムでは、広範なデータ・アーキテクチャーの構築と保守が欠かせません。データ・エンジニアは、組織のデータ・レイクハウスをLLMとつなげ、RAGを使用するために必要なデータ・パイプラインを構築する必要があります。RAGシステムは、適切なデータを見つけて、LLMにそのデータをどう扱うかを確実に認識させるための、正確なプロンプト・エンジニアリングも必要です。

ここでも、生成AIモデルをアマチュアの家庭料理人に例えてみてください。料理の基本は知っていますが、特定の料理で訓練を受けたシェフの専門家の最新情報や知識が不足しています。RAGは、家庭料理人にその料理のレシピ本を提供するようなものです。料理に関する一般的な知識と料理本のレシピを組み合わせることで、家庭料理人は自分の好きな料理に特化した料理を簡単に作ることができます。

ファイン・チューニングとは

ファイン・チューニングとは、事前トレーニング済みのモデルを、より小規模で焦点を絞ったトレーニング用データ・セットで再トレーニングし、ドメイン固有の知識を付与するプロセスです。次に、モデルは、その動作を制御するガイドラインであるパラメーターと埋め込みを調整して、特定のデータ・セットに適合させます。

ファイン・チューニングの仕組み

ファイン・チューニングは、モデルをラベル付けされた例のデータ・セットに公開することによって機能します。モデルは、新しいデータに基づいてモデルの重みを更新するため、初期トレーニングよりも改善されます。微調整は教師あり学習手法で、トレーニングで使用されるデータが整理され、ラベル付けされることを意味します。対照的に、ほとんどの基本モデルは教師なし学習です。この学習ではデータは分類されず、モデルが独自にデータを分類する必要があります。

もう一度、生成AIモデルを家庭料理人に例えると、微調整は特定の料理を作るためのコースとなります。コースを受講する前に、家庭料理人は料理の基礎について大まかな理解をしておく必要があります。しかし、料理の訓練を受けて分野特有の知識を習得すれば、その種類の料理をもっと上手に作れるようになるでしょう。

包括的なファイン・チューニングとパラメーター効率の高いファイン・チューニングの比較

モデルは、すべてのパラメーターを更新する完全な微調整、または最も関連性の高いパラメータのみを更新する方法で微調整できます。この後者のプロセスはパラメーター効率微調整(PEFT)と呼ばれ、特定の分野のモデルをより効果的にするための費用対効果の高い方法です。

モデルの微調整には大量の演算処理が必要で、LLM自体を保存するための大きなメモリー容量が必要であることは言うまでもなく、複数の強力なGPUを同時に実行する必要があります。PEFTを使用すると、LLMユーザーは、よりシンプルなハードウェア設定でモデルを再トレーニングしながら、顧客サポートや感情分析などのモデルの目的のユースケースで同等のパフォーマンス・アップグレードを実現できます。微調整は、モデルの予測と実際の現実世界の結果との間のギャップであるバイアスをモデルが克服するのに特に優れています。

ファイン・チューニングと継続的な事前トレーニングの比較

事前トレーニングはトレーニング・プロセスの最初に行われます。モデルの重みまたはパラメーターはランダムに初期化され、モデルは初期データ・セットでトレーニングを開始します。継続的な事前トレーニングでは、転移学習と呼ばれる手法で、トレーニング済みのモデルを新しいラベルなしデータ・セットに導入します。事前トレーニング済みのモデルは、これまでに学習した内容を新しい外部情報に「転送」します。

対照的に、ファイン・チューニングではラベル付けされたデータを使用して、選択したユースケースでのモデルのパフォーマンスを磨きます。ファイン・チューニングは特定のタスクにおけるモデルの専門知識を磨くのに優れており、継続的な事前トレーニングはモデルの領域の専門知識を深めることができます。

関連ソリューション
IBM® watsonx Orchestrate®

IBM watsonx Orchestrateを使用すると、スケーラブルなAIアシスタントとエージェントを簡単に設計し、反復的なタスクを自動化し、複雑なプロセスを簡素化できます。

watsonx Orchestrateの詳細はこちら
人工知能ソリューション

IBMの業界をリードするAIの専門知識とソリューションのポートフォリオを活用して、AIを業務に利用しましょう。

AIソリューションはこちら
人工知能コンサルティングおよびサービス

IBM®ConsultingAIサービスは、企業がAIをトランスフォーメーションに活用する方法を再考するのに役立ちます。

AIサービスはこちら
次のステップ

AIを使用することで、IBM Concertはお客様のオペレーションに関する重要な洞察を明らかにし、改善のためのアプリケーション固有の推奨事項を提供します。Concertがどのようにビジネスを前進させることができるかをご覧ください。

  1. Concertの詳細はこちら
  2. ビジネス・プロセス自動化ソリューションの詳細はこちら