|
この記事は、Ant Groupの開発エンジニアであるZhu Jinye氏によって執筆されました。彼の主な研究分野はナレッジグラフのストレージと計算です。過去1年間、彼はチームにおいてAntのナレッジグラフプラットフォームとKGFabricの開発に主に携わり、その研究成果はVLDB'24に掲載されています。 2024年8月26日、データ管理とデータベースに関する国際会議「VLDB 2024」が広州で開催されました。アントグループのナレッジエンジンチームの論文「KGFabric:エンタープライズデータ相互接続のためのスケーラブルなナレッジグラフウェアハウス」が、インダストリートラックの口頭発表に採択されました。 KGFabricは、分散ファイルシステム(DFS)をベースとした本格的なナレッジリポジトリソリューションです。データモデルとしてSPGを採用することで、ストレージと計算効率を最適化しながら、現実世界をより適切に表現します。KGFabricはGraph Fabric機能をサポートし、ユーザーのプライバシーを保護しながらマルチドメイングラフの融合を可能にし、ナレッジグラフにおけるデータサイロの問題を効果的に解決します。一般的なリレーショナルDBMSやグラフデータベースと比較して、KGFabricはセマンティックリレーションシップのストレージ容量を90%以上削減します。実際のワークロードでは、グラフ融合のパフォーマンスが21倍向上し、マルチホップセマンティックグラフ分析では100倍のパフォーマンス向上が実証されています。 紙の住所https://www.vldb.org/pvldb/vol17/p3 841 -yi.pdf 01. 概要Antグループでは、Ant Knowledge Graph Platformを構築しました。このプラットフォームは、加盟店、企業、アカウント、製品に関連する多数のドメイン固有のナレッジグラフを構築し、数兆単位の構造化ナレッジグラフを管理することで、検索、レコメンデーション、リスク管理などのビジネスを支援します。クロスドメインのナレッジ再利用に基づくエンタープライズレベルの多様なナレッジマネジメント機能を提供し、多様なグラフビジネスのセルフサービスアクセスニーズに対応します。また、様々なダウンストリームサービスやグラフ推論・分析アプリケーションをサポートし、数千億を超える規模にも対応できるよう線形拡張性を備えています。 プラットフォームの開発とイテレーションの過程で、クロスドメイングラフ融合、グラフマッチング、グラフ表現学習といったタスクがシステム機能への要求をますます高めるにつれ、既存のデータウェアハウスシステム(ODPSなど)やグラフデータベースではこれらのニーズを満たすことがますます困難になっています。そこで、超大規模ナレッジウェアハウスソリューションであるKGFabricを提案します。 KGFabricは、データモデルとしてSPG(Semantic-enhanced Programmable Graph)を採用し、分散ファイルシステム(DFS)をベースとしたネイティブナレッジグラフストレージとマルチドメインナレッジグラフ融合機能を提供します。KGFabricは、複数のグラフモデルやスーパーバーテックスストレージ・処理との互換性を最初から考慮し、基盤となるファイルストレージとしてハイブリッドストレージフォーマットを設計・実装しています。また、属性グラフにはCSRインデックス、セマンティックグラフにはトリプルインデックスを実装しています。基盤レベルでは、ファイルI/O操作はすべてPOSIX APIを用いて実装されているため、低コストでマルチクラウド環境を構築できます。 02. SPGベースのモデリングKGFabricは、属性グラフとセマンティクス互換性のあるSPG(Semantic-enhanced Programmable Graph)データモデルを採用しています。SPG(Semantic-enhanced Programmable Graph)は、Ant Financialのナレッジグラフプラットフォームにおける長年の金融ビジネス支援経験から生まれた、属性グラフをベースとしたセマンティクスフレームワークです。属性グラフの構造的性質とRDFのセマンティクスを独創的に融合することで、RDF/OWLのセマンティクスの複雑さが産業応用の妨げになるという問題を克服し、属性グラフのシンプルな構造とビッグデータシステムとの互換性といった利点を継承しています。 属性グラフにおけるノードタイプの意味表現を強化するため、SPGはノードタイプとエッジタイプを拡張し、より多くの主題分類モデルを導入することで、ノードタイプを拡張し、より多様な知識表現に対応します。SPGにおける主題分類モデルについて簡単に説明します。
03. コアコンピテンシー3.1 LSMツリーに基づくストレージアーキテクチャKGFabric のストレージアーキテクチャは LSM ツリーをベースとしており、データレイヤーはベースレイヤーとデルタレイヤーに分かれています。デルタレイヤーはさらにレベル 0 とレベル 1 に分かれています。デルタレベル 0 は、メッセージキューからのインポートなど、ストリーミングインポート(ミニバッチ)に最適化されています。デルタレベル 1 は、主に Hive や ODPS からのインポートなど、バッチインポートのシナリオを想定しています。 リード増幅のバランスをとるため、バックグラウンドで階層化コンパクションを実行し、定期的にデータの再編成と圧縮を行っています。Ant Groupでは、1日に1,000件以上のデータインポートタスクが実行されます。実際の運用シナリオでは、このコンパクション戦略により、ランダムリードとシーケンシャルリードのリード増幅をそれぞれ5倍未満、1.6倍未満に抑えています。 KGFabric は主にいくつかのメインディレクトリ レベルに分かれています。
KGFabric のバージョン管理は、ファイルシステムの「put-if-not-exists」セマンティクスに依存し、VersionPointer メカニズムを使用して読み取り/書き込み競合を解決します。インポートタスクが成功すると、KGFabric は自動的に新しいバージョンファイルを作成し、対応するバージョンファイルをタイムスタンプにマッピングすることで、任意のスナップショットにアクセスできるようにします。現在のファイルは常に最新のデータバージョンを記録します。 3.2 セマンティックグラフに最適化されたファイル形式実際のグラフデータはRelationGroupディレクトリに保存されており、複数のデータファイルと対応するメタデータが含まれています。データファイルにはPGFileとSGFileがあり、それぞれ属性グラフデータとセマンティックグラフデータを格納しています(次の図を参照)。 PGFile と SGFile はどちらもファイル内にフッターと BlockIndex で構成されていますが、内部にそれぞれ PGBlock と SGBlock を格納するという点で異なります。PGBlock と SGBlock は書き込みと圧縮の基本単位です。PGBlock は主にプロパティ グラフの格納に使用します。PGBlock 内には、頂点テーブル、エッジ テーブル (出力エッジと入力エッジを含む)、およびプロパティ テーブルがあります。CSR インデックス形式を使用してサブグラフ データをさらに圧縮します。プロパティ テーブルは行または列の格納形式をサポートし、ビットマップ マトリックスを使用して NULL 値の属性を識別します。PGBlock 内では、頂点パーティション分割を使用して、スーパー頂点の密なエッジ (次数が非常に高く、通常は 100,000 を超えるエッジ) を複数の PGBlock に分散して別々に格納します。 下図に示すように、vid2はブロック#1とブロック#95でそれぞれ2回分割ロジックをトリガーしました。上記のロジックに基づいて、ロードと計算におけるスーパーポイントのメモリボトルネック問題を解決し、関係タイプ別にエッジをロードする際のグループ化制限のI/O効率を向上させました。 KGFabric では、セマンティック グラフのストレージは 3 つのストレージ コンポーネントで構成されます。
3.3 グラフファブリック従来のデータファブリックは主にデータの冗長性に基づいており、通常はクラスタ間でデータをコピーすることを意味します。KGFabricでは、冗長なコピーを回避しながらマルチドメイングラフ融合を実現するグラフファブリックフレームワークを実装しました。融合するエンティティタイプを選択し、チェーンポインタまたは融合演算子を指定するだけで、Graph Merge Tree (GMT) は仮想型 FuseType を自動的に構築します。ユーザーはこの仮想型を透過的に使用することで、Fuse-On-Write (FOW) または Fuse-On-Read (FOR) に基づくグラフ融合を実装できます。 GMTはGraph Fabricを実装するためのコアデータ構造です。論理的には多元木であり、FORプロセスは木を後順で走査する処理として抽象化できます。後順走査の際には、AntPrivacy APIを統合し、Graph Fabric実行前にデータの属性レベルの暗号化を行うことで、グラフ融合時のユーザーデータのセキュリティを効果的に確保します。 3.4 グラフ分析システムの統合金融シナリオにおけるロードパフォーマンスを最適化するために、KGFabric はグラフ分析システムのストレージバックエンドとして機能し、ネイティブのグラフ取得およびロード機能を提供することで、分散グラフ構築シナリオにおけるシャッフルの追加オーバーヘッドを回避します。KGFabric は以下の最適化を実装しています。
04. 実験評価システムのパフォーマンスを評価するために、ストレージスペース、グラフ分析効率、およびグラフ ファブリックのスケーラビリティに関する実験を実施しました。 4.1 データセット属性グラフ(LPG)データセットとして、主にLDBC-Finbenchを選択し、意味関係を追加して拡張し、セマンティックグラフ(SPG)データセットとして新しいデータセットLDBC-Finbench-Xを作成しました。さらに、実世界のデータセットとして、実稼働シナリオからユーザーグラフ、マーチャントグラフ、財務グラフを選択しました。データセットの仕様は次のとおりです。 各データセットの次数分布は次のとおりです。 4.2 ストレージスペース属性グラフデータセットの場合、KGFabric のストレージ容量は Neo4j の 43.7%、RocksDB の 91.7% に過ぎません。セマンティックグラフデータセットの場合、KGFabric は強力なスキーマモデリングにより、セマンティック関係のストレージオーバーヘッドを大幅に最適化し、RocksDB の 7%、Neo4j の 1.9% にしかスペースを消費しません。 4.3 グラフ分析の効率我々は主に、ペアワイズパスとサイクルパターンという2つの典型的なグラフ分析タスクを選択し、主にODPS、Neo4j、RocksDBと比較しました。ペアワイズパスの実験では、分析タスクのホップ数が増加するにつれて、KGFabricが提供するバックエンドによってグラフ計算のスケーラビリティが大幅に向上しました。 サイクルパターン実験では、パターン化コストが低いため、KGFabric は 3 ホップ ループ分析に必要な時間を最大 67.8% 削減できます。 4.4 グラフファブリックのスケーラビリティデフォルトのチェーンインデックス戦略(IDE)では、データソース数の増加に伴い、KGFabricはODPSと比較して優れたスケーラビリティを発揮します。ユーザー定義のチェーンインデックス戦略(UDL)のパフォーマンスを最適化するために、データを事前にソートするrindexを実装し、レイテンシをさらに削減しました。 記事のおすすめOpenSPG は、成熟した信頼性の高い知識構築ソリューションを提供する最初のリリースをリリースしました。 Ant Group のナレッジ グラフ管理システムに関する研究成果は、トップ クラスの国際会議で認められ、KGFabric の論文が VLDB 2024 に選出されました。 ステップバイステップのチュートリアル: カスタム LLM をサポートするように GraphRAG を変更する |