セクションを選択

RAG とファインチューニング

URL をコピー

 RAG とファインチューニングはいずれも 大規模言語モデル (LLM) の改良を目的としています。RAG は基盤となる LLM を変更せずにモデルを改良しますが、ファインチューニングでは LLM の重みとパラメーターを調整する必要があります。多くの場合、ファインチューニングと RAG アーキテクチャを併用してモデルをカスタマイズすることができます。

Red Hat AI の詳細

LLM とは、人間の言語を理解し生成するために 機械学習 (ML) 技法を活用した 人工知能 (AI) の一種です。これらの ML モデルでは、テキストの生成、要約、翻訳、リライト、分類、カテゴライズ、分析などを行うことができます。エンタープライズレベルでの最も一般的な用途は、チャットボットのような質問応答システムの作成です。

LLM の 基盤モデルは、さまざまなユースケースを幅広くサポートできるよう、一般的な知識に基づいてトレーニングされます。しかし、基本的に特定の組織に特化したドメイン固有の知識は備わっていません。求める出力が生成されるように、必要なデータを使って LLM を調整し、LLM に情報を与える方法として、RAG とファインチューニングの 2 つがあります。

たとえば、顧客と対話するチャットボットを構築しているとします。この場合、チャットボットは会社を代表して会話することになるので、優秀な従業員のように動作させる必要があるでしょう。また、会社が販売する製品や遵守するポリシーなど、会社に関するニュアンスを理解させる必要もあります。従業員をトレーニングするときに学習用の資料や手本となるスクリプトを与えるのと同じように、チャットボットをトレーニングするときには、RAG とファインチューニングを使用してチャットボットが得る知識の基盤を構築します。 

RAG は、任意のソース (データリポジトリ、テキストのコレクション、既存のドキュメントなど) から情報を取得して、LLM 内のデータを補完します。RAG アーキテクチャはデータを取得した後、それを LLM のコンテキストに処理し、融合したソースに基づいて回答を生成します。

RAG が最も有用なのは、定期的に更新される情報でモデルを補完する場合です。任意の外部ソースとの通信経路を LLM に提供することで、出力の精度が向上します。また、RAG がソースを引用するように設計できるので、出力がどのように作成されたかを簡単に追跡でき、透明性が高まり、信頼が構築されます。

チャットボットの例に戻りましょう。「返品ポリシーはどのようなものですか?」といった質問に答えるチャットボットを構築する場合は、RAG アーキテクチャを使用できます。会社の返品ポリシーの詳細が記載されたドキュメントに LLM を接続し、そこから情報を取得するようにチャットボットに指示することができます。そのソースに言及し、詳細を確認してもらうためのリンクを提供するように指示することもできます。また、返品ポリシーのドキュメントに変更があった場合、RAG モデルは最新の情報を取得してユーザーに提供します。

RAG の詳細はこちら

 

RAG のユースケース

RAG は、人がシンプルな方法でデータを使用できるよう、情報を調達し、整理することができます。RAG アーキテクチャを使用すれば、モデルはオンプレミスとクラウドベースの両方のデータソースから知見を取得し、LLM にコンテキストを提供できます。つまり、外部データ、内部文書、さらにはソーシャルメディアフィードを使用して、質問に回答し、コンテキストを提供し、意思決定に役立てることができます。

たとえば、クエリに対して、会社のポリシー、手順、文書に関する具体的な回答を提供する RAG アーキテクチャを作成できます。これにより、文書を手作業で検索して解釈するのにかかる時間を節約できます。

ソフトウェア・エンジニアリングで RAG がどのように使われているかを知る

ファインチューニングは、LLM が目標に合わせて出力を調整できるようにするために、そのモデルに意図を伝える方法だと捉えることができます。ファインチューニングとは、事前にトレーニングしたモデルを、より小規模でよりターゲットを絞ったデータセットを使用してさらにトレーニングし、ドメイン固有のタスクをより効果的に実行できるようにするプロセスです。この追加のトレーニングデータは、モデルのアーキテクチャに組み込まれます。

チャットボットの例に戻りましょう。たとえば、チャットボットが医療のコンテキストで患者と対話できるようにしたいとします。その場合、その作業に関連する医学用語をモデルに理解させることが重要です。ファインチューニング技法は、患者がチャットボットに「PT サービス」について質問したとき、チャットボットがそれを「理学療法サービス」と理解し、適切なリソースに誘導できるようにします。

ファインチューニングのユースケース

ファインチューニングが最も有用なのは、アクセスできる情報の解釈方法をモデルにトレーニングする場合です。たとえば、頭字語や組織の価値観など、特定の業界のニュアンスや用語を理解するようにモデルをトレーニングできます。

ファインチューニングは画像分類タスクにも役立ちます。たとえば、磁気共鳴画像 (MRI) を扱っている場合、ファインチューニングを使用して、異常を識別できるようにモデルをトレーニングすることができます。

また、ファインチューニングを行うことで、組織が他者とコミュニケーションをとる際、特にカスタマーサポートの場面で、適切なトーンを使用できるようになります。対話している相手の感情や気持ちを分析できるようにチャットボットをトレーニングすることができます。さらに、組織の価値観を維持しながら、ユーザーに役立つ方法で応答するようにモデルをトレーニングできます。

RAG とファインチューニングの違いを理解することで、組織のニーズを満たすためにどちらの AI リソースを導入するべきなのかについて、戦略的な決定を下すことができます。基本的な検討事項には以下のようなものがあります。

チームのスキルセット

