google_ml_integration
拡張機能には、public
と google_ml
の 2 つの異なる Namespace にエンベディング関数が含まれています。このページでは、これらの Namespace の関数を使用してテキスト エンベディングを生成する方法について説明します。
public
スキーマの embedding()
関数は、エンドポイントを登録せずに任意の Vertex AI エンベディング モデルで使用できます。タスクタイプなどのカスタム情報を渡す場合は、エンドポイントを登録してから、google_ml
スキーマで google_ml.embedding()
関数を使用します。エンドポイントの登録の詳細については、モデルを登録するをご覧ください。
エンベディングの仕組み
AlloyDB で次の特長を満たすデータベースを実行します。
データベースに
items
というテーブルが存在する。このテーブルの各行には、販売する商品が記録されています。items
テーブルにcomplaints
という列がある。このTEXT
列には、各商品について記録された購入者からの苦情が保存されます。データベースが Vertex AI Model Garden と統合され、
gemini-embedding-001
の英語モデルにアクセスできる。
このデータベースには商品に関する苦情が記録されていますが、苦情は書式なしテキストとして保存されているため、クエリで照会するのは容易ではありません。たとえば、色違いの商品を受け取った顧客からの苦情が最も多い商品を確認したい場合は、テーブルに対して通常の SQL クエリを実行し、さまざまなキーワードで照合を行います。ただし、この方法では、指定したキーワードが含まれている行のみが一致します。
たとえば、SELECT * FROM item WHERE complaints LIKE
"%wrong color%"
などの基本的な SQL クエリでは、complaints
フィールドに The picture shows a blue one, but the one I received was red
のみが含まれる行は返されません。
LLM ベースのエンベディングを使用する SQL クエリは、このようなクエリに対して意味的に類似したレスポンスを返すのに役立ちます。エンベディングを適用すると、この例のテーブルで、苦情が特定のテキスト プロンプト(It was the
wrong color
など)と意味的に類似している項目をクエリできます。
エンベディングを生成するには、次のいずれかのスキーマを選択します。
次のステップ
- ベクトル類似性検索を実行する。
- AlloyDB、pgvector、モデル エンドポイント管理を使用してスマート ショッピング アシスタントを構築する方法について確認する。
- インデックスとクエリベクトルを作成する。
- エンベディング ワークフローの例を確認する。