PostgreSQLを生成AIの情報源として使える高速ベクトルデータベース化拡張「Pgvectorscale」がオープンソースで公開。Pgvectorをさらに高性能化
今回は「PostgreSQLを生成AIの情報源として使える高速ベクトルデータベース化拡張「Pgvectorscale」がオープンソースで公開。Pgvectorをさらに高性能化」についてご紹介します。
関連ワード (採用、文章、高性能等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
PostgreSQLのマネージドサービスなどを提供しているTimescaleは、PostgreSQLで高速なベクトルデータベース機能を実現する拡張機能「Pgvectorcale」をオープンソースとして公開したことを発表しました。
大規模言語モデルを用いた生成AIの注目度が高まる中で、文章や画像、音声といったデータの特徴を数値で表現するベクトル化(もしくはエンベディング)により、大規模言語モデルで扱えるようにすることへの注目も高まってきています。
ベクトルデータベースは、このベクトル化された膨大なデータの保存や類似度の検索などが可能です。
例えば、RAG(Retrieval Augmented Generation)と呼ばれる手法により大規模言語モデルの回答に外部のデータベースから取得したデータを組み込むことができます。こうした場面でベクトルデータベースが活用されます。
高速ベクトルデータベース化する「Pgvectorscale」
PostgreSQLには、すでにベクトル化さあれたデータを扱うための拡張機能として「Pgvector」があります。
今回オープンソースとして公開されたPgvectorscaleは、このPgvectorを補完し、さらに高性能にするために、下記の2つの改善が行われていると説明されています。
(1)マイクロソフトの研究にヒントを得て開発された、Pgvectorデータ用の高性能でコスト効率の高いベクトル検索インデックス「StreamingDiskANN」を採用。
(2)標準的な2値量子化(Binary Quantization)を基にTimescale社の研究者が改良した統計的2値量子化(SBQ:Statistical Binary Quantization)を採用。
Timescaleによると、代表的なベクトルデータベースであるPinconeと比較して、PostgreSQLにPgvectorとPgvectorscaleでは最大で28倍高速だとしています。
PostgreSQLでRAGアプリを簡単に作れる「Pgai」
また同社は、PostgreSQLにエンベディングやモデル補完などのAI関連の機能をさらに組み込む拡張機能「Pgai」も合わせてオープンソースとして公開しました。
Pgaiを用いることで、PostgreSQLを使った検索とRAGアプリケーションの構築が容易になると説明されています。