急速に進化する AI の世界では、大規模な言語モデルが大きな進歩を遂げ、私たちの周囲の世界に関する驚くべき知識を誇っています。まだ
LLM は、人間のようなテキストを理解して生成できるコンピューター モデルです。これらは、デジタル アシスタント、自動修正機能、さらにはメールの一部を支える AI です。彼らの世界に関する知識は多くの場合膨大ですが、完璧ではありません。人間と同じように、LLM も知識の限界に達することがありますが、立ち止まるのではなく、知識に基づいた推測や「幻覚」を起こしてタスクを完了する傾向があります。これにより、不正確な情報や誤解を招く情報が結果に含まれる可能性があります。
単純な世界では、その答えは、クエリが行われたとき、まさに必要なタイミングで、関連する独自情報をモデルに提供することになります。しかし、どの情報が「関連性がある」かを判断することは必ずしも簡単ではなく、LLM が何を達成するように求められているかを理解する必要があります。ここで RAG が活躍します。
AI の世界では、埋め込みモデルは翻訳者のような役割を果たします。 「ドキュメント エンコーディング」と呼ばれるプロセスを通じて、テキスト ドキュメントを大きな数値リストに変換します。このリストは、文書の意味に対する LLM の内部的な「理解」を表します。この数値の文字列はベクトルとして知られており、データの属性を数値で表現したものです。各データ ポイントは、多くの数値を含むベクトルとして表され、各値はデータの特定の特徴または属性に対応します。
一般の人にとって数字の羅列は無意味に思えるかもしれませんが、これらの数字は高次元空間の座標として機能します。緯度と経度が物理空間内の位置を表すのと同じように、この一連の数字は意味空間、つまり考えられるすべての意味が含まれる空間における元のテキストの位置を表します。
これらの数値を座標として扱うことで、2 つの文書間の意味の類似性を測定できます。この測定値は、意味空間内のそれぞれの点の間の距離として取得されます。距離が小さいほど意味が類似していることを示し、距離が大きいほど内容が相違していることを示します。したがって、クエリに関連する情報は、意味空間内でクエリに「近い」ドキュメントを検索することによって発見できます。これがベクトル類似性検索の魔法です。
RAG は、クエリに関連する情報を自動的に検出するために意味論的な類似性を適用する __生成 AI __ アーキテクチャです。
RAG システムでは、ドキュメントはベクトル データベース (DB) に保存されます。各ドキュメントは、埋め込みモデルによって生成されたセマンティック ベクトルに基づいてインデックス付けされるため、特定のクエリ ベクトルに近いドキュメントを迅速に見つけることができます。これは本質的に、各ドキュメントにその意味を示す数値表現 (ベクトル) が割り当てられることを意味します。
クエリが入力されると、同じ埋め込みモデルを使用してクエリのセマンティック ベクトルが生成されます。
次に、モデルはベクトル検索を使用して DB から類似のドキュメントを取得し、ベクトルがクエリのベクトルに近いドキュメントを探します。
関連するドキュメントが取得されると、これらのドキュメントとともにクエリを使用して、モデルからの応答が生成されます。こうすることで、モデルは内部の知識のみに依存する必要がなく、適切なタイミングで提供されたあらゆるデータにアクセスできます。したがって、このモデルは、ベクトル検索を機能として提供するデータベースに保存されている独自のデータを組み込むことにより、より正確で状況に応じて適切な応答を提供できるようになります。
いわゆる「ベクター データベース」がいくつか利用可能です。
クエリ エンコーダと結果ジェネレータに微調整を適用して、パフォーマンスを最適化できます。微調整は、当面の特定のタスクによりよく適応するためにモデルのパラメーターをわずかに調整するプロセスです。
微調整には、LLM の最適化に多くの利点があります。しかし、それにはいくつかの制限もあります。まず、新しいデータや独自のデータを動的に統合することができません。モデルの知識はトレーニング後も静的なままであるため、トレーニング セット外のデータについて尋ねられると幻覚が現れます。一方、RAG は、外部データベースから最新の独自データを動的に取得して組み込み、幻覚の問題を軽減し、状況に応じてより正確な応答を提供します。 RAG を使用すると、モデルに提供される情報を正確にクエリ時に制御できるため、クエリが作成された時点で特定のユーザーに合わせてプロンプトを調整できます。
RAG は、微調整よりも計算効率と柔軟性が優れています。微調整には、データセットの更新ごとにモデル全体を再トレーニングする必要があり、時間とリソースを大量に消費するタスクです。逆に、RAG ではドキュメント ベクトルを更新するだけで済み、より簡単かつ効率的な情報管理が可能になります。 RAG のモジュール型アプローチでは、取得メカニズムを個別に微調整することもでき、基本言語モデルを変更することなく、さまざまなタスクやドメインに適応させることができます。
RAG は大規模な言語モデルの能力と精度を強化し、微調整に代わる有力な代替手段となります。実際には、企業は微調整よりも RAG を使用することが多い傾向があります。
RAG を LLM に統合すると、応答の精度が向上するだけでなく、その可能性も最大化されます。このプロセスにより、LLM はプロンプトからコンテンツをインテリジェントに生成するという得意分野に集中できるようになります。 RAG は必要に応じて関連する独自の知識をモデルに提供し、高価なモデル トレーニング ジョブを使用せずにモデルにアクセスできる知識のコーパスを拡張および更新できるため、モデルはもはや唯一の情報源ではありません。
本質的に、RAG はブリッジとして機能し、LLM をその内部機能を超えた知識の宝庫に接続します。その結果、LLM が「幻覚を起こす」傾向が大幅に軽減され、より正確で効率的なモデルがユーザーに提供されます。
DataStax は最近、Astra DB のベクトル検索機能の一般提供を発表しました。それについて学びましょう
Ryan Michael 著、DataStax