Postgresのクエリプランを81%高速化する4Bモデルのトレーニング
Training a 4B model to produce 81% faster query plans than Postgres
この記事では、Postgresのクエリプラン生成能力を向上させるために、言語モデル(LM)を活用する実験について詳述しています。特に、40億パラメータ(4B)の小規模なオープンウェイトモデルを、教師ありファインチューニング(SFT)とエージェント型強化学習(RL)を用いてポストトレーニングし、Postgresのデフォルトプランを上回るクエリプランを生成できるかを探求しています。実験の結果、4Bモデルは、当初99個のクエリプランを生成できなかったものに対し、113個の結合負荷の高いクエリ全体で44.7%のレイテンシ削減を達成しました。この実験では、Linuxページキャッシュの競合ノイズを最小限に抑えるPostgres測定リグの構築、ノイズの多い環境でのRLロールアウトスコアリングのためのカスタムGRPOバリアントの設計、vLLMとトレーナーを1つのノードに、Postgresコンテナを別の場所に配置する分散RL、および半千個のGPT-6 Astraエージェント軌道にわたるオフポリシー蒸留などが含まれます。Postgresのクエリオプティマイザの複雑さ、特に結合順序決定のNP困難性、統計情報に基づく推定の限界、そしてpg_hint_planを用いたヒントによるプラン生成の誘導方法についても解説しています。評価には、Join Order Benchmark (JOB) と Cardinality Estimation Benchmark (CEB) が使用され、モデルはCEBでトレーニングされ、JOBで検証されました。ノイズの多い実行時間を削減するため、クエリのウォームアップとキャッシュヒット/リードブロックの比較によるキャリブレーションプロセスが導入されました。
- 40億パラメータ(4B)のオープンウェイトモデルをSFTとエージェント型強化学習でポストトレーニングし、Postgresのデフォルトプランを上回るクエリプランを生成させる実験を実施。
- 4Bモデルは当初99個のクエリプランを生成できなかったが、結合負荷の高い113クエリ全体で44.7%のレイテンシ削減を達成。
- 実験にはLinuxページキャッシュ競合を抑えるPostgres測定リグ、ノイズ環境下でのRLロールアウト採点用カスタムGRPO変種、vLLMとトレーナーを同居させる分散RL、GPT-6 Astraエージェント軌道によるオフポリシー蒸留を実装。
- 評価にはJoin Order Benchmark (JOB)とCardinality Estimation Benchmark (CEB)を使用し、CEBで学習、JOBで検証。プラン生成はpg_hint_planによるヒントで誘導。
4Bという小規模オープンウェイトモデルをSFT+エージェント型RLでポストトレーニングし、Postgresのクエリプラン生成で最大44.7%のレイテンシ削減を達成した点は、AIが汎用チャットからDB運用最適化という高付加価値なエンタープライズ業務へ浸透しつつあることを示す。自社専用の小型モデルで既存DBの性能を引き出せるなら、クラウドDBの性能課金やDBチューニング支援の収益構造、GPU調達コスト、vLLM等の推論基盤需要に影響し得る。ただし現時点では研究実験であり、商用製品化や採用企業の発表ではないため、投資判断には実運用での再現性とベンダー採用動向の追随確認が必要。