AlloyDB AI を使用した生成 AI アプリケーションの構築

AlloyDB AI は、AlloyDB for PostgreSQL と AlloyDB Omni に含まれる機能スイートであり、機械学習(ML)モデルのセマンティック機能と予測機能をデータに適用できます。このページでは、AlloyDB で利用可能な ML を活用した AI 関数の概要について説明します。

ベクトルの保存、インデックス登録、クエリ

標準の pgvector PostgreSQL 拡張機能は AlloyDB 用にカスタマイズされており、vector と呼ばれます。生成されたエンベディングをベクトル列に保存できます。この拡張機能では、IVF インデックスを作成するためのスカラー量子化機能もサポートされています。ストック pgvector で使用できる IVFFlat インデックスまたは HSNW インデックスを作成することもできます。

ベクトルの保存の詳細については、ベクトルを保存するをご覧ください。

AlloyDB には、カスタマイズされた vector 拡張機能に加えて、ScaNN アルゴリズムを活用した高効率の最近傍インデックスを実装する alloydb_scann 拡張機能が含まれています。

インデックスの作成とベクトルのクエリの詳細については、インデックスを作成し、ベクトルをクエリするをご覧ください。

ベクトル クエリのパフォーマンスをチューニングする

インデックスをチューニングして、秒間クエリ数(QPS)とクエリでの再現率のバランスを取ることができます。インデックスのチューニングの詳細については、ベクトル クエリのパフォーマンスをチューニングするをご覧ください。

エンベディングとテキスト予測を生成する

AlloyDB AI は、google_ml_integration 拡張機能を使用してモデルをクエリするための 2 つの関数を使用して PostgreSQL 構文を拡張します。

  • 予測を呼び出し、トランザクション内で SQL を使用してモデルを呼び出します。

  • エンベディングを生成して、LLM にテキスト プロンプトを数値ベクトルに変換させます。

    embedding() 関数を使用して Vertex AI モデルをクエリできます。google_ml.embedding() 関数を使用すると、登録済みの Vertex AI、ホスト、サードパーティのモデルをクエリできます。

    これらのベクトル エンベディングは pgvector 関数への入力として適用できます。これには、相対的なセマンティック距離に従ってテキストのサンプルを比較し、並べ替えるメソッドが含まれます。

Vertex AI でクラウド内のモデルを使用する

Vertex AI と連携するように AlloyDB Omni を構成できます。

これにより、アプリケーションには次のようなメリットがあります。

  • アプリケーションは、アクセス権を持つ Vertex AI Model Garden に保存されている任意のモデルを使用して予測を呼び出すことができます。

  • アプリケーションは、textembedding-gecko 英語モデル LLM を使用してエンベディングを生成できます。

次のステップ