現代のリレーショナルデータベースにおいて、基数推定(CE)は極めて重要な役割を果たしています。簡単に言うと、基数推定とは、データベースクエリが中間結果としていくつ返されるかを予測することです。この予測は、クエリオプティマイザの実行計画選択に大きな影響を与え、結合順序、インデックスの使用の有無、最適な結合方法の選択などを決定します。基数推定が不正確だと、実行計画が大きく損なわれ、クエリ速度が極端に遅くなり、データベース全体の性能に深刻な影響を与えます。
しかし、既存の基数推定方法には多くの制約があります。従来のCE技術はいくつかの簡略化された仮定に依存しており、特に複数のテーブルと条件を含む複雑なクエリの基数を正確に予測することが困難です。学習型CEモデルはより高い精度を提供できますが、トレーニング時間が長く、大規模なデータセットが必要であり、体系的なベンチマーク評価が不足しているという制約があります。
このギャップを埋めるため、Googleの研究チームはCardBenchという新しいベンチマークテストフレームワークを発表しました。CardBenchには、20を超える現実世界のデータベースと数千ものクエリが含まれており、これまでのベンチマークをはるかに凌駕しています。これにより、研究者は様々な条件下で、異なる学習型CEモデルを体系的に評価・比較することが可能になります。このベンチマークは、インスタンスベースのモデル、ゼロショットモデル、ファインチューニングモデルの3つの主要な設定をサポートしており、様々なトレーニングニーズに対応できます。
CardBenchのデザインには、必要なデータ統計の計算、現実的なSQLクエリの生成、CEモデルのトレーニングに使用される注釈付きクエリグラフの作成を行うためのツール群も含まれています。
このベンチマークテストでは、2つのトレーニングデータセットを提供します。1つは複数のフィルタリング条件述語を持つ単一テーブルクエリ用、もう1つは2つのテーブルを含むバイナリ結合クエリ用です。このベンチマークテストには、9125個の単一テーブルクエリと8454個のバイナリ結合クエリが含まれており、より小さなデータセットの1つを使用することで、モデル評価に強力で挑戦的な環境を提供します。Google BigQuery由来のトレーニングデータのラベル付けには7CPU年分のクエリ実行時間が必要であり、このベンチマークテストの作成に多大なる計算投資がなされたことが示されています。これらのデータセットとツールを提供することで、CardBenchは新しいCEモデルの開発とテストを行う研究者の参入障壁を下げます。
CardBenchを用いた性能評価では、ファインチューニングモデルが特に優れた性能を示しました。ゼロショットモデルは、特に結合を含む複雑なクエリにおいて、未知のデータセットに適用した場合に精度を向上させることが困難ですが、ファインチューニングモデルは、はるかに少ないトレーニングデータでインスタンスベースの方法と同等の精度を達成できます。例えば、ファインチューニングされたグラフニューラルネットワーク(GNN)モデルは、バイナリ結合クエリにおいて、中央値q誤差1.32、95パーセンタイルq誤差120を達成し、ゼロショットモデルを明らかに上回りました。結果は、500個のクエリであっても、ファインチューニングされた事前学習モデルは性能を大幅に向上させることを示しています。これは、トレーニングデータが制限されている可能性のある実際のアプリケーションに適しています。
CardBenchの発表は、学習型基数推定分野に新たな希望をもたらし、研究者がより効率的にモデルを評価・改善し、この重要な分野の更なる発展を促進することを可能にします。
論文へのリンク:https://arxiv.org/abs/2408.16170
要点:
- 📊 CardBenchは、20個の現実世界のデータベースと数千のクエリを含む新しいベンチマークテストフレームワークであり、学習型基数推定モデルの体系的な評価をサポートします。
- 🛠️ このベンチマークは、データ統計の計算、SQLクエリの生成、クエリグラフの作成を行うツールを提供し、研究者の開発障壁を下げます。
- 🚀 ファインチューニングモデルは性能評価において優れた性能を示し、少量のトレーニングデータで従来のモデルと同等の精度を達成でき、実用的な可能性を示しています。