このガイドでは、Google Kubernetes Engine(GKE)に Qdrant ベクトル データベース クラスタをデプロイする方法について説明します。
ベクトル データベースは、高次元ベクトルの大規模なコレクションを管理および検索するために特別に設計されたデータストアです。これらのベクトルは、テキスト、画像、音声、動画などのデータのほか、数値でエンコードできるデータを表します。完全一致に依存する従来のデータベースとは異なり、ベクトル データベースは大規模なデータセット内の類似アイテムの検索やパターンの識別に特化しています。こうした特性を持つ Qdrant は、ニューラル ネットワークまたはセマンティック ベースのマッチング、ファセット検索など、さまざまなアプリケーションに適しています。Qdrant は、ベクトル データベースとしてだけでなく、ベクトル類似性検索エンジンとしても機能します。
このチュートリアルは、GKE に Qdrant データベース クラスタをデプロイすることに関心があるクラウド プラットフォームの管理者およびアーキテクト、ML エンジニア、MLOps(DevOps)の専門家を対象としています。
利点
Qdrant には次のようなメリットがあります。
- さまざまなプログラミング言語に対応している幅広いライブラリと、他のサービスと統合できるオープン API。
- 水平スケーリングと、シャーディング / レプリケーション サポートにより、スケーリングと高可用性を簡素化。
- 最新のクラウドネイティブ環境でのデプロイと管理を可能にするコンテナと Kubernetes のサポート。
- 高度なフィルタリングを使用した柔軟なペイロードで、検索条件を正確に調整。
- さまざまな量子化オプションと、インフラストラクチャの費用を抑えながらパフォーマンスを向上させるその他の最適化。
目標
このチュートリアルでは、以下の方法について学習します。
- Qdrant 向けに GKE インフラストラクチャを計画して、デプロイする
- StatefulHA オペレーターをデプロイして、Qdrant の高可用性を確保する。
- Qdrant クラスタをデプロイして構成する。
- デモ データセットをアップロードし、シンプルな検索クエリを実行する。
- 指標を収集してダッシュボードを実行する。
Deployment のアーキテクチャ
このアーキテクチャでは、複数のアベイラビリティ ゾーンにまたがる Qdrant のフォールト トレラントでスケーラブルな GKE クラスタを設定し、ローリング アップデートとサービスの停止を最小限に抑えて稼働時間と可用性を確保します。これには、効率的なフェイルオーバー管理のための StatefulHA オペレーターの使用も含まれます。詳細については、リージョン クラスタをご覧ください。
アーキテクチャ図
次の図は、GKE クラスタ内の複数のノードとゾーンで実行されている Qdrant クラスタを示しています。
このアーキテクチャでは、Qdrant StatefulSet が 3 つの異なるゾーンの 3 つのノードにデプロイされています。
- Helm チャート値ファイルに必要な Pod のアフィニティ ルールとトポロジ分散の制約を構成することで、GKE がノード間で Pod を分散する方法を制御できます。
- 1 つのゾーンで障害が発生すると、GKE は推奨構成に基づいて新しいノードで Pod を再スケジュールします。
このチュートリアルのアーキテクチャには、データの永続性について次の特性があります。
- データの保持には、リージョン SSD ディスク(カスタム
regional-pdStorageClass)を使用します。低レイテンシと高い IOPS が得られるため、データベースにはリージョン SSD ディスクをおすすめします。 - ディスクデータはすべてリージョン内のプライマリ ゾーンとセカンダリ ゾーン間で複製されるため、ゾーン障害に対する耐性が向上します。
費用
このドキュメントでは、課金対象である次の Google Cloudコンポーネントを使用します。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
始める前に
このチュートリアルでは、Cloud Shell を使用してコマンドを実行します。Cloud Shell は、 Google Cloudでホストされているリソースを管理するためのシェル環境です。これには、Google Cloud CLI、kubectl、Helm、Terraform コマンドライン ツールがプリインストールされています。Cloud Shell を使用しない場合は、Google Cloud CLI をインストールする必要があります。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Resource Manager, Compute Engine, GKE, IAM Service Account Credentials, and Backup for GKE APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable cloudresourcemanager.googleapis.com
compute.googleapis.com container.googleapis.com iamcredentials.googleapis.com gkebackup.googleapis.com -
Install the Google Cloud CLI.
-
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
-
gcloud CLI を初期化するには、次のコマンドを実行します。
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Resource Manager, Compute Engine, GKE, IAM Service Account Credentials, and Backup for GKE APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable cloudresourcemanager.googleapis.com
compute.googleapis.com container.googleapis.com iamcredentials.googleapis.com gkebackup.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/storage.objectViewer, roles/container.admin, roles/iam.serviceAccountAdmin, roles/compute.admin, roles/gkebackup.admin, roles/monitoring.viewergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID: Your project ID.USER_IDENTIFIER: The identifier for your user account. For example,myemail@example.com.ROLE: The IAM role that you grant to your user account.
プロジェクト、リージョン、Kubernetes クラスタ リソースの接頭辞に環境変数を設定します。
このチュートリアルでは、
us-central1リージョンを使用して Deployment リソースを作成します。export PROJECT_ID=PROJECT_ID export KUBERNETES_CLUSTER_PREFIX=qdrant export REGION=us-central1PROJECT_IDは、実際の Google CloudPROJECT_ID に置き換えます。
Helm のバージョンを確認します。
helm version3.13 より古い場合は、バージョンを更新します。
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bashGitHub からサンプルコード リポジトリのクローンを作成します。
git clone https://github.com/GoogleCloudPlatform/kubernetes-engine-samplesqdrantディレクトリに移動して、Deployment リソースの作成を開始します。cd kubernetes-engine-samples/databases/qdrantGOOGLE_OAUTH_ACCESS_TOKEN:gcloud auth print-access-tokenコマンドで取得したアクセス トークンに置き換え、さまざまな Google Cloud APIs とのやり取りを認証します。PROJECT_ID、REGION、KUBERNETES_CLUSTER_PREFIXは、環境を設定するセクションで定義した環境変数で、作成する Autopilot クラスタの新しい関連変数に割り当てられます。- Kubernetes ノード用のカスタム VPC ネットワークとプライベート サブネット
- ネットワーク アドレス変換(NAT)を介してインターネットにアクセスするための Cloud Router。
us-central1リージョンの限定公開 GKE クラスタ。- クラスタのロギングとモニタリングの権限を持つ
ServiceAccount。 - クラスタのモニタリングおよびアラート用の Google Cloud Managed Service for Prometheus の構成。
GOOGLE_OAUTH_ACCESS_TOKENは、gcloud auth print-access-tokenコマンドで取得したアクセス トークンに置き換え、さまざまな Google Cloud APIs とのやり取りを認証します。PROJECT_ID、REGION、KUBERNETES_CLUSTER_PREFIXは、環境を設定するセクションで定義した環境変数で、作成する Standard クラスタの新しい関連変数に割り当てられます。- Kubernetes ノード用のカスタム VPC ネットワークとプライベート サブネット
- ネットワーク アドレス変換(NAT)を介してインターネットにアクセスするための Cloud Router。
- 自動スケーリングを有効にした
us-central1リージョンの限定公開 GKE クラスタ(ゾーンあたり 1~2 ノード)。 - クラスタのロギングとモニタリングの権限を持つ
ServiceAccount。 - クラスタのモニタリングおよびアラート用の Google Cloud Managed Service for Prometheus の構成。
- Qdrant ノードの 3 つのレプリカ。
- Kubernetes ノード全体に適切に分散されるように、toleration、ノード アフィニティ、トポロジ分散の制約が構成されます。これにより、ノードプールとさまざまなアベイラビリティ ゾーンが利用されます。
- SSD ディスクタイプの RePD ボリュームは、データ ストレージ用にプロビジョニングされます。
- Stateful HA オペレーターは、フェイルオーバー プロセスを管理し、高可用性を確保するために使用されます。StatefulSet は、各 Pod の永続的な一意の ID を保持する Kubernetes コントローラです。
- 認証のため、データベースは API キーを含む Kubernetes Secret を作成します。
StatefulHA アドオンを有効にする
Autopilot
GKE は、クラスタの作成時に
StatefulHAアドオンを自動的に有効にします。Standard
次のコマンドを実行します。
gcloud container clusters update ${KUBERNETES_CLUSTER_PREFIX}-cluster \ --project=${PROJECT_ID} \ --location=${REGION} \ --update-addons=StatefulHA=ENABLEDこのコマンドが完了し、クラスタが準備完了ステータスになるまでに 15 分かかることがあります。
GKE クラスタにデプロイする前に、Qdrant データベースの Helm チャート リポジトリを追加します。
helm repo add qdrant https://qdrant.github.io/qdrant-helmデータベースの Namespace
qdrantを作成します。kubectl create ns qdrantマニフェストを適用して、リージョン SSD 永続ディスク
StorageClassを作成します。kubectl apply -n qdrant -f manifests/01-regional-pd/regional-pd.yamlregional-pd.yamlマニフェストには、永続 SSD ディスクStorageClassが記述されています。Helm を使用して、
metricsサイドカー構成と Qdrant クラスタを含む Kubernetes configmap をデプロイします。kubectl apply -n qdrant -f manifests/03-prometheus-metrics/metrics-cm.yaml helm install qdrant-database qdrant/qdrant -n qdrant \ -f manifests/02-values-file/values.yamlmetrics-cm.yamlマニフェストには、metricsサイドカーConfigMapが記述されています。values.yamlマニフェストには、Qdrant クラスタの構成が記述されています。この構成により、クラスタモードが有効になり、高可用性の分散 Qdrant クラスタを設定できます。
Qdrant StatefulSet にラベルを追加します。
kubectl label statefulset qdrant-database examples.ai.gke.io/source=qdrant-guide -n qdrant内部ロードバランサをデプロイして、GKE クラスタと同じ VPC で実行されている Elasticsearch データベースにアクセスします。
kubectl apply -n qdrant -f manifests/02-values-file/ilb.yamlilb.yamlマニフェストには、LoadBalancerService が記述されています。デプロイのステータスを確認します。
helm ls -n qdrantqdrantデータベースが正常にデプロイされると、次のように出力されます。NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION qdrant-database qdrant 1 2024-02-06 20:21:15.737307567 +0000 UTC deployed qdrant-0.7.6 v1.7.4GKE が必要なワークロードを開始するまで待ちます。
kubectl wait pods -l app.kubernetes.io/instance=qdrant-database --for condition=Ready --timeout=300s -n qdrantこのコマンドが正常に完了するまで数分かかる場合があります。
GKE がワークロードを開始したら、GKE は Qdrant ワークロードを作成したことを確認します。
kubectl get pod,svc,statefulset,pdb,secret -n qdrantQdrant の
HighAvailabilityApplication(HAA)リソースを起動します。kubectl apply -n qdrant -f manifests/01-regional-pd/ha-app.yamlha-app.yamlマニフェストには、HighAvailabilityApplicationリソースが記述されています。Qdrant クラスタ用に、次の GKE リソースが作成されます。
- 3 つの Pod レプリカを制御する Qdrant
StatefulSet。 A PodDisruptionBudget。使用できないレプリカが最大 1 つ確保されます。qdrant-databaseService。ノード間のインバウンド接続とレプリケーション用に Qdrant ポートを公開します。qdrant-database-headlessService。実行中の Qdrant Pod のリストを提供します。qdrant-database-apikeySecret。安全なデータベース接続を容易にします。- Qdrant アプリケーションをアクティブにモニタリングする、ステートフル HA オペレーター Pod と
HighlyAvailableApplicationリソース。HighlyAvailableApplicationリソースは、Qdrant に適用するフェイルオーバー ルールを定義します。
- 3 つの Pod レプリカを制御する Qdrant
フェイルオーバー ルールが適用されているかどうかを確認するには、リソースの説明を取得して
Status: Message: Application is protectedを確認します。kubectl describe highavailabilityapplication qdrant-database -n qdrant出力は次のようになります。
Status: Conditions: Last Transition Time: 2023-11-30T09:54:52Z Message: Application is protected Observed Generation: 1 Reason: ApplicationProtected Status: True Type: ProtectedGoogle Cloud コンソールで、Colab Enterprise の [ランタイム テンプレート] ページに移動し、プロジェクトが選択されていることを確認します。
[add_box 新しいテンプレート] をクリックします。[ランタイム テンプレートの新規作成] ページが表示されます。
[ランタイムの基本情報] セクションで、次の操作を行います。
- [表示名] フィールドに「
qdrant-connect」と入力します。 - [リージョン] プルダウン リストで、
us-central1を選択します。これは、GKE クラスタと同じリージョンです。
- [表示名] フィールドに「
[コンピューティングの構成] セクションで、次の操作を行います。
- [マシンタイプ] プルダウン リストで [
e2-standard-2] を選択します。 - [ディスクサイズ] フィールドに「
30」と入力します。
- [マシンタイプ] プルダウン リストで [
[ネットワーキングとセキュリティ] セクションで、次の操作を行います。
- [ネットワーク] プルダウン リストで、GKE クラスタが存在するネットワークを選択します。
- [サブネットワーク] プルダウン リストで、対応するサブネットワークを選択します。
- [公共のインターネット アクセスを有効にする] チェックボックスをオフにします。
ランタイム テンプレートの作成を完了するには、[作成] をクリックします。ランタイム テンプレートが [ランタイム テンプレート] タブのリストに表示されます。
ランタイム テンプレートのリストで、作成したテンプレートの [操作] 列の more_vert をクリックし、[ランタイムを作成] をクリックします。[Vertex AI ランタイムの作成] ペインが表示されます。
テンプレートに基づいてランタイムを作成するには、[作成] をクリックします。
表示された [ランタイム] タブで、ステータスが「正常」に切り替わるまで待ちます。
[マイ ノートブック] タブに移動し、[インポート] をクリックします。[ノートブックのインポート] ペインが表示されます。
[インポート ソース] で [URL] を選択します。
[ノートブックの URL] に、次のリンクを貼り付けます。
https://raw.githubusercontent.com/GoogleCloudPlatform/kubernetes-engine-samples/refs/heads/main/databases/qdrant/manifests/04-notebook/vector-database.ipynb[インポート] をクリックします。
ノートブックで、[接続] ボタンの横にある [arrow_drop_down その他の接続オプション] をクリックします。[Vertex AI ランタイムへの接続] ペインが表示されます。
[ランタイムに接続] を選択し、[既存のランタイムに接続] を選択します。
起動したランタイムを選択し、[接続] をクリックします。
ノートブック セルを実行するには、各コードセルの横にある [ セルを実行] ボタンをクリックします。
- パス
/とポート80で指標を公開する Qdrant Pod。これらの指標は、metricsというサイドカー コンテナによって提供されます。 - Qdrant Pod からの指標を処理する Prometheus ベースのコレクタ。
- Cloud Monitoring に指標を送信する PodMonitoring リソース
labelSelectorで指標を収集するPodMonitoringリソースを作成します。kubectl apply -n qdrant -f manifests/03-prometheus-metrics/pod-monitoring.yamlpod-monitoring.yamlマニフェストには、PodMonitoringリソースが記述されています。dashboard.jsonで定義された構成を使用して、Cloud Monitoring ダッシュボードを作成します。gcloud --project "${PROJECT_ID}" monitoring dashboards create --config-from-file monitoring/dashboard.jsonコマンドが正常に実行されたら、Cloud Monitoring のダッシュボードに移動します。
ダッシュボードのリストで、
Qdrant Overviewダッシュボードを開きます。指標の収集と表示には 1~2 分かかる場合があります。ダッシュボードには、次の主要な指標のカウントが表示されます。
- コレクション
- 埋め込みベクトル
- 保留中のオペレーション
- 実行中のノード
クラスタで Backup for GKE 機能を有効にします。
gcloud container clusters update ${KUBERNETES_CLUSTER_PREFIX}-cluster \ --project=${PROJECT_ID} \ --location=${REGION} \ --update-addons=BackupRestore=ENABLEDクラスタ内のすべての Namespace の日次スケジュールでバックアップ プランを作成します。
gcloud beta container backup-restore backup-plans create ${KUBERNETES_CLUSTER_PREFIX}-cluster-backup \ --project=${PROJECT_ID} \ --location=${REGION} \ --cluster="projects/${PROJECT_ID}/locations/${REGION}/clusters/${KUBERNETES_CLUSTER_PREFIX}-cluster" \ --all-namespaces \ --include-secrets \ --include-volume-data \ --cron-schedule="0 3 * * *" \ --backup-retain-days=3このコマンドは、実行時に関連する環境変数を使用します。
クラスタ名の形式は、プロジェクトとリージョンに対して相対的です。
projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAMEプロンプトが表示されたら、「
y.」と入力します。出力は次のようになります。Create request issued for: [qdrant-cluster-backup] Waiting for operation [projects/PROJECT_ID/locations/us-central1/operations/operation-1706528750815-610142ffdc9ac-71be4a05-f61c99fc] to complete...⠹このオペレーションが正常に完了するまで数分かかることがあります。実行が完了すると、出力は次のようになります。
Created backup plan [qdrant-cluster-backup].新しく作成したバックアップ プラン
qdrant-cluster-backupが Backup for GKE コンソールに表示されます。環境変数を設定します。
export PROJECT_ID=${PROJECT_ID} export KUBERNETES_CLUSTER_PREFIX=qdrant export REGION=us-central1terraform destroyコマンドを実行します。export GOOGLE_OAUTH_ACCESS_TOKEN=$(gcloud auth print-access-token) terraform -chdir=terraform/FOLDER destroy \ -var project_id=${PROJECT_ID} \ -var region=${REGION} \ -var cluster_prefix=${KUBERNETES_CLUSTER_PREFIX}作成した GKE クラスタのタイプに応じて、
FOLDERをgke-autopilotまたはgke-standardに置き換えます。プロンプトが表示されたら、「
yes」と入力します。アタッチされていないすべてのディスクを検索します。
export disk_list=$(gcloud compute disks list --filter="-users:* AND labels.name=${KUBERNETES_CLUSTER_PREFIX}-cluster" --format "value[separator=|](name,region)")ディスクを削除します。
for i in $disk_list; do disk_name=$(echo $i| cut -d'|' -f1) disk_region=$(echo $i| cut -d'|' -f2|sed 's|.*/||') echo "Deleting $disk_name" gcloud compute disks delete $disk_name --region $disk_region --quiet doneGitHub リポジトリを削除します。
rm -r ~/kubernetes-engine-samples/- GKE Marketplace の Qdrant を確認する。
- Qdrant オープンソース ソフトウェアを確認する。
- Qdrant オペレーターを試してみる。このオペレーターは、API キー管理、TLS サポートと証明書管理、バックアップ スケジュールを提供します。
- GKE にデータベースをデプロイするためのベスト プラクティスについて学習する。
- GKE でデータ量の多いワークロードを実行するためのソリューションを確認する。
環境の設定
Cloud Shell を使用して環境を設定するには、次の操作を行います。
クラスタ インフラストラクチャを作成する
このセクションでは、Terraform スクリプトを実行して、限定公開の高可用性 GKE リージョン クラスタを作成し、Qdrant データベースをデプロイします。
Qdrant のデプロイには、Standard クラスタまたは Autopilot クラスタを使用できます。それぞれに利点があり、料金モデルも異なります。
Autopilot
次の図は、3 つの異なるゾーンにデプロイされた Autopilot リージョン GKE クラスタを示しています。
クラスタ インフラストラクチャをデプロイするには、Cloud Shell で次のコマンドを実行します。
export GOOGLE_OAUTH_ACCESS_TOKEN=$(gcloud auth print-access-token)
terraform -chdir=terraform/gke-autopilot init
terraform -chdir=terraform/gke-autopilot apply \
-var project_id=${PROJECT_ID} \
-var region=${REGION} \
-var cluster_prefix=${KUBERNETES_CLUSTER_PREFIX}
次の変数は実行時に置き換えられます。
プロンプトが表示されたら、「yes」と入力します。
出力は次のようになります。
...
Apply complete! Resources: 9 added, 0 changed, 0 destroyed.
Outputs:
kubectl_connection_command = "gcloud container clusters get-credentials qdrant-cluster --region us-central1"
Terraform が次のリソースを作成します。
Standard
次の図は、3 つの異なるゾーンにデプロイされた限定公開のリージョン GKE Standard クラスタを示しています。
クラスタ インフラストラクチャをデプロイするには、Cloud Shell で次のコマンドを実行します。
export GOOGLE_OAUTH_ACCESS_TOKEN=$(gcloud auth print-access-token)
terraform -chdir=terraform/gke-standard init
terraform -chdir=terraform/gke-standard apply \
-var project_id=${PROJECT_ID} \
-var region=${REGION} \
-var cluster_prefix=${KUBERNETES_CLUSTER_PREFIX}
次の変数は実行時に置き換えられます。
プロンプトが表示されたら、「yes」と入力します。これらのコマンドが完了し、クラスタが「準備完了」ステータスになるまでに数分かかることがあります。
出力は次のようになります。
...
Apply complete! Resources: 10 added, 0 changed, 0 destroyed.
Outputs:
kubectl_connection_command = "gcloud container clusters get-credentials qdrant-cluster --region us-central1"
Terraform が次のリソースを作成します。
クラスタに接続する
認証情報を取得し、新しい GKE クラスタと通信できるように kubectl を構成します。
gcloud container clusters get-credentials \
${KUBERNETES_CLUSTER_PREFIX}-cluster --location ${REGION}
Qdrant データベースをクラスタにデプロイする
このチュートリアルでは、Helm チャートを使用して、Qdrant データベース(分散モード)と Stateful HA Operator を GKE クラスタにデプロイします。
デプロイにより、次の構成で GKE クラスタが作成されます。
Helm チャートを使用して Qdrant データベースをデプロイするには、次の操作を行います。
Vertex AI Colab Enterprise ノートブックでクエリを実行する
Qdrant はベクトルとペイロードをコレクションに整理します。ベクトル エンベディングは、セマンティック関係を維持しながら単語やエンティティを数値ベクトルとして表す手法です。完全一致ではなく、意味に基づいて類似性を見つけて、検索やレコメンデーション システムなどのタスクをより効果的に処理できるため、これは類似性検索にとって重要な機能となります。
このセクションでは、新しい Qdrant コレクションにベクトルをアップロードし、検索クエリを実行する方法について説明します。
この例では、さまざまなジャンルの書籍のリストを含む CSV ファイルのデータセットを使用します。Qdrant データベースに対して検索クエリを実行する Colab Enterprise ノートブックを作成します。
Vertex AI Colab Enterprise の詳細については、Colab Enterprise のドキュメントをご覧ください。
ランタイム テンプレートを作成する
Colab Enterprise ランタイム テンプレートを作成するには:
ランタイムを作成する
Colab Enterprise ランタイムを作成するには:
ノートブックをインポートする
Colab Enterprise でノートブックをインポートするには:
ランタイムに接続してクエリを実行する
ランタイムに接続してクエリを実行するには:
ノートブックには、コードセルと、各コードブロックを説明するテキストの両方が含まれています。コードセルを実行すると、そのコマンドが実行され、出力が表示されます。セルを順番に実行することも、必要に応じて個別に実行することもできます。
クラスタの Prometheus 指標を表示する
GKE クラスタは Google Cloud Managed Service for Prometheus で構成されており、Prometheus 形式での指標の収集が可能です。このサービスは、モニタリングとアラート用のフルマネージド ソリューションを提供し、クラスタとそのアプリケーションからの指標の収集、保存、分析を可能にします。
次の図は、Prometheus がクラスタの指標を収集する方法を示しています。
この図の GKE 限定公開クラスタには、次のコンポーネントが含まれています。
指標をエクスポートして表示する手順は次のとおりです。
クラスタ構成をバックアップする
Backup for GKE 機能を使用すると、デプロイされたワークロードとそのデータを含む GKE クラスタ構成全体の定期的なバックアップ スケジュールを設定できます。
このチュートリアルでは、Secret と Volume を含むすべてのワークロードのバックアップを毎日午前 3 時に実行するように、GKE クラスタのバックアップ プランを構成します。ストレージ管理を効率的に行うため、3 日以上経過したバックアップは自動的に削除されます。
バックアップ プランを構成する手順は次のとおりです。
保存したバックアップ構成を復元する場合は、バックアップを復元するをご覧ください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。
プロジェクトを削除する
課金が発生しないようにする最も簡単な方法は、このチュートリアル用に作成したプロジェクトを削除することです。
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
プロジェクトを削除すると、クリーンアップが完了します。プロジェクトを削除していない場合は、個々のリソースを削除します。