Timescale社は最近、pgai VectorizerでPostgreSQLのAIサービスを拡張した。このアップデートにより、開発者は外部ツールや追加インフラを必要とすることなく、リレーショナルデータと共にベクトル埋め込みを作成、保存、管理できるようになる。
TimescaleDBは、時系列データ用に調整されたPostgreSQLのオープンソース拡張であり、最初にリアルタイム分析機能でPostgreSQLを補強した。現在、Timescaleはpgaiスイートとpgai Vectorizerの導入によりAI統合を強化し、開発者がPostgreSQL内でシームレスにAI開発を行えるようにしている。
貢献者は開発プロセスにおけるいくつかの課題を指摘している。貢献者の一人であるTostino氏は、OpenAI APIへの準拠性に関する問題を強調し、現在の実装にはオープンソースの推論サーバ上でプロキシソリューションやカスタムサンプラーを使用するために必要ないくつかの引数が欠けていると指摘した。さらにTostino氏は、柔軟性を高めるために、厳密なデータ型ではなく、JSONを返す生の関数の上に、「単純な」ラッパーを提供する関数を構築すべきだと提案した。
検索エンジンやAIエージェントのようなAIシステムを構築するには、複雑なワークフローが必要になることが多い。pgai Vectorizerは、AIワークフロー全体をPostgreSQLに統合することでこれを合理化し、開発者が使い慣れたSQLコマンドを使って高度なAIアプリケーションを迅速かつ効率的に作成できるようにする。
Timescaleは、ベクトル埋め込みを独立したデータとして扱う標準的なアプローチは、同期の問題やデータの陳腐化につながると主張している。The Institute for Ethical AI & Machine Learningは次のようにコメントしている。:
TimescaleDBは、埋め込みデータをデータベースのインデックスと同様の派生データとして扱うことを提案しています。planetscaleのようなDBが最近、埋め込みデータをインデックスにネイティブに統合する拡張機能を提供し、「ネイティブ・ベクタライザ」抽象化を通じて実現していることを考えるとこれは興味深いです。しかし、この場合でも、PostgreSQL用のOSS pgai Vectorizerを活用しており、埋め込みとデータベース内の元データの同期を自動化するのに役立っています。
pgvectorと pgvectorscale拡張機能により、データベースにベクトル埋め込みを保存し、高速で効率的なベクトル検索を行うことができる。pgai Vectorizerはこれらの拡張機能の上に構築され、データベース内のあらゆるテキストデータに対する埋め込みを自動的に作成し、同期する。
1行のコードで、テーブル内のデータの埋め込みを作成するベクタライザを定義できる。機械学習コンサルタントのSuvarna Kadam氏のコメント:
pgai Vectorizerを使用すると、ベクトル埋め込みを管理する1つのSQLコマンドを、ソースデータとの同期を維持するための通常のエンジニアリングの課題「なし」で使用することを可能にします!
SELECT ai.create_vectorizer( <table_name>::regclass, destination => <embedding_table_name>, embedding => ai.embedding_openai(<model_name>, <dimensions>), chunking => ai.chunking_recursive_character_text_splitter(<column_name>));
同じ週に、Neon Database LabsもPgragという実験的なPostgreSQL拡張機能を導入した。これは、エンドツーエンドの検索拡張生成(RAG)パイプラインをサポートすることを目的としており、自社のAI機能をさらに拡張するものである。
pgai Vectorizerの最近の立ち上げに加えて、OpenAIを越えてサポートされる埋め込みモデルの範囲を拡大することにコミュニティが関心を寄せている。貢献者のclaudeomusic氏は、埋め込みモデルの選択をコンフィギュレーション可能にする可能性について質問し、ユーザーにとっての柔軟性の重要性を強調した。これに対して、Timescale社のalejandrodnm氏は、現在のVectorizer機能はOpenAIのモデルのみをサポートしているが、将来的には他のプロバイダーも含める計画があることを確認した。チームは、この目標を達成するために、コミュニティからの貢献を歓迎している。別の貢献者であるwang氏は、Openrouterで使用する方法についての回避策を共有した。
事前に構築されたDocker開発者環境を使って埋め込みを素早く試すには、Vectorizerクイックスタートを参照のこと。より詳細な技術仕様については、Vectorizer APIリファレンスを参照のこと。