ホームページ  >  記事  >  テクノロジー周辺機器  >  GraphRAG を理解する (1): RAG の課題

GraphRAG を理解する (1): RAG の課題

WBOY
WBOY転載
2024-04-30 19:10:01995ブラウズ

RAG (リスク評価グリッド) は、外部知識ソースを使用して既存の大規模言語モデル (LLM) を強化し、コンテキストにより関連性の高い回答を提供する方法です。 RAG では、取得コンポーネントは追加情報を取得し、応答は特定のソースに基づいて、LLM の応答がこの情報に基づくように、この情報を LLM プロンプトにフィードします (拡張フェーズ)。 RAG は、トリミングなどの他の技術と比較して経済的です。また、この情報に基づいて追加のコンテキストを提供することで幻覚を軽減するという利点もあります (拡張段階)。RAG は、今日の LLM タスク (レコメンデーション、テキスト抽出、センチメント分析など) のワークフロー メソッドになります。

GraphRAG を理解する (1): RAG の課題

このアイデアをユーザーの意図に基づいてさらに細分化すると、通常はベクトルのデータベースにクエリを実行します。ベクトル データベースは、連続ベクトル空間を使用して、近接ベースの検索を使用して 2 つの概念間の関係をキャプチャします。

ベクトル データベースの概要

ベクトル空間では、テキスト、画像、音声、その他の種類の情報が変換されます。ベクトルに変換します。ベクトルは、高次元空間におけるデータの数値表現です。各次元はデータの特徴に対応し、各次元の値はその特徴の強さまたは存在を反映します。 ベクトル表現を通じて、データに対して数学的演算、距離計算、類似性比較などを実行できます。さまざまな寸法に対応する値は、特徴の強さや存在を反映します。 テキスト データを例にとると、各ドキュメントはベクトルとして表すことができ、各次元はドキュメント内の単語の頻度を表します。このようにして、2 つのドキュメントは、ベクトル間の距離を計算し、別のベクトルを使用してこれらのデータベースにクエリを実行し、ベクトルを検索することにより、データベース内で近接ベースの検索を実行できます。それはベクトル空間ではそれに「近い」ということです。ベクトル間の近接性は、通常、ユークリッド距離、コサイン類似度、マンハッタン距離などの距離尺度によって決定されます。ベクトル間の近接性は、通常、ユークリッド距離、コサイン類似度、マンハッタン距離などの距離尺度によって決定されます。

データベースへの検索を実行するときは、システムがベクトルに変換するクエリを指定します。次にデータベースは、このクエリ ベクトルとデータベースに既に格納されているベクトルの間の距離または類似性を計算します。 (選択したメトリックに従って) クエリ ベクトルに近いベクトルが、最も関連性の高い結果とみなされます。 (選択したメトリックに基づいて) クエリ ベクトルに最も近いこれらのベクトルが、最も関連性の高い結果とみなされます。

近接ベースの検索は、ベクトル データベースで特に強力であり、推奨システム、情報検索、異常検出などのタスクに適しています。

このアプローチにより、表面的な一致だけに依存するのではなく、データのコンテキストと深い意味を理解することで、システムがより直観的に動作し、ユーザーのクエリに効果的に応答できるようになります。

ただし、高度な検索のためにデータベースに接続するアプリケーションには、データ品質、動的な知識の処理能力、透明性などの制限があります。

RAG の制限

RAG はドキュメントのサイズに応じて、大きく 3 つのカテゴリに分類されます。ドキュメントが小さい場合は、ドキュメントが非常に大きい (または複数のドキュメントがある) 場合は、クエリ時にインデックス付けされて使用される小さなチャンクが生成されます。

RAG には成功にもかかわらず、いくつかの欠点があります。

RAG のパフォーマンスを測定する 2 つの主な指標は、混乱と幻覚です。混乱は、テキスト生成プロセスで同様に考えられる次の単語の選択肢の数を表します。つまり、言語モデルがその選択においてどの程度「混乱」しているかということです。幻覚は、AI によって行われる虚偽の発言または想像上の発言です。

RAG は幻覚を軽減しますが、幻覚をなくすことはできません。小さくて簡潔な文書がある場合は、(LLM のオプションが少ないため) 混乱を減らし、(文書の内容だけを尋ねる場合) 幻覚を減らすことができます。もちろん、裏を返せば、1 つの小さな文書からは簡単なアプリケーションが作成されるということです。より複雑なアプリケーションの場合は、より多くのコンテキストを提供する方法が必要です。

たとえば、「樹皮」という単語について考えてみましょう。少なくとも 2 つの異なるコンテキストがあります:

木のコンテキスト: 「オークの原皮」 「樹皮が寒さから守ってくれます。」

##犬の文脈: 「誰かが家を通るたびに、近所の犬が大声で吠えます。」

##Oneより多くのコンテキストを提供するには、RAG とナレッジ グラフ (GRAPHRAG) を組み合わせます。

ナレッジ グラフでは、これらの単語は、関連するコンテキストや意味と関連付けられています。たとえば、「樹皮」は「木」と「犬」を表すノードに接続されます。他の関連性は、共通の行動 (例: 木の「保護」、犬の「騒音」) または特性 (例: 木の「荒さ」、犬の「うるささ」) を示す場合があります。この構造化された情報により、言語モデルは文内の他の単語または会話の全体的なトピックに基づいて適切な意味を選択できます。

次のセクションでは、RAG の制限と、GRAPHRAG がそれらにどのように対処するかを見ていきます。

元のタイトル: GraphRAG を理解する – 1: RAG の課題

原著者: ajitjaokar

#

以上がGraphRAG を理解する (1): RAG の課題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。