RAG でモデルをカスタマイズするには、コーディングとアーキテクチャのスキルが必要です。RAG では、従来のファインチューニング手法よりも利用しやすく簡単な方法で、フィードバックの取得、トラブルシューティング、アプリケーション修正を行うことができます。モデルのファインチューニングには、自然言語処理 (NLP)、 ディープラーニング、モデル構成、データ再処理、評価の経験が必要です。全体的に、より専門的で時間がかかる可能性があります。

データは静的か、動的か

ファインチューニングでは、経時的に変化しない一般的なパターンをモデルに学習させます。トレーニングデータセットの静的スナップショットに基づいているため、モデルの情報が古くなり、再トレーニングが必要になる場合があります。逆に、RAG は任意のソースから特定のリアルタイム情報を取得するように LLM に指示します。つまり、モデルは最新のデータを取得してアプリケーションに情報を提供し、正確で関連性の高い出力を促進します。

予算

従来、ファインチューニングは大量のデータと計算リソースを必要とするディープラーニング技法です。これまで、ファインチューニングによってモデルに情報を与えるには、データにラベルを付け、高価なハイエンドのハードウェアでトレーニングを実行する必要がありました。さらに、ファインチューニングされたモデルのパフォーマンスはデータの品質によって決まり、また、高品質のデータの取得にかかるコストは高額になる場合があります。

それと比較すると、RAG はファインチューニングよりもコスト効率が高い傾向があります。RAG をセットアップするには、データを LLM に接続するパイプラインシステムを構築します。このように直接接続することで、新しいデータの生成に時間、エネルギー、リソースを費やすのではなく、既存のデータを使用して LLM に情報を提供できるため、リソースコストが削減されます。 

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、出力の生成に必要な取得メカニズム、ベクトルデータベースへのアクセスなど、基盤となるワークロード・インフラストラクチャを提供します。 

ソリューションパターン

Red Hat と NVIDIA AI Enterprise による AI アプリケーション

RAG アプリケーションを作成する

Red Hat OpenShift AI は、データサイエンス・プロジェクトを構築し、AI 対応アプリケーションを提供するためのプラットフォームです。独自の参照ドキュメントから AI の回答を取得する手法の 1 つである 検索拡張生成 (RAG) をサポートするために必要なすべてのツールを統合できます。OpenShift AI を NVIDIA AI Enterprise に接続すると、 大規模言語モデル (LLM) を試して、アプリケーションに最適なモデルを見つけることができます。

ドキュメントのパイプラインを構築する

RAG を利用するには、まずドキュメントをベクトルデータベースに取り込む必要があります。サンプルアプリでは、一連の製品ドキュメントを Redis データベースに埋め込んでいます。これらのドキュメントは頻繁に変更されるため、定期的に実行するこのプロセス用のパイプラインを作成すると、常に最新バージョンのドキュメントを入手できます。

LLM カタログを閲覧する

NVIDIA AI Enterprise ではさまざまな LLM のカタログにアクセスできるため、さまざまな選択肢を試して、最良の結果が得られるモデルを選択できます。モデルは NVIDIA API カタログでホストされています。API トークンを設定したら、OpenShift AI から直接 NVIDIA NIM モデル提供プラットフォームを使用してモデルをデプロイできます。

適切なモデルを選択する

さまざまな LLM をテストする際、ユーザーは生成される応答をそれぞれ評価することができます。Grafana モニタリング・ダッシュボードを設定して、各モデルの評価だけでなく、レイテンシーと応答時間も比較できます。そしてそのデータを使用して、プロダクションで使用する最適な LLM を選択できます。

PDF をダウンロードアイコン

アーキテクチャ図は、Red Hat OpenShift AI と NVIDIA AI Enterprise を使用して構築されるアプリケーションを示しています。コンポーネントには、GitHub に接続して DevOps のインタラクションを処理するための OpenShift GitOps、モニタリング用の Grafana、データサイエンス用の OpenShift AI、ベクトルデータベースとしての Redis、イメージレジストリとしての Quay が含まれます。これらのコンポーネントはすべて、アプリケーションのフロントエンドとバックエンドとつながります。これらのコンポーネントは Red Hat OpenShift AI 上に構築されており、ai.nvidia.com と統合されています。
ご案内

InstructLab

InstructLab は、大規模言語モデル (LLM) を強化するオープンソース・プロジェクトです。

関連資料

記事

生成 AI とは

生成 AI は、大規模なデータセットで訓練されたディープラーニングモデルを使用して新しいコンテンツを作成します。

記事

機械学習とは

機械学習は、明示的にプログラムしなくても、パターンを見つけ、予測し、経験から学習するようにコンピュータをトレーニングする手法です。

記事

基盤モデルとは

基盤モデルは、さまざまなタスクを実行するように訓練された機械学習 (ML) モデルの一種です。 

AI/ML についてさらに詳しく

製品

今すぐご利用いただけます

エンタープライズ・アプリケーション向けの Granite 大規模言語モデル (LLM) ファミリーをシームレスに開発し、テストし、実行するための基盤モデル・プラットフォームです。

Red Hat OpenShift で AI/ML の実験およびモデルをトレーニング、チューニング、提供、監視、管理するツールを利用できる、AI 重視のポートフォリオです。

テスト済みサービスの統合セットを備えたエンタープライズ・アプリケーション・プラットフォームであり、これによって、任意のインフラストラクチャでアプリケーションを市場投入できます。 

Red Hat Ansible Lightspeed with IBM watsonx Code Assistant は、Ansible の自動化技術者、運用担当者、開発者が、自らと同じ立場のユーザーに配慮して設計した生成 AI サービスであり、ました。 

関連資料

e ブック

本番利用に適した AI/ML 環境構築のための最重要事項

アナリスト資料

MLOps 向け Red Hat ハイブリッドクラウド・プラットフォームの Total Economic Impact™

Web セミナー

オープンソースと Kubernetes で AI を最大限に活用する