検索拡張生成 (RAG) とファインチューニング
RAG とファインチューニングはいずれも 大規模言語モデル (LLM) の改良を目的としています。RAG は基盤となる LLM を変更せずにモデルを改良しますが、ファインチューニングでは LLM の重みとパラメーターを調整する必要があります。多くの場合、ファインチューニングと RAG アーキテクチャを併用してモデルをカスタマイズすることができます。
大規模言語モデルの上に構築
LLM とは、人間の言語を理解し生成するために 機械学習 (ML) 技法を活用した 人工知能 (AI) の一種です。これらの ML モデルでは、テキストの生成、要約、翻訳、リライト、分類、カテゴライズ、分析などを行うことができます。エンタープライズレベルでの最も一般的な用途は、チャットボットのような質問応答システムの作成です。
LLM の 基盤モデルは、さまざまなユースケースを幅広くサポートできるよう、一般的な知識に基づいてトレーニングされます。しかし、基本的に特定の組織に特化したドメイン固有の知識は備わっていません。求める出力が生成されるように、必要なデータを使って LLM を調整し、LLM に情報を与える方法として、RAG とファインチューニングの 2 つがあります。
たとえば、顧客と対話するチャットボットを構築しているとします。この場合、チャットボットは会社を代表して会話することになるので、優秀な従業員のように動作させる必要があるでしょう。また、会社が販売する製品や遵守するポリシーなど、会社に関するニュアンスを理解させる必要もあります。従業員をトレーニングするときに学習用の資料や手本となるスクリプトを与えるのと同じように、チャットボットをトレーニングするときには、RAG とファインチューニングを使用してチャットボットが得る知識の基盤を構築します。
RAG の概要とその仕組み
RAG は、任意のソース (データリポジトリ、テキストのコレクション、既存のドキュメントなど) から情報を取得して、LLM 内のデータを補完します。RAG アーキテクチャはデータを取得した後、それを LLM のコンテキストに処理し、融合したソースに基づいて回答を生成します。
RAG が最も有用なのは、定期的に更新される情報でモデルを補完する場合です。任意の外部ソースとの通信経路を LLM に提供することで、出力の精度が向上します。また、RAG がソースを引用するように設計できるので、出力がどのように作成されたかを簡単に追跡でき、透明性が高まり、信頼が構築されます。
チャットボットの例に戻りましょう。「返品ポリシーはどのようなものですか?」といった質問に答えるチャットボットを構築する場合は、RAG アーキテクチャを使用できます。会社の返品ポリシーの詳細が記載されたドキュメントに LLM を接続し、そこから情報を取得するようにチャットボットに指示することができます。そのソースに言及し、詳細を確認してもらうためのリンクを提供するように指示することもできます。また、返品ポリシーのドキュメントに変更があった場合、RAG モデルは最新の情報を取得してユーザーに提供します。
RAG のユースケース
RAG は、人がシンプルな方法でデータを使用できるよう、情報を調達し、整理することができます。RAG アーキテクチャを使用すれば、モデルはオンプレミスとクラウドベースの両方のデータソースから知見を取得し、LLM にコンテキストを提供できます。つまり、外部データ、内部文書、さらにはソーシャルメディアフィードを使用して、質問に回答し、コンテキストを提供し、意思決定に役立てることができます。
たとえば、クエリに対して、会社のポリシー、手順、文書に関する具体的な回答を提供する RAG アーキテクチャを作成できます。これにより、文書を手作業で検索して解釈するのにかかる時間を節約できます。
ファインチューニングとは
ファインチューニングは、LLM が目標に合わせて出力を調整できるようにするために、そのモデルに意図を伝える方法だと捉えることができます。ファインチューニングとは、事前にトレーニングしたモデルを、より小規模でよりターゲットを絞ったデータセットを使用してさらにトレーニングし、ドメイン固有のタスクをより効果的に実行できるようにするプロセスです。この追加のトレーニングデータは、モデルのアーキテクチャに組み込まれます。
チャットボットの例に戻りましょう。たとえば、チャットボットが医療のコンテキストで患者と対話できるようにしたいとします。その場合、その作業に関連する医学用語をモデルに理解させることが重要です。ファインチューニング技法は、患者がチャットボットに「PT サービス」について質問したとき、チャットボットがそれを「理学療法サービス」と理解し、適切なリソースに誘導できるようにします。
ファインチューニングのユースケース
ファインチューニングが最も有用なのは、アクセスできる情報の解釈方法をモデルにトレーニングする場合です。たとえば、頭字語や組織の価値観など、特定の業界のニュアンスや用語を理解するようにモデルをトレーニングできます。
ファインチューニングは画像分類タスクにも役立ちます。たとえば、磁気共鳴画像 (MRI) を扱っている場合、ファインチューニングを使用して、異常を識別できるようにモデルをトレーニングすることができます。
また、ファインチューニングを行うことで、組織が他者とコミュニケーションをとる際、特にカスタマーサポートの場面で、適切なトーンを使用できるようになります。対話している相手の感情や気持ちを分析できるようにチャットボットをトレーニングすることができます。さらに、組織の価値観を維持しながら、ユーザーに役立つ方法で応答するようにモデルをトレーニングできます。
RAG とファインチューニングのどちらを選ぶかに関する検討事項
RAG とファインチューニングの違いを理解することで、組織のニーズを満たすためにどちらの AI リソースを導入するべきなのかについて、戦略的な決定を下すことができます。基本的な検討事項には以下のようなものがあります。
チームのスキルセット
RAG でモデルをカスタマイズするには、コーディングとアーキテクチャのスキルが必要です。RAG では、従来のファインチューニング手法よりも利用しやすく簡単な方法で、フィードバックの取得、トラブルシューティング、アプリケーション修正を行うことができます。モデルのファインチューニングには、自然言語処理 (NLP)、 ディープラーニング、モデル構成、データ再処理、評価の経験が必要です。全体的に、より専門的で時間がかかる可能性があります。
データは静的か、動的か
ファインチューニングでは、経時的に変化しない一般的なパターンをモデルに学習させます。トレーニングデータセットの静的スナップショットに基づいているため、モデルの情報が古くなり、再トレーニングが必要になる場合があります。逆に、RAG は任意のソースから特定のリアルタイム情報を取得するように LLM に指示します。つまり、モデルは最新のデータを取得してアプリケーションに情報を提供し、正確で関連性の高い出力を促進します。
予算
従来、ファインチューニングは大量のデータと計算リソースを必要とするディープラーニング技法です。これまで、ファインチューニングによってモデルに情報を与えるには、データにラベルを付け、高価なハイエンドのハードウェアでトレーニングを実行する必要がありました。さらに、ファインチューニングされたモデルのパフォーマンスはデータの品質によって決まり、また、高品質のデータの取得にかかるコストは高額になる場合があります。
それと比較すると、RAG はファインチューニングよりもコスト効率が高い傾向があります。RAG をセットアップするには、データを LLM に接続するパイプラインシステムを構築します。このように直接接続することで、新しいデータの生成に時間、エネルギー、リソースを費やすのではなく、既存のデータを使用して LLM に情報を提供できるため、リソースコストが削減されます。
Red Hat でできること
Red Hat のオープンソース・ソリューションと AI パートナーエコシステムを通じて、 大規模言語モデル運用 (LLMOps) のプロセスに RAG とファインチューニングを導入することができます。
InstructLab を使用してファインチューニングを試してみる
InstructLab は Red Hat と IBM が作成したオープンソース・コミュニティ・プロジェクトで、 生成 AI アプリケーションで使用される LLM に貢献することができます。合成データを使用して LLM のファインチューニングを利用しやすくする フレームワークを提供します。
InstructLab の合成データが LLM を強化する方法を知る
Red Hat Enterprise Linux AI で独自の基盤モデルを作成する
生成 AI を搭載したアプリケーションの構築を始めようとしている組織に対し、 Red Hat® Enterprise Linux® AI は、データを使用してユースケースに迅速に対応するために必要な基盤モデル・プラットフォームを提供します。
Red Hat Enterprise Linux AI は、 オープンソースライセンス LLM の Granite ファミリーと InstructLab モデル調整ツールをすべて単一のサーバー環境に統合します。つまり、データサイエンスのバックグラウンドを持たないドメインエキスパートでも、ハイブリッドクラウド全体で拡張可能な AI モデルをファインチューニングし、貢献することが容易になります。
また、Red Hat Enterprise Linux AI には、信頼できるエンタープライズ製品のディストリビューション、24 時間 365 日のプロダクションサポート、モデルの延長ライフサイクルサポート、 オープンソース保証による法的保護など、Red Hat サブスクリプションのメリットも備わっています。
Red Hat OpenShift AI でアプリケーションをスケーリングする
Red Hat Enterprise Linux AI を使用してモデルをトレーニングしたら、 Red Hat OpenShift® AI によってプロダクション用に拡張できます。
Red Hat OpenShift AI は、AI 対応アプリケーションの構築、デプロイ、管理を支援するツールを備えた柔軟でスケーラブルな 機械学習運用 (MLOps) プラットフォームです。埋め込みを作成するための LLM、出力の生成に必要な取得メカニズム、ベクトルデータベースへのアクセスなど、基盤となるワークロード・インフラストラクチャを提供します。