新しい知識グラフベースのRAG:SimGRAG(トレーニング不要)

AGIに仕事を奪われたい
この記事は約10分で読めます。

5,637 文字

NEW Knowledge Graph based RAG: SimGRAG (no training)
Excellent new Knowledge Graph based RAG system called SimGraphRAG, or simply SimGRAG. Overview of our four classical KG-...

コミュニティの皆さん、今日は全く新しい知識グラフ駆動型RAGについて見ていきましょう。私たちには4つの手法があり、そして新しい「similar graph RAG」という手法が登場し、非常に印象的な新しいパフォーマンスデータが得られています。
では始めましょう。私たちが直面している問題は、最適化されたRAG検索のために、クエリテキストと知識グラフ構造をどのように整合させるかということです。2023年には、知識グラフの質問応答のための知識拡張言語モデルプロンプティングである「CAPING」がありました。その後、「Knowledge Graph GPT」というフレームワークが登場し、LLMとGPTモデルを使用して知識グラフ上で推論を行う3つのステップ、つまり文章の分割、グラフの検索、推論のステップがありました。
そして「KP」があり、これはパス選択によって知識グラフを強化したLLMモデルで、特定のルールに基づいてパステキストのエンコーディングを学習しました。最後に話したのは「G-Retriever」で、これはテキストグラフの理解と質問応答のための検索拡張生成システムでした。これはシンガポール国立大学のチームによるもので、グラフニューラルネットワークの強みと大規模言語モデルをRAG検索システムに統合したものです。
しかし今、これら4つの古典的な手法に加えて、新しいものが登場しました。これは従来の手法を凌駕するものになるでしょう。ここに「CAPING」、「G-Retriever」、「Knowledge Graph GPT」、「KP」があります。
ところで、一ヶ月前にHowardが発表した医療AIシステムのための新しい知識グラフエージェントの動画を覚えているかもしれません。エージェントレベルでの新しい相互作用がありましたが、今日はもっとシンプルなアプローチを取ります。
また、UCバークレーによる新しいGI手法でLLMを知識グラフに追加した動画や、複数のエージェントを知識グラフに追加した「Agenda Graph」、あるいはMITの新しい手法でLLMにARM GRSのデコードを可能にした動画を思い出すかもしれません。
YouTubeチャンネルの知識グラフ埋め込みプレイリストにある29本の動画で、グラフ埋め込みの方法、トポロジカルな手法を超えてグラフニューラルネットワークを使用する方法、DJLでコードを使用する方法、Keras実装の方法、さらにはホモロジカルなアイデアを用いてGNNを超える方法などを学ぶことができます。
しかし今日は、もっとシンプルで美しいものです。私たちには5番目の手法があります。アイデアは美しく、LLMによるクエリからパターンへの整合手順があります。プロンプトをお見せしますが、非常にシンプルです。次に、パターンからサブグラフへの整合があり、このサブグラフはメインの知識グラフのサブグラフです。そして新しいメトリクス、グラフセマンティック距離という新しい距離を追加し、一緒に定義していきます。
これにより、パターンとサブグラフの整合に関するスコアを正確に知ることができます。この新しい手法では、クエリからパターンへの整合と、パターンからサブグラフへの整合という2つのシンプルなステップがあります。2023年12月後半に発表された新しい論文「SimGRAG」、私は「similar graph RAG」と呼んでいますが、これはテキストクエリと知識グラフ構造を整合させる美しい方法を提供します。
私たちが求めているのは、高速性です。知識グラフには数千万のノードとエッジがあり、レイテンシーは1秒以下であるべきです。また、最も関連性が高く重要なノードとエッジにのみ焦点を当てたいため、AE選択も必要です。さらに重要なことは、複雑な設定での追加のトレーニングや微調整を避けたいということです。
したがって、追加のトレーニングや微調整の手法なしで、シンプルなプラグアンドプレイを実現したいと考えています。短く、速く、安価であることが求められます。これにより、ユーザーのテキストクエリと基礎となる構造を整合させるという美しくも重要な課題が生まれます。知識グラフには固有の構造があり、これらを最適な方法で整合させる必要があります。
新しいチームによる解決策は2段階のアプローチです。まず、LLMを使用してクエリテキストと整合するパターングラフを生成し、次に特定の知識グラフから、パターングラフと図式的に整合する最適な複数のサブグラフを取得します。著者らは新しい評価メトリクスを導入し、これをグラフセマンティック距離メトリクスと呼んでいます。
これ以上シンプルにはできないでしょう。クエリがあり、そこから特定のパターン整合を生成します。私たちではなく、LLMが緑色で示された部分を生成します。下の多様体にはメインのグラフ、知識グラフがあり、そこで特定のサブグラフを識別します。これは青色で示されています。
バージニアとバージニア、L&BとMLEとLore Bore Mall、そしてジョージアン建築とジョージアン、ウィリアム・アンド・メアリー大学とウィリアム・メアリー大学が見えます。セマンティックな新しい距離を計算しており、これらが値です。この新しい手法がいかに簡単でシンプルかを示す美しい可視化です。
深く掘り下げる前に、いくつかの美しいアイデアがあることをお伝えしなければなりません。形式主義や数学的な公式に深く踏み込んでいますが、これについては後ほど詳しく説明します。パターンは緑色、サブグラフは青色で、これ以上簡単にはできないでしょう。
シンプルな質問として、特定のドメイン知識の多様体上で特定のクエリがあり、このパターングラフを生成したい場合、どのように構築するのか。そして、完璧なフィットを得るために最適なメトリクス、最適な評価メトリクスをどのように見つけるのかということです。
著者らが他の4つの古典的な手法に対して主張する改善点は単純です。まず、サブグラフの構造やサイズを明示的に制約しないCAPINGやG-Retrieverとは根本的に異なると述べています。次に、1ホップまたは2ホップに制限されたパス選択モデルを学習するKPとも異なります。最後に、パターングラフに対して最小のメトリクス偏差を持つ上位K個の類似サブグラフを取得するために、最適化されたアルゴリズムをさらに開発しました。
原著から別の構造図を見てみましょう。最初のステップはクエリからパターンへの整合、2番目のステップはパターンからサブグラフへの整合です。ここでセマンティックガイド付きサブグラフ検索機能、RAGからの検索が登場します。エンティティベクトル空間と関係依存ベクトル空間という2つのベクトル構造を使用しています。これらは私たちがいつも行ってきたことです。
言語化されたサブグラフ拡張生成についてコードをお見せしますが、上位Kサブグラフ、上位1サブグラフ、上位2サブグラフ、そして最終的に知識グラフ誘導RAGシステムの正解が得られます。
左側に参照できるように残しておきますが、パターンからサブグラフへの整合手法では、エンティティと関係のベクトル空間を使用します。古典的なベクトル埋め込み、つまりコサイン類似度を使用して生成された美しい文章トランスフォーマー、BERTモデルをベースにしたESPERTモデルのベクトル空間を意味するのかと思いました。
数日前に新しいBERTシステム、Modern BERTが登場したことをお話ししました。これはRAGの最適化に特化して設計された新しい高性能トランスフォーマーアーキテクチャです。これは最近発表されたばかりなので、原著には実装されていませんが、私たちはすぐに実装できます。著者らは古典的なBERTアーキテクチャを使用していますが、私たちはModern BERTを実装できます。
コードについて話すと、GitHubに公式のSimGRAF RAGリポジトリがあり、必要なものすべてが含まれています。検索機能を見ると、埋め込みモデルを使用しており、より深く見ていくと、センテンストランスフォーマーライブラリのBingモデル自体に、ESBERTセンテンストランスフォーマーと古典的なSD実装があることがわかります。これは素晴らしいことです。なぜなら、これは私たちが知識グラフRTM RAGシステムで既に見てきたものだからです。
著者らは特定のデータセット、メタ質問応答データセット(メタカンパニーとは無関係)を使用しています。コードに飛び込む前に、使用すべきクエリからパターンへの整合プロンプトをお見せしたいと思います。これはかなり賢いものです。メタ質問応答データセットに慣れていない場合は、学習するための文献があります。
クエリからパターンへの整合プロンプトは非常に簡単です。私はGPT-4で実行しましたが、これは私のメタQ&Aデータセットの構造に特化したものです。ドメイン固有の知識が他の設定にある場合は、それに応じて調整してください。例1のクエリ、分割アクターなどがあり、文脈内学習を使用しているので、2〜3の簡単な入出力例を使用して文脈内学習を促進しています。
簡単なまとめをしましょう。まずクエリからパターンへの整合について、著者らの原著からより正確に説明します。クエリテキストQが与えられると、LLMにプロンプトを与えて、クエリのセマンティクスと整合するトリプレットのセットからなるパターングラフPを生成します。次にパターンからサブグラフへの整合では、生成されたパターングラフPが与えられると、目的はPと知識グラフG内のサブグラフSとの全体的な類似性を評価することです。
パターンPがサブグラフの期待される構造を定義するため、グラフ同型性(私の動画を参照)を活用して、望ましいサブグラフに構造的制約を課します。著者らは数学的な式でグラフセマンティック距離を定義しており、これはGitHubのコード実装でも見ることができます。
また、未知のエンティティや関係への一般化も美しく行っています。未知のオブジェクトや未知の関係がある場合でも、システムがクラッシュしないようにしています。GSD計算から特定の項目を除外することで、グラフ距離を一般化しています。
上位K検索アルゴリズムの最適化には多くの労力が費やされたと感じます。知識グラフからテキストクエリと本当に整合する上位20または上位100のサブグラフを取得する方法について、非常に詳細な分析があります。この検索アルゴリズムは最初は単純に見えましたが、より深く見てみる必要があります。
最近のサブグラフ同型アルゴリズムは、フィルタリング、順序付け、列挙のパラダイムに従うことが多く、潜在的な検索空間を絞り込むために、著者らはまずセマンティック埋め込みを適用して、可能性の低い候補ノードと関係をフィルタリングします。その後さらに定義を進め、公開された上位K検索アルゴリズムが示されています。
このシュードコードは、それほど単純ではないことを示していますが、本質的な美しさが隠れています。原著を読むことをお勧めします。さらに説明するには10〜20分かかりますが、コードがあり、主要な機能グループを理解しているとしましょう。
ベンチマークを見てみましょう。特定のデータセット、MAA Q&Aまたはファクト知識グラフの精度について、著者らのデータがあります。トレーニングなしの知識グラフ駆動型RAGシステムを見てみると、LLMはLlama 70Bシステムを使用しています。CAPINGと知識グラフGPTシステム、そして新しいSimGraph RAGシステムがあります。パフォーマンスの向上は印象的だと思います。これらの数値を見てください。特にマルチホップの3ホップ評価で98%近くというのは、理論物理学や有機化学など、より複雑なドメイン知識を扱う場合に特に興味深いものです。著者らは誇らしげにこの結果を発表しています。
要点を振り返ると、クエリからパターンへの整合とパターンからサブグラフへの整合があり、設計されたパターンと基礎となるサブグラフ間の整合を定量化するための新しいグラフセマンティック距離メトリクスを導入し、文脈の意識とエンティティリークの防止を確保しています。
もちろん、特殊なドメイン知識で作業していることを忘れないでください。美しいのは、BERTで独自のベクトル空間を構築できることです。ベクトルストアやベクトル空間を購入した場合、1万個の異なるドメインで学習されているかもしれませんが、光学物理や化学だけを扱う場合は、2〜3のドメインだけが必要です。
したがって、単一のタスク、単一のプロンプト、単一のクエリに高度に特化した小規模だが賢いベクトル基底を構築でき、絶対的なエキスパートシステムを持つことができます。商用ベクトルストアに費用を支払う必要はありません。
このチャンネルで話した5番目の手法、知識グラフ駆動型RAG、外部データを使用した検索拡張生成について、非常に簡単な紹介をしました。大規模言語モデルを実装し、トレーニングデータセットに基づいてドメイン固有の新しいベクトル空間、新しいベクトル埋め込みを構築し、システム全体はSimGraph RAGまたはSimGRAGと呼ばれています。
会社から知識グラフを提供されているRAGシステムを最適化したい場合、これは非常に興味深い新しい手法だと思います。これが最新のロジック実装です。このビデオを楽しんでいただけ、試してみたい新しい情報や新しいコードを見つけていただけたことを願っています。ぜひチャンネル登録をお願いします。次の動画でお会いしましょう。

コメント

タイトルとURLをコピーしました